测试工具一般可分为白盒测试工具、黑盒测试工具、性能测试工具,另外还有用于测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)的工具,这些产品主要是MercuryInteractive(MI)、Segue、IBMRa工ional、Compuware和Empirix等公司的产品,而MI公司的产品占了主流。
白盒测试工具
白盒测试工具一般是针对代码进行测试,比如服装连锁管理软件测试,测试中发现的缺陷可以定位到代码级,根据测试工具原理的不同,又可以分为静态测试工具和动态测试工具。
1.静态测试工具
直接对代码进行分析,不需要运行代码,也不需要对代码编译链接,生成可执行文件。静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等。静态测试工具的代表有:Telelogic公司的Logiscope软件;PR公司的PRQA软件。
2.动态测试工具
动态测试工具与静态测试工具不同,动态测试工具一般采用“插桩”的方式,向代码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。其与静态测试工具最大的不同就是动态测试工具要求被测系统能实际运行。动态测试工具的代表有:Compuware公司的DevPartner软件;Rational公司的Purify系列等。
黑盒测试工具
黑盒测试工具包括功能测试工具和性能测试工具。黑盒测试工具的一般原理是利用脚本的录制(Record)/回放(Playback),模拟用户的操作,然后将被测系统的输出记录下来同预先给定的标准结果比较。黑盒测试工具可以大大减轻黑盒测试的工作量,在迭代开发的过程中,能够很好地进行回归测试。黑盒测试工具的代表有:Rational公司的teamtest、Robot;Compuware公司的QACenter。
性能测试工具
专用于性能测试的工具包括:Radview公司的WebLoad;Microsoft公司的WebS工ress等;针对数据库测试的testBytes;对应用性能进行优化的EcoScope等。MercuryInteractive的LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助用户更快地查找和发现问题。
测试管理工具
测试管理工具用于对测试进行管理。一般而言,测试管理工具对测试计划、测试用例、测试实施进行管理,并且,测试管理工具还包括对缺陷的跟踪管理。测试管理工具的代表有:Rational公司的testManager;Compuware公司的trackRecord;MercuryInteractive公司的testDirector等软件。
测试案例
下面以对一个基于Web的答疑系统的测试为例介绍软件测试方法。
1.背景
商城系统的出现为顾客的选购提供了很大方便,但遗憾的是现在的商城系统没有答疑功能。基于Web的答疑系统就是希望根据商城系统的内容对用户提出的问题给出比较准确答案的一个系统。对此系统测试的目的是帮助开发人员发现程序中的错误,缺陷和没有考虑到的细节,为完善系统提供依据。由系统开发人员自己提出的测试实例会受到自己开发思路的束缚:开发时没有想到的细节,测试实例也难以涉及。特别是即使知道对哪些输入进行测试,我们也难以确定期望的结果。另外我们只是测试少数方法对许多输入的反应。上面提到的测试方法就不适用了,这就需要根据实际问题构造测试框架。
2.测试实例的获取
因为系统开发者难以提供合适的测试实例,可行的方法是通过截取使用者的请求来获取它。我们使用一个中间代理来完成这个工作。对用户端来讲,中间代理就像一个Web服务器,它接受用户的请求并把相关信息返回用户端。对服务器来讲,它又像一个用户,服务器实际接受的是中间代理的请求,中间代理负责记录并转发用户的请求。在用户端,我们让浏览器通过使用代理服务器把请求送给中间代理而不是web服务器,其结构如图10.11所示:用户浏览器→请求中间代理→请求Web服务器、Web服务器→应答中间代理→应答用户浏览器。图10.11所示的中间代理,用一个ServerSoeket对象接受用户浏览器的连接请求,当有连接请求时启动一个线程通过一个Socket插件Socketc接受用户的请求信息,同时建立一个Socket插件Socke工s建立与Web服务器的连接,当收到来自Web服务器的应答后,把请求信息和应答信息记录到数据库中,并把应答信息通过Socketc转发给浏览器。
3.回归测试
比如服装连锁管理软件测试,当对系统修改完善后,需要对系统进行回归测试以检测修改后的效果,检测的方法是把记录在数据库中的请求通过HttP逐条送给web服务器并记录Web服务器的返回结果,然后和原来系统的返回结果比较。具体实现可以使用一个Socke工对象建立和Web服务器的连接,通过此接口把记录在数据库中的信息逐条地送往web服务器,返回的结果记录在数据库中。根据不同的分析目的,在数据库中筛选记录并把相关的信息写入一个文件中生成回归测试报告。
4.结论
以上的测试任务可以采用相关工具去完成。Junit和Cactus是测试Java程序的有效工具。当然,由于它建立在实际输出和期望输出比较的基础上,所以在实际使用中也是有局限的。由于每一个测试实例需要编写一个测试方法,使得测试实例的增加和修改都需要通过修改程序实现,这增加了测试的复杂性和管理难度。脚本化的方法在一定程度上简化了测试的过程,但也是针对测试实例编写脚本测试方法,也需要通过修改脚本增加和修改测试实例。在基于Web的答疑系统中,采用把测试实例记录在数据库中的方法,对特定的问题简化了测试过程。同时,针对要测试程序编写测试方法,而把测试实例记录在数据库中可以简化测试程序的编写和管理。有效地完成以上测试任务。
本章小结
本章首先介绍了几种最常用的软件测试方法和测试类型,包括黑盒测试,白盒测试,基于风险的测试和基于模型的测试,BV工测试等。对每种测试方法和测试类型都做了概念上的阐述并且对各个测试方法的特点做了简洁的描述。并且对当前比较实用的软件测试技术进行了比较详细的介绍,最后列出了常用的一些软件测试工具和测试例子,以便读者更好地掌握服装连锁管理软件此类项目测试常用的软件测试工具。
文章来源:秘奥软件网,中小企业信息化领跑者!全国咨询热线:400-9908-527_www.misall.com
Copyright @ 2007 MISALL Corporation. All Rights Reserved. All Powered By 粤ICP备07050206号
地址:广州天河区大观南路26号长盛商务大厦B713、715 电话:020-28269517