zoukankan      html  css  js  c++  java
  • 圈复杂度本质上就是——分支覆盖率达到100%需要的测试用例数



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

     
     
    1. public String case2(int index, String string) {    
    2.        String returnString = 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.            returnString = "returnString1";    
    11.        } else if (index == 2) {    
    12.            if (string.length() < 5) {    
    13.               return string;    
    14.            }    
    15.            returnString = "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存在。  

  • 相关阅读:
    img标签与span一起使用不在同一条线上
    媒体查询
    section标签实现文字滚动
    js活jQuery实现动态添加、移除css/js文件
    页面中动态改变浏览器标题
    css清浮动与动态计算元素宽度
    js实现60s倒计时效果
    js与es6中获取时间戳
    JavaScript中实现小数点后保留2位
    GMT时间转换
  • 原文地址:https://www.cnblogs.com/bonelee/p/11226816.html
Copyright © 2011-2022 走看看