软件测试与测试优先的编程
1 JUnit测试用例写法
public Class ATest {}
表示测试类@Test
表示测试public void testA_B(){}
b表示测试方法- 使用
assertEquals(expected , actual)
,assertTrue(actual)
, 和assertFalse(actual)
判断actual调用的方法是否成立
2 黑盒测试用例的设计
- 黑盒测试:用于检查代码的功能,不关心内部实现细节
- 用尽可能少的测试用例,尽快运行,并尽可能大的发现程序的错误
2.1 等价类划分
- 基于等价类划分的测试:将被测函数的输入域划分为等价类,从等价类中导出测试用例。
- 针对每个输入数据需要满足的约束条件,划分等价类:自反、对称、传递
- 每个等价类代表着对输入约束加以满足/违反的有效/无效数据的集合
- 基于的假设:相似的输入,将会展示相似的行为。故可从每个等价类中选一个代表作为测试用例即可
2.2 边界值分析
- 大量的错误发生在输入域的“边界”而非中央
- 边界值分析方法是对等价类划分方法的补充
- 在等价类划分时,将边界作为等价类之一加入考虑
3 测试覆盖度
- 代码覆盖度:已有的测试用例有多大程度覆盖了被测程序
- 测试效果:路径覆盖>分支覆盖>语句覆盖
- 测试难度:路径覆盖>分支覆盖>语句覆盖
4 以注释的形式撰写测试策略
-
目的:在代码评审过程中,其他人可以理解你的测试,并评判你的测试是否足够充分
-
步骤
- Test strategy
- 根据输入参数分类如下:
- 测试用例覆盖了···