2012-05-02 310 views
9

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

私は2つの質問があります。一般的には

1.を、どのように「壊れた」ファイルを定義していますか?つまり、破損したファイルは何ですか?一例として、

は、あなたが "壊れた" .pdfファイルをテストする必要があるとします。

ひとつは、.zipファイルを取り出して拡張子を変更してテストすることです。しかし、私は、プログラムが "破損した.pdfファイル"の処理方法をテストするのではなく、.zipファイルの処理方法をテストしていると主張します。

もう1つの方法は、ファイルを開いてランダムなバイトを挿入/削除することです。この提案は大丈夫ですが、いくつかの問題があります。

  • は、それが変更または削除されるセクションは取るに足らないあること(そうが)可能です。たとえば、巨大な文字列のセクションを削除するだけで、データは変更されますが、必ずしもファイルが破損するとは限りません。
  • プログラムがファイルの読み込みを拒否する方法でファイルを変更することは可能です。たとえば、.pdfヘッダーが削除された場合、API(または使用しているもの)がそのポイントを超えず、ファイルをまったくテストできないことがあります。
  • 最初の箇条書きに似ています:ファイルが十分に劇的に変更された場合、結果のファイルがもはや元のファイルと同じ形式ではないという引数があります。したがって、.pdfヘッダーを削除する場合は、そのファイルがもはや.pdfファイルではない可能性があります。したがって、テストしようとすると、破損した.pdfファイルはテストされませんが、代わりに.pdfファイルの変わったバリエーションがテストされます。

2.壊れたファイルが定義されたら、どのように作成するのですか?ここで


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

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

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

読んでいただきありがとうございます。

+2

これらの質問に対する回答は、特定のファイル形式と、ソフトウェアの処理を計画している破損の種類によって異なります。あなたが扱うつもりがない入力ベクトルを使った点検定はありません。 –

答えて

2

もう1つの方法は、ファイルを開き、ランダムなバイトを挿入/削除することです。

これは私が一般的に行うことです。上の箇条書きの問題を理解していますが、ネイティブアプリケーションでは判読できないファイルは破損しているとみなします。

例えば、Excelで開くことができませんXLSは、docxファイルはWordで開きません、など

2

簡単には、ファイル(多分RARファイル)をダウンロードキャンセル。私はこれらのほとんどがこのように腐敗してしまいます。

1

私はlinux headとtailコマンドを使ってファイルを分割し、欠落したバイトや追加のバイトとともにファイルを戻します。

1

私は不完全なファイルをテストすることを提案します。これは、破損したファイルが作成される方法で、中断されたダウンロードによって行われます。

4

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

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

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

まず、ファイルのMIMEタイプを変更すると、ランダムなバイトを追加する可能性があります。 mymeの種類が拡張子と異なっている場合(例えば、text/htmlの場合)、.aviファイルの場合、そのMIMEタイプのファイルは認識できません。

ただし、異なるテストシナリオでは、異なるバージョンの破損ファイルを作成することがあります。

希望します。

+1

MIMEタイプはインターネットのものです。任意のアプリケーションには適用されません。 –

+0

これは部分的に真です。しかし、すべてのことができる "知られている"ファイル形式(自分の拡張子を持つ)は、mimeのtipeていると言う。独自のファイルタイプを作成したい場合(独自の拡張子で言うと)、このファイルの "破損したファイル"を意味するものが完全にわかります。 –

+0

などの場合にのみ転送されます。 HTTP。ディスクに保存されたファイルにはMIMEタイプはありません。それらは単なるバイトの集まりです。 –

関連する問題