测试覆盖率,简单来说就是对测试活动覆盖产品代码的指标进行评估。 测试的目的是确认产品代码如期待的那样动作,也可以认为是产品代码的动作方法的说明文件。 此外,测试覆盖率可以视为产品代码质量的间接指标---之所以可以说是间接指标,是因为测试覆盖率评估的是测试代码的质量,而不是产品代码的质量。 代码覆盖率是白盒测试。 因为测试覆盖率是评价产品代码类内部的指标,而不是评价系统界面和规章。 测试覆盖率尤其用于评估测试代码是否覆盖了产品代码的所有路径
1、安装EclEmma coverage有两种方法。 1、在eclipse中单击工具栏上的help--install new software可显示以下屏幕截图
单击Add,弹出以下内容
在name中输入要安装的软件的名称,然后在location中输入以下URL :
http://update.eclemma.org/
然后,中途下一步就可以了。 安装成功后,eclipse工具栏中将添加一个新图标
如果显示上面的屏幕快照,则表示成功
2、第二种方法更简单
在eclipse中点击工具栏的help-- Eclipse marketplace如下图所示
按照红线所示的操作,安装完成后,eclipse工具栏会显示第一个安装步骤的最后一个屏幕截图图标,表示安装成功。
2、coverage首选要测试的Test测试类,单击鼠标右键,右键菜单中增加一个Coverage as选项,然后选择JUNIT。 此时,测试程序将在JUNIT中运行一次。 如果代码中存在多种情况,则可以多次执行。 合并多次统计的测试码复盖,生成复盖率的统计结果吧。 (Java应用程序也可以直接在coverage as上运行。)
实例在百度中看到了一个很好的例子,在这里借一下吧:
public class hello world { publicstaticvoidmain [ ] args } { new hello world (; intrand=(int ) (Math.random ) ) * 100 ); if(rand%2==0) system.out.println('Hello,world! 0 '; }elsesystem.out.println(Hello,world! 1 '; int result=rand % 2==0? rand rand : rand * rand; system.out.println(result ); }
按照上述coverage使用并运行,可以看到以下屏幕截图
绿:代码已执行
黄色:已执行代码部分
红色:代码从未运行
下面的Coverage窗口显示代码测试的覆盖率。 查看代码时,如果获得随机数,认为if不令人满意,可能令人满意,则需要多次运行该代码,多次获得代码覆盖率。 然后,综合条多次得到的覆盖率,得到这种总代码测试的覆盖率。
(其中包括new HelloWorld ) ); 此行代码用于调用类的默认构造函数。 我想每个类都有默认构造函数,只是没有显示的代码。 如果不在此处写入,代码覆盖率将下降,第一行中的public class HelloWorld绿色也会变为红色。)
统计数字如下
箭头是指多次合并运行后的覆盖率百分比
3、总结1 )、coverage可以测试Java APP,也可以测试JUnit测试类
2 )、测试整个项目的代码测试覆盖率可能会很麻烦。 至少需要执行一次所有代码的测试类,并考虑所有代码的执行路径来确保正确。 (是否有测试整个项目的好方法,至少我还不知道--- ) )
3 )请不要忘记测试异常。 清空指针或执行其他异常后的异常代码也会提高代码测试覆盖率
4 )明确了如果代码测试覆盖率高,就可以保证代码的安全性(最低测试没有错误) )。