12

テスト中に、ソフトウェアが「破損した」ファイルをどのように処理するかをテストしたいとします。

2 つの質問があります。

1. 一般的に、「破損した」ファイルをどのように定義しますか? 言い換えれば、破損したファイルを構成するものは何ですか?

例として:

「破損した」.pdf ファイルをテストする必要があるとします。

1 つの提案は、単純に .zip ファイルを取得し、拡張子を変更して、それでテストすることです。ただし、プログラムが「破損した .pdf ファイル」を処理する方法をテストしているのではなく、.zip ファイルを処理する方法をテストしていると私は主張します。

別の提案は、ファイルを開いてランダムなバイトを挿入/削除することです。この提案は問題ありませんが、いくつかの問題があります。

  • 変更または削除されたセクションが重要ではない可能性があります (ほとんどありませんが)。たとえば、巨大な文字列のセクションを単純に削除すると、データが変更されますが、必ずしもファイルが破損するわけではありません。
  • プログラムがファイルの読み取りを拒否するように、ファイルが変更される可能性があります。たとえば、.pdf ヘッダーが削除された場合、API (または使用しているもの) がその時点を通過できず、ファイルをまったくテストできない可能性があります。
  • 最初の箇条書きと同様: ファイルが大幅に変更された場合、結果のファイルは元のファイルと同じ形式ではなくなるという議論があります。したがって、.pdf ヘッダーを削除すると、そのファイルは .pdf ファイルではなくなる可能性があります。したがって、それをテストしようとしても、破損した .pdf ファイルはテストされませんが、.pdf ファイルの奇妙なバリエーションがテストされます。

2. 破損したファイルが定義されたら、どのように作成しますか?


これが私がこれまで考えてきたことです:

「破損したファイル」とは、ファイル形式の仕様を正しく満たしているが、本質的に欠陥のあるデータ/バイトが含まれているファイルです。

私が考えることができる唯一の例は、ファイルのエンコーディングを何らかの方法で変更した場合です。その後、このメソッドを任意の形式のファイルに適用できます。

読んでくれてありがとう。

4

5 に答える 5

4

ファイル形式は、2 つのことによって定義されます。1. ファイルの拡張子 - ファイルの形式を OS に伝える必要があります。2.ドキュメントのMimeType 。多くのドキュメントは間違った拡張子 (.avi .jpg) を持っていますが、実際には MIME タイプがその内容を示しています。

ドキュメントを破損する方法は? ランダムなバイトや何かを追加することはできません (たとえば、.txt ファイルは破損しません)。

実際に行う必要があるのは 2 つあります。

まず、ファイルの MIME タイプを変更してから、ランダムなバイトを追加することができます。myme タイプが拡張子と異なる (似ていない) 場合 - たとえば、.avi ファイルの "text/html" の場合、そのような MIME タイプのプログラムはファイルを認識できません。

ただし、さまざまなテスト シナリオでは、破損したファイルのさまざまな「バージョン」を作成する必要がある場合があります。

それが役に立てば幸い。

于 2012-05-02T13:00:20.983 に答える
3

別の提案は、ファイルを開いてランダムなバイトを挿入/削除することです。

これは私が一般的にしていることです。上記の問題については理解していますが、ファイルがネイティブ アプリケーションで読み取れない場合、そのファイルは破損していると見なします。

たとえば、xls は Excel で開かれず、docx は Word で開かれません。

于 2012-05-02T12:55:43.377 に答える
2

ファイル(おそらくrarファイル)のダウンロードをキャンセルします。私はこれらのほとんどをこの方法で破損させます。

于 2012-05-02T12:56:59.587 に答える
1

Linux の head および tail コマンドを使用してファイルを分割し、不足しているバイトまたは追加のバイトを使用してそれらをまとめます。

于 2012-05-02T12:59:05.053 に答える
1

不完全なファイルでテストすることをお勧めします。これは、ダウンロードの中断によって、ほとんどの破損したファイルが作成される方法です。

于 2012-05-02T12:59:41.310 に答える