测试(Test)
测试用例 = 输入 + 执行条件 + 期望结果
写spec -> 写符合spec的测试用例 -> 写代码执行测试反复修改
TDD(Test-driven development):测试优先的编程,测试驱动开发
*写测试用例时必须既要考虑有效输入也要考虑无效输入
单元测试:针对软件的最小单元模型开展测试,隔离各个模块,容易定位错误和调试
Junit自动化单元测试 assertEquals assertThat查看实际值是否满足指定条件
黑盒测试/白盒测试
黑盒测试:对程序外部表现出来的行为的测试(从spec导出测试用例,检查功能,不考虑内部实现)
白盒测试:对程序内部代码结构的测试(一般较早执行)根据程序执行路径设计,进行等价类划分,每条路径至少覆盖一次
白盒测试一般由开发人员完成,黑盒测试一般由测试人员完成
等价类划分:被测函数的输入域划分为等价类,从等价类中导出测试用例
需要考虑错误数据
BVA边界数值分析方法
回归测试
一旦程序被修改,重新执行之前的所有测试
测试覆盖度
函数覆盖、语句覆盖、分支覆盖、条件覆盖、路径覆盖
测试效果:路径覆盖 > 分支覆盖 > 语句覆盖(测试难度也是这个顺序)