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

  • 相关阅读:
    讨论下NOSQLDB使用场景的问题
    控制反转IOC与依赖注入DI dodo
    ASp.net中Froms验证方式 dodo
    SQL Server 2008阻止保存要求重新创建表的更改 dodo
    依赖注入容器Unity介绍 dodo
    mvc UrlHelper dodo
    ASP.NET MVC 使用TempData dodo
    ASP.NET MVC的生命周期与网址路由 dodo
    强制将IE,Chrome设置为指定兼容模式来解析 dodo
    LINQ to XML 常用操作(转) dodo
  • 原文地址:https://www.cnblogs.com/bonelee/p/11226816.html
Copyright © 2011-2022 走看看