java程序测试技术与工具及基于web的应用

java程序测试技术与工具及基于web的应用

ID:31841217

大小:100.50 KB

页数:5页

时间:2019-01-20

java程序测试技术与工具及基于web的应用_第1页
java程序测试技术与工具及基于web的应用_第2页
java程序测试技术与工具及基于web的应用_第3页
java程序测试技术与工具及基于web的应用_第4页
java程序测试技术与工具及基于web的应用_第5页
资源描述:

《java程序测试技术与工具及基于web的应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JAVA程序测试技术与工具及基于WEB的应用JAVAProgramTestingTechniquesandToolsandTheirWEBBasedApplication黄德生*李进**刘利东****太原师范学院计算机系**华北工学院一系***清华大学计算机科学与技术系本文讨论了JAVA程序的软件测试工具Junit及Cactus的结构组成及使用方法,研究了利用IAVA对测试实例脚本化的方法,并对它们的适用性进行了评述;阐述了基于WEB的答疑系统的测试方法。关键词:软件测试JunitCactusIAVAJAVA1引言软件测试是软件开发过程中最复杂的部分之一,它不

2、但耗时长、费用高,并且不能保证测试过程可以发现程序中所有的错误。由于测试过程的复杂性,没有任何一种测试方法或工具能够适应所有软件系统的测试,不同的程序设计语言由于其语义和语法的不同,测试的方法也有不同。1995年SUN公司正式发布JAVA语言,由于它在网络上的优势使得它逐渐成为Internet上最受欢迎的编程语言之一,以它为基础的Servlet是一种开发Web应用的理想构架。本文首先介绍了两个JAVA程序测试工具Junit和Cactus,并对用IAVA实现脚本化测试做了综述,分析了它们的适用性。最后探讨基于Web应用的测试方法。1.1JunitJAVA是面向对

3、象的语言,容易想到的测试方法是编写一个程序来实例化要测试的类,调用其中的方法,通过比较其实际输出及期望的输出来测试类是否满足设计要求。由于类的私有变量和方法不允许类以外的方法访问,所以这种方法无法对私有方法进行测试,同时,如果类中有私有变量,我们也无法得到方法被调用之后对象的全部状态信息。尽管如此,由于在许多情况下我们并不关心私有方法和对象的状态,只关心公共方法运行后的输出结果,因此这种方法仍是一种有效的方法。Junit[1—2]就是基于这种方法的一个测试框架,它是由ErichGamma和KentBeck开发的开放源代码软件。Junit的主要类和接口有:(1)

4、类Assert:Assert类用于确定方法的输出结果和期望的输出结果是否一致。(2)接口Test:此接口主要提供了publicvoidrun(TestResult result)方法,它在类TestCase、TestSuit实现。run(TestResultresult)用于执行一个测试并把结果收集到TestResult对象result中。(3)类Testsuit:一个TestSuit是一些测试的组合。它实现了接口Test。它提供了两个将测试对象加入到Testsuite的方法AddTest()和addTestsuite()。(4)类TestResult:收集测

5、试失败和错误的结果。(5)类TestCase:TestCase继承了Assert并实现了Test接口,是我们编写测试类的模板。(6)其他类和接口参阅[2]。1.2Junit的框架结构Junit是一个JAVA程序测试框架,程序员利用这个框架编写实际的测试。它把程序员的测试想法具体化,生成一个测试对象,通过它的运行达到测试的目的。所有的测试过程是相同的:构造测试需要作用的对象(这些对象我们称为固定部件);运行代码操作固定部件并检测结果;清除固定部件。测试过程的相同性为模板化测试提供了条件。Junit正是使用模板的方法使得程序员可以分别考虑固定部件和测试代码的编写。

6、它提供了一个类TestCase,通过继承此类并覆盖Setup()、runTest()和tearDown()分别实现测试的三个步骤,测试方法run()依次调用它们。Junit通过捕获不同的例外区分错误类型,并把错误信息加入到TestResult中。第一个catch语句捕获由Assret方法抛出的例外,把失败信息加入到TestResult中的Vector对象TestFailure中。第二个catch语句捕获其他例外,把错误信息被记录Vector对象TestError中。例外AssertionFailedError是由Assert方法抛出的。以下是一个简单的Asse

7、rt方法的定义:protectedvoidassert(booleancondition)if(!condition)thrownewAssertionFailedError();为每一个测试实例都构造一个子类的方法会产生大量的类,使得编写测试代码和管理测试的难度都很大。为此,Junit提供了两种用同一类中实现多个测试方法机制。静态方法:利用JAVA提供的匿名内部类的方法。利用匿名内部类,我们可以使一个类有不同的逻辑表现。这种方法可以使同一个类不同对象的runTest()不同,因此可以用一个类定义多个测试对象。每个对象运行自己的runTest()。动态方法:动

8、态方法利用JAVA镜像API[3]动态

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。