• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

诊断 Java 代码:单元测试与自动化代码分析协同工作

发布: 2009-4-01 10:40 | 作者: 不详 | 来源: 测试时代采编 | 查看: 32次 | 进入软件测试论坛讨论

领测软件测试网

public void testLookupAndInsert() {
VectorAdapter v = new VectorAdapter();
v.insert("this");
v.insert("is");
v.insert("a");
v.insert("test");
assertEquals("Retrieved and inserted elements don't match",
"a",
v.lookup(2));
}
}

然后我们可以实现我们的适配器以通过这个测试,如下所示:

清单 2. 类 VectorAdapter

import java.util.Vector;

public class VectorAdapter implements Sequence {
private Vector values = new Vector();
private int length = 0;

public void insert(Object o) {
length += 1;
values.addElement(o);
}

public Object lookup(int i) {
return values.elementAt(i);
}
}

interface Sequence {
public void insert(Object o);
public Object lookup(int i);
}

当 Daikon 在这段代码上运行时,它可能推断:对于方法lookup,i总是小于length。Daikon 可能从单元测试中推断出这一点,并向我们的方法报告一条前置条件:i < length。

然后程序员可以检查 Daikon 报告的不变量,从而更好地了解其测试覆盖程序的范围到底怎么样。例如,如果 Daikon 开始推断出大量不想要的不变量,这意味着单元测试只是用不具代表性的可能的程序输入的子集检测了程序。

尽管 Daikon 是用 Java 语言编写的,但它需要用 C++ 编写的前端,这削弱了它原有的可移植性。尽管如此,还是可以在线获得针对许多主要平台的前端构建。此外,Daikon 团队也打算添加其它平台所需要的构建。

(您可以在参考资料一节找到关于 Daikon 的下载信息和更多内容。)

可以检查单元测试覆盖范围的分析工具
分析工具可以帮助程序员构建健壮的单元测试套件。迄今为止,完成这一工作主要有两种方法:

使用静态分析以尝试自动生成单元测试套件 使用静态分析来确定单元测试套件对程序功能的覆盖范围到底怎么样

目前有几种试图自动从代码产生单元测试的免费工具,但大多数担任这项任务的免费工具还处于起步阶段。其中一些比较有希望的是 JUnitDoclet 和 JUB(“JUnit test case Builder”的缩写),可在 SourceForge 上得到它们(参考资料一节提供了它们的链接)。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

42/4<1234>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网