QAエンジニアリング&インフラ•8 分で読める

正確なバイト数テスト画像生成:QAおよび境界テストのためのバイナリChunk注入技術

PNG補助チャンク、JPEGコメントマーカー、WebP RIFFパディングを活用し、1バイトの狂いもないテストファイルを生成する手法を解説。

Devon Kross
インフラ&QAリードエンジニア
アップロードゲートウェイ、リバースプロキシ(Nginx)、S3オブジェクトストレージにおいて、1バイトの境界値エラー(Off-by-one)は頻発するバグ要因です。本稿では、画像を破損させずに正確なバイト数へ拡張する手法を解説します。

画像の適当なリサイズでは境界テストが不可能な理由

圧縮アルゴリズムの影響により、解像度や画質パラメータの変更だけでは正確なファイルサイズを狙えません。5MB制限を厳格にテストするには、5,242,881バイトちょうどのファイルが必要です。

サービス標準制限正確なバイト閾値テスト用境界値
Nginx (デフォルト)1 MB1,048,576 バイト1,048,577 B(413拒否確認)
AWS API Gateway10 MB10,485,760 バイト10,485,761 B(上限遮断)
Discord 添付25 MB26,214,400 バイト26,214,401 B(エラー表示)

PNGバイナリ構造とtEXt補助チャンク

PNG仕様では、デコーダが無視できる補助チャンクの挿入が認められています。IENDチャンクの直前にtEXtチャンクを挿入することで、任意のバイト数にパディングできます。

TypeScriptパディング注入ロジック

目標サイズと元のサイズの差分を計算し、CRC32チェックサムを再計算したtEXtデータを安全に結合します。

JPEG COMマーカーとWebP RIFFパディング

JPEGでは0xFF 0xFEのコメントマーカーを挿入し、WebPではRIFFコンテナ内にパディングを追加することで、1バイト単位の精密調整が可能です。

0バイトファイルと例外処理

堅牢なQAパイプラインには、0バイトファイルや破損ヘッダーを含め、サーバーがクラッシュしないか検証することが不可欠です。

Summary & Key Takeaways

バイナリChunkパディングは、クラウド環境やファイルアップロード検証において不可欠な合成テストファイル生成手法です。

Live Studio Tool

ファイルサイズ指定画像生成ツール

1KBから50MBまでバイト単位で正確なテストファイルを生成。一括ZIPダウンロード対応。

QAツールを開く

よくある質問

バイトパディングによって画像表示が崩れることはありますか?

ありません。画像表示エンジンは補助チャンクを安全にスキップするため、元の画像が100%そのまま表示されます。

最新ガイド

View All Guides →
リンクをクリップボードにコピーしました!