if/while/for/语句/分支/路径覆盖的控制流程图+数据流分析(DU)

news/2024/11/28 4:38:18/

if/while/for/语句覆盖/分支覆盖/路径覆盖的控制流程图+数据流分析(DU)

语句的线性序列Linear Sequences of Statements

在这里插入图片描述
在这里插入图片描述
“If” Constructs
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

“While” Constructs
在这里插入图片描述
“For” Constructs
在这里插入图片描述

在这里插入图片描述
语句覆盖率Statement Coverage
测试套件应执行 CFG 的所有节点
也被称为:
• 线路覆盖Line Coverage
• 节点覆盖Node Coverage
• 基本块覆盖Basic Block Coverage
在这里插入图片描述
分支机构覆盖Branch Coverage
测试套件应执行 CFG 的所有真/假边缘
也被称为:
• 决策覆盖率Decision Coverage
• 谓词覆盖Predicate Coverage
• 边缘覆盖Edge Coverage
在这里插入图片描述

路径覆盖Path Coverage
测试套件应执行通过 CFG 的所有路径
在实践中通常不可能
通过 countZeros 的路径数取决于 x 的长度
某些版本的路径覆盖专注于每个循环的 0、1 或更多次执行,以减少可能无限数量的路径!
在这里插入图片描述

覆盖标准受不可行测试要求的约束Coverage Criteria are Subject To Infeasible Test Requirements
• 这也可能发生在声明覆盖范围内: 不可行的语句指向死代码
• Branch Coverage 更有可能发生这种情况: 不可行的分支指向代码中的冗余决策
• 很可能与路径覆盖:
不可行路径不一定是冗余的结果; 并非所有通过 CFG 的路径在实际代码中都是合法可行的

包含结构覆盖标准Subsumption of Structural Coverage Criteria
在这里插入图片描述

何时使用结构覆盖
• 结构覆盖级别是了解测试套件执行了多少代码的有用指标。
• 通用原理:您不会希望发布未通过至少一次测试执行至少一次的代码部分:
因此语句/行覆盖率是常用的指标
但 Branch Coverage 更强,无需更多额外努力即可获得
路径覆盖不太常见且通常难以处理

数据流分析Data Flow Analysis

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
它也是一个 Definition-Use Path
在这里插入图片描述
在数据流分析和测试中,DU 集指的是程序或系统中的变量集,这些变量被定义并随后在程序执行中使用。

在数据流分析中,目标是跟踪程序中的数据流,以确定变量是如何定义的(赋值)以及这些定义的值稍后在程序中的使用方式。 集合 DU 获了变量定义及其用途之间的这种关系。
集合 DU 可以表示为变量对 (d, u) 的集合,其中 d 表示变量的定义,u 表示它在程序中的后续使用。 每对 (d, u) 表示在程序的某个点定义了一个变量,其值在稍后的点使用。
通过分析集合 DU,数据流分析技术可以识别与变量使用相关的潜在问题或异常,例如未初始化的变量、已定义但从未使用过的变量,或未事先定义就使用的变量。
在测试环境中,DU 集也可以用来指导测试用例的设计。 测试人员可以专注于创建测试用例,这些用例会执行程序中定义和使用变量的路径,确保所有相关数据流场景都得到充分测试。

总的来说,集合 DU 通过捕获变量定义和使用之间的关系,使分析和测试技术能够识别潜在问题并指导测试用例设计,在数据流分析和测试中起着至关重要的作用。

所有用途覆盖All Uses Coverage
每个定义到达每个使用同一个变量
在这里插入图片描述

所有Def-Use 路径覆盖
DU中的每条路径都需要执行
在这里插入图片描述
一个复杂的例子:

在这里插入图片描述


http://www.ppmy.cn/news/185667.html

相关文章

windows全系1

windows操作系统专贴(一定有你想要的) 2006年12月01日 22:25 windows 98 简体中文零售版第三版 语言:简体中文 类型:操作系统 大小:180MB 环境:9x/Me/NT/2000/XP/.Net/ 授权:零售版 软件介绍:这个版本是SE的改进版,比前…

2020:下一个十年,存储发展的趋势是什么?(全集)

前 言 今天是五四青年节,祝朋友们永葆青春的心态,积极乐观、开放真实、审慎务实。 “ 青春不是年华,而是心境。 无论年届花甲,抑或二八芳龄,心中皆有生命之欢乐,奇迹之诱惑,孩童般天真久盛不衰…

深度长文:AMD的崛起、衰落与复兴

来源:内容编译自「techspot」,谢谢。 AMD是最早的大型微处理器设计者之一,近50年来一直是技术爱好者之间争论的话题。它的历史构成了一个激动人心的故事——充满了英雄式的成功,愚蠢的错误。在其他半导体公司来来往往的时候&#…

全球最顶级的十大创新公司

来源:中企思智库 2021年2月英国著名的全球信息服务提供商科睿唯安发布了“2021年度全球百强创新机构”榜单,榜单通过衡量全球各大企业机构专利实力以及创新文化进行综合评选,具体排名如下: 3M——是世界第一大创新企业&#xff0c…

1000+份计算机paper,卡耐基梅隆大学,芝加哥大学,facebook,google,微软,twitter等大牛一作,持续更新中...

复杂而有序的数据结构网络编程那些事儿牛B的基础组件中间件很重要高大上的分布式接近原始的LinuxOS阅读工具🔨🌐🐮✈🖧🖥🧰 🔥🔥🔥 原文链接 🔨 复杂而有序的…

美国金融科技公司SoFi的增长难以持久,股价也将下跌

来源:猛兽财经 作者:猛兽财经 公司介绍 SoFi Technologies(SoFi)是一家来自美国的知名金融科技公司,自2011年成立以来,已成为领先的个人理财在线平台。SoFi为年轻的高收入客户提供多样化的产品和服务,包括学生和汽车贷…

ROS和ROS2使用

ubuntu20.04下安装qt5.12 https://blog.csdn.net/lj19990824/article/details/121013721 Ubuntu 20.04在桌面左侧边栏添加QT creator快捷图标 https://blog.csdn.net/kavieen/article/details/118695038 Qt和ROS:https://github.com/chengyangkj?tabrepositories…

基于RT-Thread快速上手SD NAND 虚拟文件系统

SD NAND 也称之为贴片式TF卡,贴片式SD卡,采用标准的SDIO接口,兼容SPI接口。下图所示为CS 新一代CS SD NAND NP1GCR01-AOW 大小为128M,对比128M的SD卡,可以看到贴片SD卡尺寸更小,不要SD卡座,占…