首页 > 其他分享 >圈复杂度本质上就是——分支覆盖率达到100%需要的测试用例数

圈复杂度本质上就是——分支覆盖率达到100%需要的测试用例数

时间:2023-06-02 22:02:59浏览次数:38  
标签:index String 100% 代码 测试用例 检测 复杂度 分支

圈复杂度本质上就是——分支覆盖率达到100%需要的测试用例数_代码块

 

圈复杂度本质上就是——分支覆盖率达到100%需要的测试用例数_复杂度_02

圈复杂度主要与分支语句(if、else、,switch 等)的个数成正相关。如下代码: 

 

1. public String case2(int index, String string) {    
2. null;    
3. if (index < 0) {    
4. throw new IndexOutOfBoundsException("exception <0 ");    
5.        }    
6. if (index == 1) {    
7. if (string.length() < 2) {    
8. return string;    
9.            }    
10. "returnString1";    
11. else if (index == 2) {    
12. if (string.length() < 5) {    
13. return string;    
14.            }    
15. "returnString2";    
16. else {    
17. throw new IndexOutOfBoundsException("exception >2 ");    
18.        }    
19. return returnString;    
20.     }

 

根据公式 V(G) = e – n + 2 = 12 – 8 + 2 = 6 。代码的圈复杂段为6。

只能记做一个在开发中常用的检测圈复杂度的工具,PMD,checkstyle ,sourcemonitor都可以检

测到高复杂度的代码块。在代码的开发中,配合各种圈复杂度的检测插件,将高复杂度的代码

进行适当的拆分、优化,可以大大提高代码整体的质量,减少潜在bug存在。  

 

标签:index,String,100%,代码,测试用例,检测,复杂度,分支
From: https://blog.51cto.com/u_11908275/6405206

相关文章

  • 张宇1000题知识点整理
    张宇1000题知识点函数极限与联系当\(x\rightarrow0\)时,若\(\alpha(x)x\rightarrow0\),则有\(e^{\alpha(x)(1+x)}-1\sim\alpha(x)\ln(1+x)\sim\alpha(x)x\),这可以视作\((1+x)^\alpha-1\sim\alphax\)的推广。当\(x\to0\)时,\(1-\cos^\alpha(x)\sim\frac{\alpha}{2......
  • bzoj 1007: [HNOI2008]水平可见直线(模拟栈)
    http://www.lydsy.com/JudgeOnline/problem.php?id=10071007:[HNOI2008]水平可见直线TimeLimit: 1Sec  MemoryLimit: 162MBSubmit: 7644  Solved: 2922[Submit][Status][Discuss]Description在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往......
  • bzoj1001 [BeiJing2006]狼抓兔子(网络流dinic算法||最短路spfa)
    http://www.lydsy.com/JudgeOnline/problem.php?id=10011001:[BeiJing2006]狼抓兔子TimeLimit: 15Sec  MemoryLimit: 162MBSubmit: 24017  Solved: 6068[Submit][Status][Discuss]Description现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓......
  • iostat相关参数说明——await:平均每次设备I/O操作的等待时间 (毫秒),如果%util接近 100
    iostat是I/Ostatistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。iostat的语法如下:iostat[......
  • Python单元测试:一步步了解测试框架、测试用例和覆盖率分析
    在软件开发中,单元测试是一个非常重要的环节。它可以确保你的代码能够正常运行,并且在将来的修改中不会出现问题。在Python中,单元测试是非常容易实现的。本文将介绍Python单元测试的所有知识点,包括测试框架,测试用例,测试装置,测试套件和覆盖率分析。一、测试框架Python中最常用的测......
  • 国产化率100%工业核心板——全志SOM-TLA40i核心板规格书
    1.核心板简介创龙科技SOM-TLA40i是一款基于全志科技A40i处理器设计的4核ARMCortex-A7国产工业核心板,每核主频高达1.2GHz。核心板通过邮票孔连接方式引出CSI、TVIN、MIPIDSI、TVOUT、HDMIOUT、RGBDISPLAY、LVDSDISPLAY、GMAC、EMAC、USB、SATA、SDIO、UART、TSC、SPI、TWI等......
  • P1001 A+B Problem
    考虑只用位运算去解决。\(a+b\)可以表示成\((a\landb)+(a\veeb)\),即把共有的\(1\)和独有的\(1\)分开。因为\((a\landb)\in(a\veeb)\),所以可以将前者左移一位,后者异或上前者,和保持不变。这样又回到了第一步,递归计算即可,边界条件为\(a=0\)。其实就是在模拟二进制加......
  • 解决用PLSQL Developer查询时数据大小超过100M的提示问题
    解决用PLSQLDeveloper查询时数据大小超过100M的提示问题Tools->Preferences->SQLWindowMaximumResultSetsize(0isunlimited)由100设置为0即可  解决PLSQLDeveloper字体太小的问题Tools->Preferences->USERINTERFACE->FONTS1.Browser设置PL/SQL中左侧......
  • Java并发(八)----使用线程避免cpu占用100%
    1、sleep实现在没有利用cpu来计算时,不要让while(true)空转浪费cpu,这时可以使用yield或sleep来让出cpu的使用权给其他程序while(true){  try{ Thread.sleep(50); }catch(InterruptedExceptione){    e.printStackTrace(); }......
  • 肖sir__现场笔试__三角形测试用例和网络设备通信(杭州)
    =======================================  设备A:- IP地址: 192.168.1.2- 子网掩码: 255.255.255.0- 网关: 192.168.1.1设备B:- IP地址: 192.168.2.2- 子网掩码: 255.255.255.0- 网关: 192.168.2.1端口A(连接设备A):- IP地址: 192.168.1.1- 子网掩码: 255.25......