学习内容:
关于代码覆盖率的相关知识与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节省了我们配环境的时间,哈哈