本文整理自博主的软件测试学习笔记,适用于软件测试学科的入门学习,专业课期末复习等。包含核心要点,力求简洁高效,希望对各位小伙伴有所帮助。
目录
(3) 根据程序环复杂度的计算公式,求出程序路径集合中的独立路径数目
(4) 根据环复杂度的计算结果,源程序的基本路径集合中有多少条独立路径
一、白盒测试简介
白盒测试(White-box Testing)又称为结构测试或逻辑测试,它一般用来分析程序的内部结构,针对程序的逻辑结构来设计测试用例进行测试。
白盒测试的测试目的是,通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。
主要包含的测试方法有:
- 基于逻辑的覆盖(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖)
- 基于路径覆盖
二、程序结构的控制流图
白盒测试需要分析程序的内部结构,程序流图是非常常见的辅助我们分析程序结构的工具。且大多软件测试专业课期末考试也会要求同学们会画给定程序的控制流图,并依此分析环复杂度和设计白盒用例,以考察路径覆盖这一白盒测试方法。
具体如何画图、解题,留到后面讲解题方法的时候再详细说明。这里先熟悉常见程序结构的控制流图:
三、基于逻辑的覆盖
1、语句覆盖
基本思想:设计测试用例时要保证程序的每一条语句至少执行一次。语句覆盖等同于对流程图中所有节点的覆盖。
局限性:语句覆盖是“最弱的覆盖”,只考虑了语句而非判定表达式。
2、判定覆盖(分支覆盖)
基本思想:使程序中每个判断的取真和取假至少经历一次,即判断的真假均曾被满足。判定覆盖等同于对流程图中所有边的覆盖。
局限性:未彻底分析每个简单判定条件的取值情况,仍然会导致遗漏部分缺陷。
3、条件覆盖
基本思想:条件覆盖要求所设计的测试用例能使每个判定中的每一个条件都获得可能的取值, 即每个条件至少取一次真值、取一次假值。只考虑条件本身,不考虑整个判定节点的真假情况。
局限性:条件覆盖不能保证100%的判定覆盖。
4、判定-条件覆盖
基本思想:测试用例可以使得判定中每个条件所有的可能取值都至少执行一次(条件覆盖),同时每个判定本身所有的可能取值也至少执行一次(判定覆盖)。
局限性:判定条件覆盖并未考虑条件的组合情况。
*修正的判定-条件覆盖
修正方式:
示例:
最终抽取最少独立影响对,即为测试用例集。
5、组合覆盖(条件组合覆盖)
基本思想: