单元测试及覆盖率

发表于:2010-9-10 10:56

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  单元测试是对软件基本组成的单元进行测试,如对函数、类等的测试。

  先理解相关概念:

  覆盖率:

  1.语句覆盖:指的是代码中所有语句都被至少执行一遍,常用工具:TrueCoverage等;

  2.判断覆盖:指每个判断分别取真和假各一次来进行测试;

  3.条件覆盖:指程序中每个判断中的每个条件的所有可能取值的全部组合情况至少被执行一次;

  4.路径覆盖:程序中执行到路径数量和所有可能的执行路径的比率;

  桩函数:设计一个与被调用函数相同的低代价函数,去替换被调用函数,来模拟出被调用函数失败的情况,常用工具如HOOK等;

  驱动函数:是测试用例的代码实现函数。

  下面为一个简单的例子,只要三步就ok,原形摘于网络,做了部分简化和修改以便更容易理解:

  1.在Eclipse中配置junit的方法:点击properties--java build path-libraries, 点击Add External

  JARs,把JUNIT加进来就ok。

  2.新建HelloWorld类:

public class HelloWorld {
public String say(){
return "Hello World!";
}
public static void main(String[] args) {
}
}

  3.再建个测试类:

import junit.framework.TestCase;

public class TestHelloWorld extends TestCase {
public void testSay() {
HelloWorld hi = new HelloWorld();
assertEquals("Hello World!", hi.say());
}

public static void main(String[] args) {
junit.textui.TestRunner.run(TestHelloWorld.class);
}
}

  运行TestHelloWorld 中的main就行了,显示如下:

  如果把测试代码的Hello World!改为Hllo World!,则显示如下:

  注:程序中assertEquals()书上称为断言,源代码如下:

staticpublicvoidassertEquals(Stringmessage,Objectexpected,Objectactual)

{
if(expected==null&&actual==null)
return;
if(expected!=null&&expected.equals(actual))
return;
failNotEquals(message,expected,actual);
}

staticpublicvoidassertEquals(Objectexpected,Objectactual){
assertEquals(null,expected,actual);
}
}

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号