一、白盒测试
白盒测试是对程序内部的逻辑结构进行检查,从中获取测试数据。
白盒测试主要包含如下测试方法:
1.语句覆盖
语句覆盖要求必须编写足够多的测试用例,使得每一个可执行的语句都至少被执行一次,语句覆盖常常被称为“最弱的覆盖”,因为它只考虑了可执行语句,但是无法测试隐式分支(比如:if判断中没有写出来的else),也没有考虑各个分支的组合。
2.判定(分支)覆盖
判定覆盖要求每个判断都必须有“true”和“false”两个结果,并且每条语句都至少被执行一次。判定覆盖弥补了语句覆盖的缺点,即隐式分支可以被测试到,这样,判定覆盖将所有的判断的每种可能的结果的至少执行一次。但是判定覆盖仍然存在问题,判定覆盖只强调了判断的结果,而忽略了判断的具体条件,所以依然可能遗漏部分的测试路径。
3.条件覆盖
条件覆盖要求编写足够多的测试用例以确保将每个判断中的每个条件的所有可能的结果都至少执行一次,弥补了判定覆盖的缺点。但是却有可能无法让每条语句都被执行到。
4.判定/条件覆盖
判定/条件覆盖综合了判定覆盖和条件覆盖的优缺点,判定/条件覆盖要求设计出足够多的测试用例,将每个判断中的每个条件的所有可能结果至少执行一次,将每个判断的所有可能的结果至少执行一次。但是仍然存在缺点,判定/条件覆盖没有考虑条件的组合情况,有些特定的条件会屏蔽掉其他的条件。
5.多重条件覆盖
多重条件覆盖能解决判定/条件覆盖中条件组合的问题,多重条件覆盖要求编写足够多的测试用例,将每个判