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

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

JBuilder2005单元测试之创建测试用例

发布: 2008-6-10 17:24 | 作者: 网络转载 | 来源: 测试时代编辑采编 | 查看: 49次 | 进入软件测试论坛讨论

领测软件测试网

下面,分别删除testGetValue()和testSign()方法体中的代码,用以下粗体代码替换之:

  代码清单 错误!文档中没有指定样式的文字。添加测试规则后的TestSubsection类

1. …
2. public class TestSubsection extends TestCase
3. {
4.  …
5.  public void testGetValue() {
6.   int d1 = -3,y1 = 3;
7.   int d2 = -2,y2 = 4;
8.   int d3 = 0 ,y3 = 100;
9.   int d4 = 2 ,y4 = 8;
10.  int d5 = 33 ,y5 = 32768;
11.  int d6 = 33 ,y6 = Integer.MAX_VALUE;
12.  assertEquals(y1,subsection.getValue(d1));
13.  assertEquals(y2,subsection.getValue(d2));
14.  assertEquals(y3,subsection.getValue(d3));
15.  assertEquals(y4,subsection.getValue(d4));
16.  assertEquals(y5,subsection.getValue(d5));
17.  assertEquals(y6,subsection.getValue(d6));
18. }
19.
20. public void testSign() {
21.  double d1 = -1.0, d2 = 0.0, d3 = 1.0;
22.  int y1 = 1, y2 = 0, y3 = 1;
23.  assertEquals(y1, subsection.sign(d1));
24.  assertEquals(y1, subsection.sign(d1));
25.  assertEquals(y1, subsection.sign(d1));
26.  }
27. }

  打蛇打七寸,擒贼先擒王,抓Bug还须在那些关键点上下功夫,特殊转换点是最容易出现问题的热点地区,需要给予特别的关注。所以我们为getValue()设置了6个测试点,而为sign()方法设置了3个测试点。

  在工程窗格资源树中找到TestSubsection.java文件,右击在弹出的菜单中选择Run Test using "TestSubsection1",JBuilder利用JBTestRunner测试运行器运行这个测试用例,在信息窗格中出现如下的运行器界面:


JBTestRunner运行器界面

  JBTestRunner窗口左边为3个标签页,它们的作用在下表的说明:

  表 错误!文档中没有指定样式的文字。JBTestRunner窗口标签页说明

标签页图标 说明
 JBuilder2005<STRONG单元测试之创建测试用例(图四) src="https://www.ltesting.net/attachments/2008/06/8_200806101726172hTXW.gif" border=0> 如果测试没有错误,该标签页为默认显示的标签页。形成一棵测试套件->测试用例->测试方法3级的级联树。树中每个节点均有一个状态指示图标。 JBuilder2005单元测试之创建测试用例(图五)表示通过测试,而JBuilder2005单元测试之创建测试用例(图六) 表示未通过测试。点击未通过测试的节点,右边帧列出了错误跟踪迹,通过这个跟踪迹可以找到哪个测试规则(断言方法assertXxx())未通过。
 JBuilder2005单元测试之创建测试用例(图七) 测试错误页,如果发生了测试错误,该页被默认显示。列出所有发生错误的测试,该页是JBuilder2005单元测试之创建测试用例(图四) 标签页的子集。
 JBuilder2005单元测试之创建测试用例(图八) 该标签页中显示出所有输出到控制台的信息,如测试用例中有通过System.out.println()输出信息,则这些信息在此查看。

  当没有发生失败的测试时,测试进度条显示为绿色,否则显示为红色。对于测试用例很少的情况你看不到它的效果,如果成百上千的测试用例一起运行,这个进度条的作用是显而易见了。进度条右边是测试结果统计信息:包括测试方法总数和成功数,统计信息右边是测试所花费的时间。

  右帧是测试失败的引发点,单击链接,JBuilder自动定位到测试用例测试失败的地方,在本例里,JBuilder将定位到代码清单 错误!文档中没有指定样式的文字。添加测试规则后的TestSubsection类的代码的第17行,即:assertEquals(y5, subsection.getValue(d5));所在的行。

  说明测试失败是由这个断言引起的,由于这个断言测试入参大于32时的函数返回值正确性,所以我们就知道程序没有考虑到返回值超过int类型范围的情况。返回到代码清单 错误!文档中没有指定样式的文字。前文分段函数代码中将第13~15行被注释的代码放出来,重新运行测试,你将发现测试全部通过了。

  这也说明,编写一个有效测试用例并非易事,程序路径100%覆盖,完美的测试用例往往很难达到。当然,你可以依照一些经验性的原则,其中最大的一条就是:关注关键点。测试用例编写的技巧,超过了本文的范围,读者可以自行参考相关的书籍。

  提示:

  有时,JBTestRunner右边的帧窗口虽然内容已经超出,但滚动条却没有显示出来,想来应该是JBuilder一个小小的Bug吧。你可以在帧窗口中右击,在弹出的菜单中去除WordWrap设置项,或者手工移动一下左右两帧间的分隔栏,滚动条就会显示出来了。

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

33/3<123

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

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