0


软件质量保证——单元测试之白盒技术

笔记内容及图片整理自XJTUSE “软件质量保证” 课程ppt,仅供学习交流使用,谢谢。

程序图

程序图定义

程序图P=(V,E),V是节点的集合(节点是程序中的语句或语句片段),E是有向边的集合(有向边是程序语句或语句片段之间的有向控制流)。若程序图P存在两个节点i和j,存在一条从i到j的有向边,这说明语句片段j能在i后立即被执行。

在实际案例中程序图仅仅包含实际执行的语句。

程序图案例

三角形问题程序源码:

三角形问题程序路径图:

DD****路径

DD路径定义

DD路径,全称Decision to Decision Paths,是从决策到决策的语句序列路径(决策语句指一个节点的入度或出度大于等于2),DD路径中的语句序列内部没有分支。起始节点和终止节点不同的路径是链,链中每个节点的入度和出度都是1。DD路径图是一种压缩格式的程序图。

DD路径是程序图中的一条链,分为五种情况:

1)源节点——由一个入度为0的节点组成

2)汇节点——由一个出度为0的节点组成

3)判定语句/判定结束语句——由一个入度或出度>=2的节点组成

4)短分支——由一个入度和出度都是1的节点组成

5)串行语句序列——由长度>=1的最大链组成

DD路径案例

三角形问题DD路径:

三角形问题DD路径图(左边程序图压缩为右边DD路径图):

测试覆盖指标

黑盒测试技术常常缺乏合适的度量标准,因而采用提供相应测试覆盖指标的结构性测试进行辅助,覆盖率是用于度量测试完整性的一种手段。

覆盖率 = 被执行的测试项数量 / 总项数 * 100%

程序图的覆盖指标

采用给定的测试用例集作用于被测软件时,分析其程序图:

节点覆盖——要求程序图中的所有节点都被遍历到。

边覆盖——要求程序图中的所有边都被遍历到。

路径覆盖——要求程序图中的所有从源节点到汇节点的路径都被遍历到。

逻辑覆盖指标

逻辑覆盖主要针对程序内部的逻辑结构进行测试用例设计,包含以下6种指标:

1)语句覆盖——程序中的每条可执行语句都至少被执行一次,与节点覆盖等同

2)判定覆盖——程序中的每个判定的取真分支和取假分支都至少被执行一次

3)条件覆盖——程序中的每个判定的每个条件的各种取值都至少被执行一次

4)判定-条件覆盖——结合了判定覆盖和条件覆盖

5)条件组合覆盖——程序中的每个判定的所有条件的各种取值组合都至少被执行一次

6)路径覆盖——程序中的每个路径都至少被执行一次

Miller覆盖指标

Miller覆盖指标主要是基于程序DD路径的指标,并通过实践表明当一组测试用例满足DD路径覆盖指标时,可以发现程序中大约85%的缺陷。

循环覆盖指标

简单循环:存在while-do和do-until两种形式,采用改进的边界值分析设计测试用例。

嵌套循环:一个循环体内包含其他循环,采用由内向外逐层测试的思想设计测试用例。

串接循环:程序中两个及以上的连续循环,根据循环间是否独立采用简单循环/嵌套循环的测试策略设计测试用例。

复杂循环:循环体内存在入度/出度大于1的节点,甚至两个及以上循环相互嵌套,是一种实际程序设计中需要避免的情况。

标签: 笔记

本文转载自: https://blog.csdn.net/2301_76289889/article/details/144134154
版权归原作者 天問* 所有, 如有侵权,请联系我们删除。

“软件质量保证——单元测试之白盒技术”的评论:

还没有评论