测试用例
测试用例就是输入+执行条件+期望结果。
测试优先编程
- 先写SPEC
- 再写符合SPEC的测试用例
- 写代码,执行测试
单元测试
以软件的最小单元模型展开测试,隔离各个模块,定位错误,进行调试.
- 单元测试需要驱动Dricer(接受测试数据,将数据传递给组件并打印相应的结果)
- Stubs:桩,即被测试的组件调用的其他函数被桩给替代了。
- JUnit是一个测试框架
黑盒测试
- 检查代码功能,根据SPEC写出测试,不关心内部实现细节
- 等价类划分:边界划分,笛卡尔积VS.覆盖测试(每个维度至少被一个样例覆盖,不用排列组合)
- 等价类划分时,要根据specifies的要求,满足以及违背它。比如限定正奇数,则测试样例要有正、负,奇,偶。
- 边界分析BVA:最小值,最小值-1,最小值+1,正常值,最大值-1,最大值,最大值+1.
- 大小关系也是一种划分关系。
白盒测试
- 考虑内部实现细节,尽可能提高测试覆盖度
- 路径覆盖>分支覆盖>语句覆盖
- 独立基本路径测试:对所有执行路径进行等价类划分,找到最简单路径,设计测试样例使其至少被覆盖一次。
自动测试
自动测试非自动生成测试样例,而是借助JUNIT进行测试。自动测试框架:调用模块以适当的测试样例(你写好的),自动检查结果是否正确。
回归测试
当程序被修改之后,执行之前的所有测试 。同时,当你修复一个BUG后,要把触发BUG的输入以及输出作为测试样例接入,以便后面修改后不会重新引入BUG,便于后面的回归测试。严格意义上,回归测试的测试样例都应该是曾经使你的代码出现BUG的测试样例。
- 自动化回归测试,二者结合。
测试策略怎么写?
- 对于一个函数来说,对其输入输出进行划分。
- 对于一个ADT测试来说,对所有的函数进行上述步骤。