1、如何有效的使用代码覆盖率提高代码质量目录1 初级使用代码覆盖率2 中级使用代码覆盖率3 高级使用使用代码覆盖率初级使用代码覆盖率 美好生活触手可得CxtyBranchesLinesMethods IF ELSE Case?:&|判定结构的复杂度 独立线性路径条数 行覆盖 方法覆盖主要绩效目标 美好生活触手可得红色红色初级使用初级使用No coverage:No instruction in the line has been executed绿色绿色黄色黄色Full coverage:All instructions in the line have been executedPartial
2、coverage:Only a part of the instruction in the line have been executed 美好生活触手可得初级使用初级使用 美好生活触手可得初级使用初级使用 美好生活触手可得初级使用初级使用会看代码覆盖率的报告,知道各种颜色的含义会看代码覆盖率的报告,知道各种颜色的含义知道那些行(代码)被执行过,那些未被执行过知道那些行(代码)被执行过,那些未被执行过知道通过代码覆盖率,补充测试用例知道通过代码覆盖率,补充测试用例中级使用代码覆盖率 美好生活触手可得中级使用中级使用圈复杂度圈复杂度代码复杂度的衡量标准,程序的可能错误和高的圈复杂度有着很大关系
3、,圈复杂度可以成为编码及重构的重要参考指标最少用例数最少用例数降低圈复杂度的重构技术降低圈复杂度的重构技术覆盖所有情况使用的最少用例数,在系统软件和军事软件有75%的在使用,将圈复杂度维持在10以下有很多实际的和经济的理由,低于10的软件是非常简单且很容易跟踪的,参考 代码大全 重构 改善既有代码的设计 美好生活触手可得中级使用中级使用使用的计算公式是V(G)=e n+2,e 代表在控制流图中的边的数量(对应代码中顺序结构的部分),n 代表在控制流图中的节点数量,包括起点和终点(1、所有终点只计算一次,即便有多个return或者throw;2、节点对应代码中的分支语句)美好生活触手可得中级使用
4、中级使用 美好生活触手可得中级使用中级使用提取函数 将独立业务活模块代码单独封装为函数算法替换复杂的算法可能会导致Bug,满足功能的前提下,使用简单的算法分解条件式复杂的条件表达式封装为函数合并条件式将一系列得到相同结果的条件表达式合并查询函数和修改函数分离-单一职责原则,强调复用性合并重复的条件判断不同的分支有相同的处理,提炼到分之外高级使用代码覆盖率 美好生活触手可得高级使用高级使用跟跟CI的持续集成的持续集成1.自动化的回归并收集代码覆盖率2.查看代码覆盖率的历史记录精准的代码覆盖率精准的代码覆盖率突变测试突变测试1.识别出所有被修改的方法(新增,删除和修改)2.可以有效的查看那些被修改
5、的方法是否被测试到3.通过圈复杂度衡量代码的质量1.为什么要引入突变测试2.如何通过突变测试来衡量单元测试的质量3.突变测试的成本及收益及发展 美好生活触手可得跟发布系统的集成,重置代码覆盖率CI的持续集成的持续集成 美好生活触手可得跟发布系统的集成,获取代码覆盖率CI的持续集成的持续集成 美好生活触手可得跟Sonar的集成CI的持续集成的持续集成 美好生活触手可得跟Sonar的集成CI的持续集成的持续集成 美好生活触手可得识别出所有被修改的方法(新增,删除和修改)精准的代码覆盖率精准的代码覆盖率 美好生活触手可得可以有效的查看那些被修改的方法是否被测试到精准的代码覆盖率精准的代码覆盖率 美好
6、生活触手可得为什么要引入突变测试突变测试突变测试Mutation testing is a technique for systematically mutating source code in order to validate test suites.It makes small changes to a programs source code and then runs a test suite;if the test suite ever succeeds on mutated code then a