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

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

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

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

领测软件测试网 软件测试技术门户*X1o9p]}T?)h

软件测试技术门户9F,|8c;{Xw O

-p:Ij\/phd4 如何解决这些问题?

w0C4z:|&bu 软件测试技术门户'Dt ^6`7qA

既然进行存储过程单元测试的原始方式有如此多的问题,那我们该如何改进这种测试方式以解决这些问题呢。下面我们就来分析解决问题的方法。软件测试技术门户)t's"M1nTN HW

  • 测试效率低下的问题软件测试技术门户*jEj2^$^d*I
    为了解决测试效率低下的问题,我们可否使用成熟的自动化测试技术呢。答案是肯定的。目前,针对 Java 代码的单元测试已经有了很多的测试框架,例如JUnit, Cactus, StrutsTestCase 等,也有针对 SQL 测试的 DbUnit。软件测试技术门户6\"aZ"S,J#A j
    JUnit 是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(Regression testing framework)。JUnit 测试是由程序员进行的测试,即白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。测试代码只要继承 TestCase 类,就可以用 JUnit 进行自动测试了。软件测试技术门户 G'Z_ J!wk%V?9R6O"l
    Cactus 是一个基于 JUnit 框架的简单测试框架,用来单元测试服务端 Java代码,我们这里不需要。软件测试技术门户] \;H Y#DpM
    DbUnit 是为数据库驱动的项目提供的一个对 JUnit 的扩展,它针对的是普通的 SQL 语句测试,对我们的存储过程测试并不适用。经过初步的分析,我们决定使用 JUnit
  • 回归测试的问题
    ^0D{"Ka%^AJ1w为了利用 JUnit 带来的高效率,我们首先需要改变被测存储过程的调用方式,即从手工调用,改为使用 JDBC 来调用。这样的话,我们把一个个存储过程的调用写成了 Java 代码,以后需要进行回归测试时,只需要运行这些 Java测试代码就可以了。
    N ]&P]0cjc8W但是直接使用 JUnit,也会是一个痛苦的过程,因为我们必须在每段测试代码中编写连接数据库的代码,也得写调用存储过程时的一大堆参数设置代码,还得写很多 try{} catch{} 代码块。对于存储过程测试来说,这些代码就显得非常累赘了,于是我们得想办法把这些操作封装为一个公用的类,我们只需要在测试代码中提供数据库连接信息、存储过程名字和参数值就可以了,其他的工作由这个公用的类负责处理,这样又能进一步减轻开发人员的工作量。
    ,x g mt[q有了用Java语言编写的基于 JUnit 框架的存储过程测试代码后,回归测试问题也就迎刃而解了。这时,程序员需要的只是运行这个 JUnit 测试类即可。
  • 测试结果的问题软件测试技术门户E {gSH&i9C"[-P
    接下来该解决测试结果的不直观问题和需要手工生成的问题了。手工方式下,我们能够得到的只是黑屏幕上显示的文本结果,我们需要把这些返回信息摘录出来,再形成报告,繁琐而又枯燥。有了 JUnit 测试代码之后,我们就可以直接形成报告了。办法就是将测试结果存储为 XML 文档,配合以 XSL 样式文件,我们可以在浏览器中看到漂亮的测试报告了。而测试结果可以包括存储过程运行的时间、返回的记录数、调用的参数列表或者出错信息等。软件测试技术门户IU&Pl