一、 测试的目的。
“测试是为发现错误而执行程序的过程。”
“一个成功的测试用例”是发现程序中存在错误的测试用例。
二、 测试用例设计的原则
1)测试用例中一个必需部分是对预期输出进行定义。
2)测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况。
3)检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程是否“做了其不应该做的”。
4)程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比。
5)穷举输入测试和穷举路径测试不可取。
三、人工检查的错误列表参照
包括数据引用错误、运算错误、数据声明错误、控制流程错误、输入输出错误、接口错误、内存错误等。
1、数据引用错误
1)是否有引用的变量未赋值或未初始化?
2)下标的值是否在范围之内?
3)记录和结构的属性是否匹配?
4)是否计算位串的地址?是否传递位串参数?
2、运算错误
1)是否存在非算术变量间的运算?
2)是否存在混合摸式的运算?
3)是否存在不同字长变量问的运算?
4)目标变量的大小是否小于赋值大小?
5)中间结果是否上溢或下溢?
6)是否存在二进制的不精确度?
3、数据声明错误
1)数组和字符串的初始化是否正确?
2)变量是否赋予了正确的长度,类型和存储类?
3)是否所有的变量都已声明?
4、控制流程错误
1)是否每个循环都终止了?
2)是否存在由于入口条件不满足而跳过循环体?
3)可能的循环越界是否正确?
4)是否存在“仅差一个”的迭代错误?
5、输入输出错误
1)文件的属性是否正确?文件在使用前是否打开使用后是否关闭?文件结束条件是否被正确处理?
2) I/O语句是否符合格式规范?是否处理了I/O 错误?
3)缓冲大小与记录大小是否配?
6、内存错误
1)为指针分配内存后,是否判断指针是否为null?