一、白盒测试概念
白盒测试又称结构测试或逻辑驱动测试,是把测试对象看做一个透明白色的盒子,测试人员一句程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
所以白盒测试是一种基于代码的测试,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
白盒测试一般是开发人员做单元测试用,但是也有测试人员自己做,对测试人员要求较高。
二、白盒测试的方法
1.语句覆盖
顾名思义就是针对代码语句,设计出来的用例要保证程序中的每一个语句至少被执行一次。
通常语句覆盖认为是“最弱覆盖”,因为它仅仅考虑对代码中的执行语句进行覆盖而没有考虑各种条件和分支,比较难以发现代码中的问题。
2.分支覆盖
使得程序中每个判断的取真和取假至少经历一次,即判断的真假均曾被满足。
3.条件覆盖
条件覆盖要求设计用例时针对判断语句里面每个条件表达式true 和 false各取值一次,不考判断语句的计算结果(不考虑组合情况)
4.判定条件覆盖(分支条件覆盖)
设计测试用例时,使得判断语句中每个条件表达式的所有可能结果至少出现一次,每个判断语句本身所有可能结果也至少出现一次。
5.组合覆盖
设计测试用例时,使得每个判断语句中条件结果的所有可能组合至少出现一次。
6.路径覆盖
设计测试用例时,覆盖程序中所有可能的执行路径
优点:这种覆盖方法可以对程序进行彻底的测试用例覆盖,比前面讲的五种方法覆盖度都要高。
缺点:于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。路径覆盖虽然是一种比较强的覆盖,但未必考虑判断语句中条件表达式结果的组合,并不能代替条件覆盖和条件组合覆盖。