控制流图、圈复杂度

article/2025/9/4 6:57:12

继续上次的测试作业,学习完程序插装的概念,今天学习测试的静态分析方法:绘制控制流图与计算圈复杂度。

一、控制流图:

一个过程或程序的抽象表现,常以数据结构链的形式表示。

 

二、圈复杂度:

复杂度越高,软件质量就越低,测试就越困难。

圈复杂度(McCabe),其复杂度VG)可按以下公式计算:          

VG = E – n + 2 其中,E为图G中的边数,n为图G中的节点数。

(这是最常用的计算方式,更多内容可以看百度百科)

三、实例:

举一个最简单的例子,以计算整数X和整数Y的最大公约数为例:

int gsd(int x,int y)
{int q=x;int r=y;while(q!=r){if (q>r)q=q-r;else r=r-q;}return q;
}

根据以上代码绘制控制流图和计算圈复杂度:

1)控制流图


2)计算圈复杂度

在上图中边数为9,节点数为8,通过公式的计算结果为3,所以该程序的圈复杂度为3。

验证:

我们采用圈复杂度的其他计算方法进行验证:平面被控制流图划分成的区域数即为圈复杂度。

针对复杂的控制流图使用区域计算更为简单,但多数采用上述计算方式。




http://chatgpt.dhexx.cn/article/TJuDk0a6.shtml

相关文章

软件评测师必考题-控制流图

控制流图的基本知识 首先我们得清楚控制流图中的几个判断循环是如何表示的: 判断节点的嵌套 清楚了上面表示方法,你还是很难画出复杂的控制流图,而软考的控制流图往往是2个或多个判断节点嵌套在一起。其实只要把嵌套的节点想象成被嵌套节点…

软件中级-控制流图基本知识

软件中级-控制流图基本知识 什么是控制流图? 控制流图(Control Flow Graph, CFG)也叫控制流程图,是一个过程或程序的抽象表现,是用在编译器中的一个抽象数据结构,代表了一个程序执行过程中会遍历到的所有路径。 控制流图中包含…

程序控制流图

基本符号 ps:请将线看成弧线[doge] 顺序结构 if选择结构 while循环结构 case多分支结构 控制流图由节点和控制流线(弧)两种符号组成。 结点以标有编号的圆圈表示,用于表示程序流程图中矩形框、菱形框的功能,是一…

控制流图怎么画

一、什么是控制流图? 控制流图(Control Flow Graph, CFG)也叫控制流程图,是一个过程或程序的抽象表现,是用在编译器中的一个抽象数据结构,由编译器在内部维护,代表了一个程序执行过程中会遍历到的所有路径。它用图的形…

软工——各种图

目录 一.因果图二.控制流图三.程序流程图四.数据流图数据流数据流图的画法:由简入繁父图子图平衡保持数据守恒数据字典 五.N-S盒图六.PAD盒图七.操作状态图八.用例图、活动图、顺序图九.类图十.Jackson图十一.IPO图 一.因果图 因果图法:是一种利用图解法…

软件测试之控制流图

为了应对软件工程考试,本文对控制流图常见考法进行整理,主要是针对软件评测师的题型来整理。 什么是控制流图 控制流图是一个过程或程序的抽象表现,常以数据结构链的形式表示。简称流图,是对程序流程图进行简化后得到的&#xf…

控制流图(Control Flow Graph)-(CFG)

1.定义 百度百科: 控制流图(Control Flow Graph, CFG)也叫控制流程图,是一个过程或程序的抽象表现,是用在编译器中的一个抽象数据结构,由编译器在内部维护,代表了一个程序执行过程中会遍历到的所有路径。它用图的形式…

【大学生软件测试基础】白盒测试 - 控制流图 - 01

任务1、画出程序流程图; 任务2、画出控制流图; 任务3、根据程序环形复杂度的计算公式,求出程序路径集合中的独立路径数目; 任务4、根据环形复杂度的计算结果,源程序的基本路径集合中有多少条独立路径; …

控制流图(Control Flow Graph, CFG)

The if Statement if (x < y) {y 0;x x 1; } else {x y; } if (x < y) {y 0;x x 1; } The if-return Statement if (x < y) {return; } print (x); return; 注意&#xff1a;2到3 没有边 while and for Loops x 0; while (x < y) {y f (x, y);x x …

C语言之美——平方根倒数快速计算

