故障模型---缺陷查找攻击的二十一招大法
1.输入非法数据
输入数据的类型、长度、边界值;还要留意错误信息本身。
基本数据类型的边界值
2.输入默认值
从选项按钮、配置面板等处去考察。
3.输入特殊字符集
根据被测软件的具体情况输入非法字符。
多了解ASCII 字符集、程序设计语言和OS中的保留字符串及其特定含义。
4.输入使缓冲区溢出的数据
在需要接受字符串的地方输入一个比最大字符串更长的字符串。
黑客常用此法来攻击系统。
5.输入产生错误的合法数据组合
在输入值之间存在依赖关系时,输入可能会出现问题的组合值。
6.产生同一个输入的各种可能输出
在同一输入对应多个输出时可用此法测试。
7.输出不符合业务规则的无效输出
列出所有的无效输出,然后逐一测试,重点查看输出结果的正确性。
8.输出属性修改后的结果
强制每个输出产生,并编辑其属性,然后再次强制产生输出。
9.屏幕刷新显示
增加、删除、移动屏幕上的对象。
10.数据结构溢出
尝试将过多的值输入数据结构,测试上溢;尝试多删除一个数据,测试下溢。
11.数据结构不符合约束
任何时候都要对数据属性的约束进行检查,特别注意修改数据时也要进行。
可通过破坏内部数据的约束来进行测试。
12.操作数与操作符不符合
对于数值计算考虑操作数和操作符之间的限定关系;对于图形计算还要考虑各种输入数据之间的组合关系。
13.递归调用自身
考虑对象的自我交互或复制。
14.计算结果溢出
一次又一次地执行计算或使用很大或很小的输入和数据进行计算,重点测试数据类型的初始值或边界值附近的值,强制数据产生上溢或下溢。
15.数据共享或关联功能计算出错
当一个以上的功能在同一时间处于运行状态,可以考虑以点带面,重点测试某一功能,对可能与这个功能相连的其他功能附带测试。
16.文件系统超载
当软件较大,运行时需要较大空间时,强制磁盘系统满容量或小于等于被测试软件运行时所需容量后,运行被测试软件或利用测试工具模拟磁盘状况。
17.介质忙或不可用
软件运行需要消耗大量内存或需要其他相关软件同时运行,可通过启动大量程序或利用测试工具模拟磁盘状况。
18.介质损坏
用实际损坏介质的方法来测试应用程序。
19.文件名不合法
输入OS不允许的文件名和应用程序不允许的文件名。
20.更改文件访问权限
修改文件访问权限或用低权限的用户访问文件。
21.文件内容受损
对于那些需要对文件格式和内容进行校验的应用程序,可通过手工损坏文件或利用测试工具模拟CRC错误。