学习内容:

关于代码覆盖率的相关知识与IDEA检测代码覆盖率的方法。


背景:

今天做软构lab2时需要在Eclipse下面使用Eclemma工具测试所谓的代码覆盖率。我对这个概念产生了一些好奇,于是做了一些调研。


基本概念:

代码覆盖率,也称为测试覆盖率,可衡量自动化测试执行的代码比例。

代码覆盖率工具针对特定的编程语言。 其使用一系列标准衡量覆盖率,包括代码行数、方法或函数、分支和条件。 您可以使用代码覆盖率工具识别代码库尚未被自动化测试覆盖的部分。

监测代码覆盖率指标有助于确保您保持足够的自动化测试水平。 如果代码覆盖率有所下降,则可能表明您没有将自动化测试作为编写新代码的核心要素。

然而,虽然代码覆盖率能够说明测试覆盖了多少代码,但它并不会指示这些测试的有效性或其能否解决所有故障模式。 将代码覆盖率与其他指标相结合,了解自动化测试体系的有效性。

以下列出一些基本的覆盖率准则:

函数覆盖率(Function coverage):有调用到程序中的每一个函数(或副程序)吗?

指令覆盖率(Statement coverage):若用控制流图表示程序,有执行到控制流图中的每一个节点吗?

判断覆盖率(Decision coverage):(和分支覆盖率不同)[5] 若用控制流图表示程序,有执行到控制程图中的每一个边吗?例如控制结构中所有IF指令都有执行到逻辑表达式成立及不成立的情形吗?

条件覆盖率(Condition coverage):也称为谓词覆盖(predicate coverage),每一个逻辑表达式中的每一个条件(无法再分解的逻辑表达式)是否都有执行到成立及不成立的情形吗?条件覆盖率成立不表示判断覆盖率一定成立。

条件/判断覆盖率(Condition/decision coverage):需同时满足判断覆盖率和条件覆盖率。

在我们这个实验中并没有要求手算覆盖率,只需要使用工具判断就好了。


IDEA判断覆盖率:

IDEA测试代码覆盖率特别简单!这里我们只需要在test文件夹下面右键,
run “…” as coverage即可。如下图:

运行后就会出现右上方的小块显示代码覆盖率!

使用IDEA节省了我们配环境的时间,哈哈

软构实验知识补充:什么是代码覆盖率相关推荐

  1. (迟到了半个多月的)第一次软构实验总结

    date: 2019-03-09 20:08:00 第一次软构实验 第一次的软构实验本来以为会非常简单,但是没想到坑点那么多.从需要的算法层面来说确实不难,但是细节的处理还是挺麻烦的,感觉和传统的AC ...

  2. 软构实验(二 )博客

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VMb9NQzR-1625031897332)(media/b7c1f747a870edf8b0db7af7453bb90 ...

  3. 视频教程-软考项目管理知识实战(上)-软考

    软考项目管理知识实战(上) 近二十年软件开发.软件设计.需求分析.项目管理.部门管理.公司管理及过程改进等经十五年的需求分析及需求管理工作经验,负责数十个大型项目的需求分析和需求管理工作,涉猎建筑.通 ...

  4. 软构习题课一内容总结

    软构作为一门编程课,竟然还有习题课是我没想到的.第一次上习题课时我们还没有像现在一样为各科期末考试忙得焦头烂额,所以我花了很长时间理解习题一.直到开始做实验一,我发现习题课真的太重要了!!因为习题一中 ...

  5. 科软-信息安全实验3-Rootkit劫持系统调用

    目录 一 前言 二 Talk is cheap, show me the code 三 前期准备 四 效果演示 五 遇到的问题&解决 六 18.04的坑 七 参考资料 八 老师可能的提问 一 ...

  6. 科软-信息安全实验2-netfilter实验

    目录 一 前言 二 Talk is cheap, show me the code 三 前期准备 四 效果演示 五 遇到的问题&解决 六 参考资料 七 老师提供的代码 一 前言 文章不讲解理论 ...

  7. ES6 复习,知识补充

    ES6 知识补充 概念 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了. 它的目标,是使得 JavaScript 语 ...

  8. 谷粒商城之高级篇知识补充

    谷粒商城高级篇之知识补充 前言 本篇主要是完成谷粒商城高级篇开发时,我们需要了解并学习一部分补充的知识,才能更好的完成商城业务. 以后我们将商城任务和额外知识分开来编写,方便商城业务的连贯性. 下面是 ...

  9. Android知识补充(Android学习笔记)

    Android知识补充 ●国际化 所谓的国际化,就是指软件在开发时就应该具备支持多种语言和地区的功能,也就是说开发的软件能同时应对不同国家和地区的用户访问,并针对不同国家和地区的用户,提供相应的.符合 ...

最新文章

  1. python的一些基本概念知识和面试题
  2. 《数据结构》知识点Day_05
  3. C++ 接口(抽象类)
  4. 关于前后端交互的一些基础知识点
  5. 买房应该少出首付,多贷款
  6. 后端:MyBatis缓存知识介绍
  7. 流程图基本图形的含义
  8. java.exe和javaw.exe有什么区别吗?
  9. 对计算机的一点点看法
  10. javaFX学习笔记之 管理Web弹出式窗口
  11. cad怎么画立体图形教学_怎么在CAD中绘制三维立体图
  12. HBuilder表单提交php出现内部服务器错误
  13. arcgis怎么压缩tif文件_怎么把图片文件大小压缩到25k到40k还比较清晰
  14. [索引]引用Balancing bike sharing systems with constraint programming的文章
  15. 兔年伊始谈闲书:三体-乌合之众-百年孤独 和《猫城记》(随笔)
  16. 大整数运算-大数的存储与运算
  17. 金庸--王重阳谈学习、旅游、谈交友等等
  18. 【新手提问导读】提问的艺术_提问的艺术
  19. 美团招聘不要黄泛区及东北人_吃瓜群众愤慨怒怼!
  20. 上班没事做gai这么办

热门文章

  1. c++ SIMD 样例
  2. java基于ssm中小型企业公文流转系统的设计与实现
  3. 利用计算机分析信号,计算机技术在铁路信号中的应用
  4. 微信小程序之停止录音
  5. 【Electron】Electron开发入门(九):添加Flash插件
  6. 转岗数据分析—学习准备篇
  7. 增收不增利的良品铺子,能比三只松鼠更快找到新赛道吗?
  8. 移动app测试用例设计关注点总结(一)
  9. 通过阅读源码来提高js知识
  10. Sql server登录 系统找不到指定文件