Emma覆盖率工具研究(一)原创

上一篇 / 下一篇  2009-02-24 22:01:45 / 个人分类:集成测试

            Emma覆盖率工具研究(一)原创

引子
   目前我所负责的测试团队主要以功能测试黑盒测试为主,使用测试需求覆盖率作为测试结果评估的指标。但是随着测试成熟度的日益增长,需求覆盖率已经无法为测试改进提供指导和方向了,因此最近在研究更加合适的覆盖率指标来指引功能测试的改进方向。
测试覆盖率的作用
   测试覆盖率可以提供给我们两个方面的信息:测试覆盖率低的模块 和 重要模块的测试覆盖率。这些数据可以帮助我们快速定位需要更多测试的模块,可以帮助我们了解重要模块的测试情况,以此来衡量我们测试用例的质量乃至测试的质量。这里需要重点关注的是模块的粒度,因为我们需要该数据指导功能测试,所以需要模块具有一定的功能含义,而类覆盖率在测试过程中较容易达成,所以我倾向于使用方法级别的覆盖率数据来指导功能测试。
覆盖率误区:100%覆盖率能说明什么?
   无论哪种粒度的覆盖率数据都无法说明被测对象没有缺陷了,它只能从某种粒度上说明我们已经做了较充分的测试,以此来增强开发人员和测试人员对项目上线的信心。
Emma简介
    EMMA 是一个开源、面向 Java 程序测试覆盖率收集和报告工具。在测试过程中,使用 EMMA 能使收集和报告测试覆盖率的过程更加灵活、简单。它通过对编译后的 Java 字节码文件进行插装,在测试执行过程中收集覆盖率信息,并通过支持多种报表格式对覆盖率结果进行展示。 EMMA 所使用的字节码插装不仅保证 EMMA 不会给源代码带来“脏代码”,还确保 EMMA 摆脱了源代码的束缚,这一特点使 EMMA 应用于功能测试成为了可能。另外初步研究了emma字节码插装的原理,对于加深对class的结构理解,有挺大作用。
Emma工作原理
   EMMA对编译过的class文件作一个叫做插装(instrument)的处理,并生成一个插装信息文件coverage.em,这个文件记录了代码的版本信息,包、类、方法、块、行信息等;被插装过的class文件,在运行时,会触发EMMA中的方法运行,将代码运行的信息记录在JVM中,当JVM关闭时,EMMA将JVM中的代码运行信息输出到外部文件(如coverage.ec),然后用EMMA的生成覆盖率报告功能生成报告。


后续将着重探讨在weblogic服务器上设置emma获取覆盖率数据的过程


TAG:

引用 删除 My灿   /   2012-11-21 10:05:28
为什么没有后续了呢?
引用 删除 My灿   /   2012-11-21 10:04:28
1
滴水成石 引用 删除 lotus   /   2009-03-23 17:56:43
关注
wenfeng0187的个人空间 引用 删除 wenfeng0187   /   2009-02-27 10:27:46
期待后續
 

评分:0

我来说两句

lucksender

lucksender

努力做专业测试

我的栏目

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

我的存档

数据统计

  • 访问量: 4110
  • 日志数: 4
  • 建立时间: 2009-02-22
  • 更新时间: 2009-02-24

RSS订阅

Open Toolbar