4、输入使缓冲区溢出的数据
4.1 缺陷产生原因
开发人员没有考虑传送给内存缓冲区的字符串的大小。如果缓冲区只能保留固定长度的字符串,输入更长的字符串就会改写其他的内存存储单元,引起操作系统强制性地终止应用程序。
4.2 如何发现这类问题
当应用程序允许输入字母、数字时,通过GUI控件(如文本框),或者通过API调用的参数来进行这种测试。
◆ 首先弄清楚要测试的输入域的长度,输入最大字符串测试。
◆ 输入一个比最大字符串长的字符串,应用程序可能出现错误提示信息,提示不允许输入;或者输入了更长的字符串使应用程序崩溃。
4.3 测试方法小结
◆ 应用场合:需要接受字符输入的地方。
◆ 测试方法:根据被测软件的具体情况输入最大字符串或输入一个比最大字符串更长的字符串。
◆ 测试知识储备:尽可能多地和开发人员讨论,以了解和确定输入域的合理长度。
---------------------------------------------------------------------------------------------------
5、输入产生错误的合法数据组合
5.1 缺陷产生原因
测试多个输入值的组合,每个输入值已被单独测试过,但是这些值的组合可能会互相影响而引起软件失效。
5.2 如何发现这类问题
首先要确定测试哪些输入组合,并弄清楚它们之间的“关系”。如果具备以下任一特性,就可以认为这些变量是有“关系”的。
◆ 描述的是有关单个内部数据结构的属性和内容。例如,输入面板需要用户输入列表的“行”和“列”,这时测试人员要输入单个内部数据结构“列表”的属性“行和列”。
◆ 一起用在了一个计算中,也就是将多个输入用做一个内部计算的操作数,因此这些输入变量具有了相互“关系”。
5.3 测试方法小结
◆ 应用场合:输入值之间存在依赖关系。
◆ 测试方法:输入可能是存在问题的组合值。
◆ 测试知识储备:尽可能多的内部数据结构的属性和内容,并与开发人员探讨,以确定输入的数据值。
---------------------------------------------------------------------------------------------------
6、产生同一个输入的各种可能输出
6.1 缺陷产生原因
单个输入产生多种输出的情况与先前的输入和被测系统的状态都有关系。例如,在文字处理程序中单击“关闭”按钮,如果文件被编辑且未被保存,程序将提示是否保存文件。如果文件已被保存过,则文件直接关闭。
6.2 如何发现这类问题
测试人员必须具有关于被测系统软件的业务方面的知识,具备各种程序文档,明确一个输入可以产生何种输出。我们可以据此列出关于程序输入与输出的一个列表,然后进行测试。
6.3 测试方法小结
◆ 应用场合:同一输入对应多个输出的情况。
◆ 测试方法:测试输入对应的每一个输出。
◆ 测试知识储备:全面理解需求规格说明书中的内容,找出输入与输出之间的关系。