C语言之美——平方根倒数快速计算 前言 由于特殊原因&#xff0c;陆陆续续接触陀螺仪很长一段时间&#xff0c;对于各种解析算法的运算速率有了切身体会&#xff0c;不断追求更快、更准。最近&#xff0c;发现了一份比较特殊的平方根倒数速算法&#xff0c;一下子来了兴趣&am…

【C语言求素数(质数)的三种方法】

失踪人口回归&#xff0c;假期因为太懒&#xff0c;刚开学的这几天又真的忙&#xff0c;所以好长时间没有发文章了&#xff0c;马上我们要进行C语言考试了&#xff0c;我发现学的东西好多都不太懂&#xff0c;所以慢慢要在进行一次复习了&#xff1b;上周数据结构课上老师让写程…

平方根求和c语言编程,计算并输出3到100(包括3和100)之间所有素数之和的平方根。 C语言,求救...

满意答案 zh19951006 2014.07.02 采纳率&#xff1a;56% 等级&#xff1a;12 已帮助&#xff1a;6562人 //先求3到100间的所有素数,存在数组中; //求该数组的所有为素数的元素之和,然后开方求平方根 #include <stdio.h> #include <math.h> int sushu[98];//开辟…

word封面下划线怎么对齐(非常简单+彻底解决)

之前遇到这个问题&#xff0c;也在网上百度了很多次&#xff0c;有的说段落调整对齐方式为两端对齐&#xff0c;对称什么的&#xff0c;试了一下都不管用&#xff0c;也有的说是加一个表格&#xff0c;但是并没有解决根本问题&#xff0c;最后突然想起&#xff0c;有一次打印东…

【Office】Word空格无法添加下划线

缘由 在弄文档封面的时候&#xff0c;需要在项目名称后面加一条下划线 于是出现了这个情况&#xff1a; 1.在没有内容的一行&#xff0c;带下划线的空格直接不显示下划线了&#xff08;下图第一行&#xff09; 2.空格应用下划线格式&#xff0c;内容前面的是能显示的&#…

Word公式居中,公式编号右对齐

1. 选择开始-样式-新建样式。编辑名称为公式 2. 左下角选择格式-制表位 打开Word标尺&#xff0c;找到中间和最右边的位置。比如我这里是17和34&#xff0c;输入位置分别设置居中对齐和右对齐 3. 在样式中选择公式 4. 在公式右侧键入编号&#xff0c;然后将光标放在公式左侧&am…

php输入域无法对齐,下划线输入内容后怎么对齐

下划线输入内容后设置对齐的方法&#xff1a;首先打开Word&#xff1b;然后依次选择“菜单栏->插入->表格”&#xff1b;接着将内容分别输入表格中&#xff0c;并调整表格的列宽等格式&#xff1b;最后右键选择“边框和底纹”&#xff0c;并设置只保留底部边框和中间横线…

Word 里文字对齐的4种方法

转自&#xff1a;微点阅读 https://www.weidianyuedu.com 我们在用Word写论文、制作简历的时候&#xff0c;通常会遇到把word中某些特定文字对齐的情况。那么问题来了&#xff0c;你平时都是怎么对齐文字的&#xff1f;傻傻的用空格来对齐吗&#xff1f; 在字符数不等的情况下&…

Word 里文字对齐4种方法推荐

我们在用Word写论文、制作简历的时候&#xff0c;通常会遇到把word中某些特定文字对齐的情况。那么问题来了&#xff0c;你平时都是怎么对齐文字的&#xff1f;傻傻的用空格来对齐吗&#xff1f; 在字符数不等的情况下&#xff0c;加空格不仅麻烦而且不准确&#xff0c;下面传…

Windows系统中Word文档中文字后面的空格下的下划线不显示的解决办法

笔者最近在做课程设计&#xff0c;需要写Word文档&#xff0c;在写文档的时候遇到了一堆bug&#xff0c;现在课程设计肝完了&#xff0c;终于有时间梳理梳理这些bug然后发布出来做个备忘录。    第一个bug是Windows系统中Word文档中文字后面的空格下的下划线不显示&#xff0…

word里面怎样输入空白下划线

在编写文档时&#xff0c;有时需要留些空格下划线的位置&#xff0c;那怎么加入空白下划线呢&#xff1f;下面我用我常用的speedoffice来说明一下。 方法1&#xff1a;将输入法设置为英文状态&#xff0c;同时按下“Shift”键和“-”键即可可持续不断敲空白下划线。 方法2&…