一.什么是白盒测试?
按照测试方法分类,测试可以分为白盒测试和黑盒测试两种。
白盒测试也称结构测试或逻辑驱动测试,是把测试对象看作一个透明白色的盒子,测试人员依据程序 内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
所以白盒测试是一种基于代码的测试,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得 出测试数据。
逻辑覆盖法:是通过对程序逻辑结构的遍历实现程序的覆盖。
覆盖率:是用来度量测试完整性的一个手段。
覆盖率=至少被执行一次的item 数/item的总数(item是程序逻辑结构,有语句、判定、条件、判定条件、条件组合、路径)
二.语句覆盖
语句覆盖的概念
语句覆盖,顾名思义就是针对代码语句。我们设计出来的测试用例要保证程序中的每一个语句至少被执行一次。
语句覆盖率=至少被执行一次的语句数量/可执行的语句总数
通常语句覆盖被认为是“最弱的覆盖”,因为它仅仅考虑对代码中的执行语句进行覆盖而没有考虑各种条件和分支,比较难以发现代码中的问题。
三.分支覆盖
分支覆盖的概念
分支覆盖(判定覆盖):使得程序中每个判断的取真和取假至少经历一次,即判断的真假均曾被满足.
四.条件覆盖
条件覆盖的概念
条件覆盖:条件覆盖要求所设计的测试用例能使每个判定中的每一个条件都获得可能的取值,即每个条件至少取一次真值和假值。 (不考虑组合情况)
五.判定条件覆盖
判定条件覆盖概念 判定条件覆盖,就是我们设计的测试用例可以使得判断中每个条件所有的可能取值至少执行一次(条件覆盖),同时每个判断的“真”和“假”也要至少执行一次 (判定覆盖)。 不难发现判定条件覆盖同时满足判定覆盖和条件覆盖,弥补了两者各自的不足,但是判定条件覆盖并未考虑条件的组合情况。
六.组合覆盖
组合覆盖概念 组合覆盖也叫做条件组合覆盖,意思是说我们设计的测试用例应该使得每个判定中的各个条件的各种可能组合都至少出现一次。显然,满足条件组合覆盖的测试用例一定是满足判定覆盖、条件覆盖和判定条件覆盖的。
七.路径覆盖
路径覆盖概念 路径覆盖:要求覆盖程序中所有可能的路径。意思是说我们设计的测试用例可以覆盖程序中所有可能的执行路径。可以对程序进行彻底的测试用例覆盖,但是用例数量会增多很多。所以路径覆盖是最彻底的测试用例覆盖,但实际上可操作性不强。