ずっと前に、Postscript ファイル イメージを生成するプログラムをテストする必要がありました。プログラムが正しい、期待される出力を生成しているかどうかを確認する簡単な方法の 1 つは、結果の md5 を実行して、事前にチェックした「既知の良好な」出力の md5 と比較することでした。
残念ながら、Postscript にはファイル内に現在の時刻が含まれています。もちろん、この時間はテストがいつ実行されるかによって異なるため、期待どおりの出力が得られたとしても、結果の md5 が変化します。修正として、sed で日付を削除しました。
これは素晴らしくシンプルなシナリオです。私たちはいつもそう幸運であるとは限りません。たとえば、私はライター プログラムをプログラミングしています。このプログラムは、多数の匿名ノードと uuid を含む大きなファット RDF ファイルを作成します。単純な md5 でプログラム全体の機能をチェックすることは基本的に不可能です。唯一の方法は、リーダーでファイルを読み取り、このリーダーを介して出力を検証することです。お気づきかもしれませんが、これはワームの新しい缶を開きます: 第一に、リーダーを作成する必要があります (これには時間がかかる場合があります)。第二に、リーダーが機能的に正しく、同時にライターと同期していると仮定します。リーダーとライターの両方が同期していても、想定が間違っている場合、リーダーは「問題ありません」と言うでしょうが、ファイル形式は実際には間違っています。
これは、ファイル形式の機能テストを実行する必要がある場合の一般的な問題であり、提供した入力によってファイル形式を完全に再現することはできません。この場合どう対処しますか?