如何制作"腐败"文件

use*_*566 11 testing unit-testing functional-testing

假设在测试期间,您希望测试软件如何处理"损坏"文件.

我有两个问题:

1.一般来说,如何定义"损坏"文件?换句话说,什么构成了腐败文件?

举个例子:

假设您需要测试"损坏的".pdf文件.

一个建议是简单地获取.zip文件,更改扩展名,然后测试.但是,我认为你没有测试程序如何处理"损坏的.pdf文件",而是测试它如何处理.zip文件.

另一个建议是打开文件并插入/删除随机字节.这个建议没问题,但有一些问题:

  • 修改或删除的部分可能(尽管不太可能)是无关紧要的.例如,您可以简单地删除一个巨大字符串的一部分,这将修改数据,但不一定会破坏文件.
  • 可以通过程序拒绝读取文件的方式修改文件.例如,如果删除.pdf标头,那么API(或您正在使用的任何标头)可能不会超过该点,并且根本无法测试该文件.
  • 与第一个项目符号类似:如果对文件进行了足够大的修改,则会产生一个参数,即生成的文件不再与原始文件格式相同.所以,再次,如果您要删除.pdf标头,那么该文件可能不再是.pdf文件.因此,尝试测试它不会测试损坏的.pdf文件,而是测试.pdf文件的一些奇怪变体.

2.一旦定义了损坏的文件,你如何创建一个?


这是我到目前为止所想的:

"损坏的文件"是一个正确符合文件格式规范但包含本身存在缺陷的数据/字节的文件.

我能想到的唯一例子是你是否以某种方式更改了文件的编码.然后,您可以将此方法应用于任意格式的文件.

谢谢阅读.

Ste*_*Ste 3

另一个建议是打开文件并插入/删除随机字节。

这就是我一般所做的。虽然我理解您在上面列出的问题,但我认为如果文件的本机应用程序无法读取该文件,则该文件已损坏。

例如,xls 无法在 Excel 中打开,docx 无法在 Word 中打开,等等。