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存在。  

  • 相关阅读:
    Android之Margin和Padding属性及支持的长度单位
    java jvm eclipse 性能调优
    spring aop 内部方法调用事务不生效问题解决
    服务器 获取用户 真实ip
    Nginx gzip配置
    全局唯一的支付和订单id生成算法
    spring aop 方法增加日志记录
    linux cp复制文件 直接覆盖
    Twitter分布式自增ID算法snowflake原理解析
    nginx 命令
  • 原文地址:https://www.cnblogs.com/bonelee/p/11226816.html
Copyright © 2011-2022 走看看