Suche senden
Hochladen
Java覆盖信息收集工具比较
•
Als DOC, PDF herunterladen
•
0 gefällt mir
•
553 views
Tao He
Folgen
Melden
Teilen
Melden
Teilen
1 von 6
Jetzt herunterladen
Empfohlen
輸入輸出
輸入輸出
Justin Lin
執行緒與並行API
執行緒與並行API
Justin Lin
9. meta-programming
9. meta-programming
Justin Lin
2, a simple workflow
2, a simple workflow
ted-xu
Testing survey
Testing survey
Tao He
Smart debugger
Smart debugger
Tao He
C语言benchmark覆盖信息收集总结4
C语言benchmark覆盖信息收集总结4
Tao He
Testing survey by_directions
Testing survey by_directions
Tao He
Empfohlen
輸入輸出
輸入輸出
Justin Lin
執行緒與並行API
執行緒與並行API
Justin Lin
9. meta-programming
9. meta-programming
Justin Lin
2, a simple workflow
2, a simple workflow
ted-xu
Testing survey
Testing survey
Tao He
Smart debugger
Smart debugger
Tao He
C语言benchmark覆盖信息收集总结4
C语言benchmark覆盖信息收集总结4
Tao He
Testing survey by_directions
Testing survey by_directions
Tao He
Java 并发编程笔记:01. 并行与并发 —— 概念
Java 并发编程笔记:01. 并行与并发 —— 概念
Tao He
A software fault localization technique based on program mutations
A software fault localization technique based on program mutations
Tao He
Introduction to llvm
Introduction to llvm
Tao He
Mutation testing
Mutation testing
Tao He
Django
Django
Tao He
基于覆盖信息的软件错误定位技术综述
基于覆盖信息的软件错误定位技术综述
Tao He
Testing group’s work on fault localization
Testing group’s work on fault localization
Tao He
Muffler a tool using mutation to facilitate fault localization 2.0
Muffler a tool using mutation to facilitate fault localization 2.0
Tao He
Muffler a tool using mutation to facilitate fault localization 2.3
Muffler a tool using mutation to facilitate fault localization 2.3
Tao He
Semantic Parsing in Bayesian Anti Spam
Semantic Parsing in Bayesian Anti Spam
Tao He
Problems
Problems
Tao He
A survey of software testing
A survey of software testing
Tao He
Cleansing test suites from coincidental correctness to enhance falut localiza...
Cleansing test suites from coincidental correctness to enhance falut localiza...
Tao He
Concrete meta research - how to collect, manage, and read papers?
Concrete meta research - how to collect, manage, and read papers?
Tao He
Weitere ähnliche Inhalte
Mehr von Tao He
Java 并发编程笔记:01. 并行与并发 —— 概念
Java 并发编程笔记:01. 并行与并发 —— 概念
Tao He
A software fault localization technique based on program mutations
A software fault localization technique based on program mutations
Tao He
Introduction to llvm
Introduction to llvm
Tao He
Mutation testing
Mutation testing
Tao He
Django
Django
Tao He
基于覆盖信息的软件错误定位技术综述
基于覆盖信息的软件错误定位技术综述
Tao He
Testing group’s work on fault localization
Testing group’s work on fault localization
Tao He
Muffler a tool using mutation to facilitate fault localization 2.0
Muffler a tool using mutation to facilitate fault localization 2.0
Tao He
Muffler a tool using mutation to facilitate fault localization 2.3
Muffler a tool using mutation to facilitate fault localization 2.3
Tao He
Semantic Parsing in Bayesian Anti Spam
Semantic Parsing in Bayesian Anti Spam
Tao He
Problems
Problems
Tao He
A survey of software testing
A survey of software testing
Tao He
Cleansing test suites from coincidental correctness to enhance falut localiza...
Cleansing test suites from coincidental correctness to enhance falut localiza...
Tao He
Concrete meta research - how to collect, manage, and read papers?
Concrete meta research - how to collect, manage, and read papers?
Tao He
Mehr von Tao He
(14)
Java 并发编程笔记:01. 并行与并发 —— 概念
Java 并发编程笔记:01. 并行与并发 —— 概念
A software fault localization technique based on program mutations
A software fault localization technique based on program mutations
Introduction to llvm
Introduction to llvm
Mutation testing
Mutation testing
Django
Django
基于覆盖信息的软件错误定位技术综述
基于覆盖信息的软件错误定位技术综述
Testing group’s work on fault localization
Testing group’s work on fault localization
Muffler a tool using mutation to facilitate fault localization 2.0
Muffler a tool using mutation to facilitate fault localization 2.0
Muffler a tool using mutation to facilitate fault localization 2.3
Muffler a tool using mutation to facilitate fault localization 2.3
Semantic Parsing in Bayesian Anti Spam
Semantic Parsing in Bayesian Anti Spam
Problems
Problems
A survey of software testing
A survey of software testing
Cleansing test suites from coincidental correctness to enhance falut localiza...
Cleansing test suites from coincidental correctness to enhance falut localiza...
Concrete meta research - how to collect, manage, and read papers?
Concrete meta research - how to collect, manage, and read papers?
Java覆盖信息收集工具比较
1.
Java 覆盖信息收集 工具比较 Java
覆盖信息收集程序通常分为三种: 在源码上装置上程序覆盖信息收集的代码 在字节码上装置上程序覆盖信息收集的字节码 使用特殊的 JVM 动态地收集程序覆盖信息 Σοφία(Sofya) http://sofya.unl.edu/ Σοφία(Sofya)是基于 Java 字节码的程序分析程序。 收集的程序信息 程序轨迹(Trace Sequences) 块命中次数(Block Hits) 覆盖信息(包括 instructions, basic blocks, 'real' blocks, exception handlers, finally blocks and branches) 优缺点 缺点 Σοφία 产生的报告几乎是非格式化的,需要我们编写正则表达式来抽取其中的信息。不 过,Σοφία 是开源项目,可以直接使用它的源码中的对象作为已格式化数据,省去抽 取信息的步骤。(相对于其他产生 XML 报告的系统,仍然比较麻烦。) 生成的报告都是关于字节码的,并且不能在字节码的指令与源代码的代码行间进行映 射。 使用的学习曲线陡峭,开发的学习曲线平坦。 优点 类似 Linux,使用输出输出以及文件作为 pipe and filter 模式的接口。责任分离,源码可
2.
读性好。
可以产生程序轨迹(Trace Sequences),其他的系统还没发现这个信息。 可拓展性好,Semantic event dispatch,Structural event dispatch。很 Hackerdom,非常值 得一玩。 使用方式 生命周期 sofya.graphs.cfg.jCFG 产生控制流和映射文件(control flow and map files)。 sofya.ed.cfInstrumentor 对字节码装置上程序覆盖信息收集的字节码。 sofya.ed.BBTracer 收集程序执行的信息。 对于生成的中间信息,可以使用对应的 Viewer 产生程序员可读的信息: Cobertura http://cobertura.sourceforge.net/ Cobertura 也是一个基于字节码的. 收集的程序信息 程序的覆盖信息比例 代码行的命中次数
3.
优缺点 优点
生成报告的格式美,有 HTML,XML 两种形式,使用简便,非常傻瓜化。 使用 Ant 构建项目,可配置性高。 兼容 Junit 的测试用例。 缺点 Ant 的配置颇为繁琐。 这个系统拓展性好像不是很强,在做二次开发时可能会遇到很多麻烦。 我还没有研究出怎样在 Eclipse 下运行,只会在命令行下运行。 使用的学习曲线平坦,开发的学习曲线陡峭。 使用方式 按照模板和手册改写 build.xml,直接 ant 即可。 需要 build.xml 中有一些几个部分。 备忘:我在 Eclipse 中为 Java 配置了外部库,在 build.xml 中添加了一行配置 Junit.jar 的位置 才 ant 成功。 E:Projectcobertura-1.9.4.1examplesbasic>E:Projectapache-ant-1.8.1binant
4.
EMMA http://emma.sourceforge.net/ 一个较老(也可以说是成熟)Java 代码覆盖分析工具集。 (我只是看了它的 Sample
Reports) 收集的程序信息 一份 XML 报告,包含了所有信息 包数,类数,方法数,文件数,代码行数 类,方法,基本块,代码行的覆盖率 (这份报告中没有具体代码行的覆盖信息,但是 HTML 的报告中有标记,不知道是否能通 过参数配置出来?)
5.
优缺点 优点
支持两种方式获取信息,离线和在线(offline or on the fly)。 输出的格式也比较好用。 缺点 (这份报告中没有具体代码行的覆盖信息,但是 HTML 的报告中有标记,不知道是否
6.
能通过参数配置出来?)
使用的学习曲线平坦,开发的学习曲线陡峭。 使用方法 还没有使用过。 总结 只是弄了今天一天,先总结一些。 Σοφία 初浅感觉如果要做二次开发(例如:开发 Eclipse 插件),使用 Σοφία 来得快一些,我使用 了一次,就大概知道它的工作原理和生命周期。不过它只能处理 Bytecode 不处理 Source Code 就比较遗憾。另外,它可以收集 Trace 信息,这在以后我们拓展 Design Space 比较有帮 助。(我们仅仅在 Bytecode 先做错误定位也何尝不可?) Cobertura 收集到的信息非常全,包括了代码行的运行次数, XML 格式也方便。我以后要是抓覆盖信 息就先想到它。不过,它几乎没有文档,主页有使用指南,开发页面也没有看见文档(大家 找到记得告诉我),要做二次开发估计很难。 EMMA 比较成熟的项目。但是二次开发可能很难,相比 Σοφία 几乎白盒的使用模式, Cobertura 和 EMMA 更像是一种黑盒的工具,配置文件弄好,运行就是了,也不知道它里面做了什么。
Jetzt herunterladen