9.3 测试方法小结
◆ 应用场合:一个对象包含在另一个对象中,拖动被包含对象时,可能出现刷新问题。
◆ 测试方法:增加、删除和移动屏幕上的对象。
◆ 测试知识储备:全面理解需求规格说明书中的内容,了解程序中对象之间的关系。
---------------------------------------------------------------------------------------------------
10、数据结构溢出
10.1 缺陷产生原因
所有数据结构的大小都有上限。一些数据结构会逐步增加长度以充满机器内存容量或磁盘空间,而其它数据结构具有固定的上限。开发人员经常对有关数据结构的内容进行编码,忘记结构本身的物理局限。
10.2 如何发现这类问题
◆ 确定数据结构的界限,尝试将过多的值输入数据结构。应该特别注意界限为数据类型的边界256、1024、32768等上溢的测试。
◆ 对于下溢的测试,可以尝试多删除一个数据,例如当结构为空时,尝试再删除,或者添加一个数据,尝试删除两个数据时的情况。
10.3 测试方法小结
◆ 应用场合:程序中存在数组。
◆ 测试方法:尝试将过多的值输入数据结构,测试上溢;对于下溢的测试,可以尝试多删除一个数据。
◆ 测试知识准备:全面理解需求规格说明书中的内容,确定数据结构的界限。
---------------------------------------------------------------------------------------------------
11、数据结构不符合约束
11.1 缺陷产生原因
在编程过程中对内部数据结构都有所约束,包括大小、维数、类型、形状、屏幕上的位置等。我们测试的重点就是用户能够设置的属性,这些属性使用了一组参数来约束。在建立数据项和随后对数据项进行修改的任何时刻都要对数据属性的约束进行检查。初始化代码中修改后的代码有错误,在修改错误的时候只修改了初始化部分,而忽略了对其他部分的修改,使得其修改不完全,不彻底。
11.2 如何发现这类问题
◆ 确认候选数据,并列出其可修改的属性。对每个属性列出有效值的允许范围、约束的条件等。
◆ 确定所有可修改属性的功能位置。
◆ 对数据进行初始化,改变每个属性以确定是否正确进行了约束。
如果数据约束遭到破坏,可能导致系统崩溃,或者表现为响应时间延迟,错误信息不正确以及使用错误数据产生的无效输出。
11.3 测试方法小结
◆ 应用场合:应用程序内部的数据结构存在约束。
◆ 测试方法:破坏内部数据结构的约束。
◆ 测试知识储备:全面理解需求规格说明书中的内容,确定内部数据结构的所有约束。