• 测试技术
  • 博客
  • 视频
  • 开源
  • 论坛
  • 沙龙
  • 下载
  • 杂志
  • 招聘

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

开发一个基于 JUnit 的存储过程自动化测试的 Eclipse 插件

发布: 2008-5-20 16:17 | 作者: 李嘉涛 张俊青 赵雄伟 | 来源: IBM | 查看: 151次 | 进入领测软件测试网论坛讨论

领测软件测试网 软件测试技术门户p&eB c3HW{:r

软件测试技术门户c9U-im Ir+K8@2Y+y-_ k
软件测试技术门户l*q"[ \+M

6 编写一个 Eclipse 插件软件测试技术门户 v$p7S0W)E O`-}7`B i&f

u1x~Em{ X使用 Eclipse 插件的原因,还得从Eclipse本身说起。自从2001年11月IBM宣布了捐出价值4千万美金的开发软件给开放源码的Eclipse项目,Eclipse便开始向能够进行任何语言开发的IDE集大成者的方向发展。Eclipse是替代 IBM Visual Age for Java 的新一代的 IDE 开发环境,它的目标不仅仅是成为专门的Java 程序的 IDE 环境,根据 Eclipse 体系结构,通过开发插件,它能扩展到任何语言的开发,甚至能成为图片编辑等多媒体工具。更难能可贵的是,Eclipse是一个开放源代码的项目,任何人都可以下载 Eclipse 的源代码,并且在此基础上开发自己的功能插件。可以无限扩展,有着统一的外观、操作和系统资源管理,这正是 Eclipse 的潜力和魅力所在。软件测试技术门户 m%^)u p#U:_d

软件测试技术门户cY(c;q%l+_

除了 Eclipse 平台本身所具有的强大魅力之外,插件易于安装,且操作方便简单也是我们考虑用插件的方式来完成测试用例的自动生成问题的原因之一。另外的一个原因是我们在项目开发过程中使用的是 WSAD,即 WebSphere Application Developer Integration Edition 5.1。WSAD 就是基于 Eclipse2.1.1 平台的,因此可以无缝的将 SPTestSuite 插件集成到项目统一的开发环境中。

)DX0t _W(a:R

,s@] FS1I:b基于以上考虑,我们决定开发一个 Eclipse 插件来解决测试用例自动生成的问题,这个插件就是 SPTestSuite(此插件只适合 Eclipse 2.1.1)。SPTestSuite 插件要完成自动代码生成所需的全部功能,它以向导的方式运行,引导用户完成代码的创建。用户只需

8?q^4rp tq-{
  • 运行此插件;
  • 填写需要测试的存储过程列表,或者从外部选择一个包含存储过程信息的文件;
  • 指定数据库连接信息。
软件测试技术门户 e(\^b-QJxt

SPTestSuite 插件将根据用户选择的存储过程,连接数据库获取相应的存储过程参数,然后依据代码模板自动生成测试用例,并在 workbench 的工作环境中打开。用户需要对生成的代码做一些改动,一般来说,只需要修改存储过程的调用参数即可。如果用户需要定制自己的代码模板,需要在生成代码前对代码模板进行修改。这样就基本上解决了手工完成存储过程测试用例工作量较大、效率较低的问题,并且通过采用代码模板的方式实现了可定制和扩展。软件测试技术门户[3Y+Hd1xzZ9V


&x7q W-nX&rT-N

'p*x;N4~"L4pU

{?|*dm0w H

w-f"x7h3\+fC%k _
回页首
软件测试技术门户vz zb5B r#@;tc
软件测试技术门户 v&[c4R?D d
软件测试技术门户2O5k\$k.[N0BR

7 插件扩展了 JUnit 框架

;h[ { f1{'C#~ 软件测试技术门户Z*M)B4R)TZ-Q,i

为了解决测试效率低下和回归测试的问题,我们选择使用 JUnit 测试框架。通过对 JUnit 测试框架进行扩展,我们可以增加以下特性:

z9X"Ig_q;B.}
  • 使得能把测试结果保存为 XML 文件:
    j,j/hJ1~_writeToFile(String fileName, String time,ArrayList testResultList)软件测试技术门户O"TCC C7m N#^
    XML具有自描述、平台无关性等特点,可以在不同操作系统间进行数据交换。我们选择把测试结果保存为 XML 更重要的就是 XML 文件本身也是一个小的文件数据库,通过简单的 XML 变成即可实现对历次的测试结果的比较分析。
  • 增加了一些验证方法,如:verifyInErrors 可以对输入参数进行严正,避免测试用例本身存在问题。
  • 目前,利用 JUnit 支持的主要方法就可以实现对测试结果的断言,从而得到测试用例的执行结果:
    Assert.assertEquals(…, …);
    		Assert.assertFalse(…);
    		Assert.assertNotNull(…);
    		Assert.assertSame(…);
    		Assert.assertSame(…, …);
    		Assert.fail(…);
    
    软件测试技术门户j!AoG{{6I6Qp!h

i8K&US$A{ j
软件测试技术门户,I.uB7Z%AMzS
软件测试技术门户whSD4l

2tF-r