软件测试工具功能-如何提高软件的质量和可靠性?——软件测试
软件测试是程序的一种执行过程,目的是尽可能发现并改正被测试软件中的错误, 提高软件的可靠性,它是软件生命周期中一项非常重要的非常复杂的工作。在目前的情况下对软件可靠性保证具有极其重要意义的,仍然是软件测试。但如何进行测试,如何提高测试的质量和效率,从而确保软件产品的质量和可靠性,仍是令人深感困惑的问题。本文根据笔者的一些粗浅的体会,简要介绍软件测试的基本过程,以及一些常用的技术手段、测试策略和准则软件测试工具功能,并介绍一个在工作中用到的Rational(现已被IBM收购)自动化软件测试工具Visual Test。
运用这种自动化测试工具可以省去很多手工运行的麻烦,而且准确获得测试数据和结果。通过本文介绍软件测试工具功能,以期使愈来愈多的人在认识到软件测试重要性的同时,能够更进一步了解应如何正确地选择和有效地运用各种各样的测试方法、技术以及自动化测试工具提高软件的质量和可靠性。
软件测试的基本过程
软件测试是一个极为复杂的过程。一个规范化的软件测试过程通常须包括以下基本的测试活动 :①拟定软件测试计划 ;②编制软件测试大纲 ;③设计和生成测试用例 ;④实施测试 ;⑤生成软件问题报告。
实际上,软件测试过程与整个软件开发过程基本上是平行进行的。测试计划早在需求分析阶段即应开始制定,其他相关工作,包括测试大纲的制定、测试数据的生成、测试工具的选择和开发等也应在测试阶段之前进行。充分的准备工作可以有效地克服测试的盲目性,缩短测试周期,提高测试效率,并且起到测试文档与开发文档互查的作用。
此外,软件测试在每个测试周期中,测试工程师将依据预先编制好的测试大纲和准备好的测试用例,对被测软件进行完整的测试。测试与纠错通常是反复交替进行的。
软件测试工具
软件测试的目的是用尽可能少的时间和人力发现并改正软件中潜在的各种故障及缺陷,并能以更快的速度和更低的成本开发出高质量的应用程序,这就使测试人员的工作比以往任何时候都更加困难。在很多项目中,测试人员的所有任务大多是由手动处理的,而实际上有很大一部分重复性强的测试工作是可以独立开来,自动实现的。在大型项目中测试团队和其他团队之间没有足够的合作,无法促进彼此的交流。实施测试自动化可以提高测试工作效率,使用工具的目的只是为了减少部分手工测试,将更多人力资源投入到更有价值的工作中。
一些受软件开发人员欢迎的软件测试工具为软件测试提供了强有力的支持。本文将介绍美国Rational 公司(现已被IBM收购)的著名套装软件Rational Visual Test。它的一个重要特点是可以自动驱动被测程序的运行。并且可以自动记录和重放程序执行过程,从而实现了对测试进行“复查”的自动化。由于测试是一个需要反复进行的过程,常常要数十次甚至数百次地重复。因此,这一特性大大地提高了软件“再测试”(Re-Test)和“回归测试”(Regression)的自动化程度,把测试人员从繁杂的、重复性的手工测试中解脱出来,从而显著地提高软件测试效率。除了这个最基本的自动录放功能外,它还提供了一系列的辅助支持功能,比如被录制的程序执行过程可以被自动转换成具有良好可读性的高级语言程序,从而使这个测试驱动程序可以由测试人员根据测试需要进行必要的修改,甚至完全用手工方式编制。自动记录和分析比较测试的执行结果。
测试实例介绍
接下来以实际工作中的一个测试项目为例,结合Visual Test这个自动测试工具对所要测试的内容进行介绍。为了方便介绍,下文都以VT作为Visual Test的简称,QT作为工具QuickTest Professional的简称。
Visual Test的软件界面,与Visual Stadio相似,所以很容易上手,左面是建立的项目名,右面是代码,最下面是信息输出窗口。
接下来介绍所要测试的软件ispLEVER,它是Lattice公司的CPLD/FPGA集成设计工具。现在所要测试的就是在ispLEVER环境下运行一批FPGA器件的设计例子,产生最后的下载文件(.bit或者.jed),并提取一些例如最大频率,所用资源等参数,将这些参数与之前版本运行后的结果相比较,这样就能分析出当前所测试软件版本的优劣之处。
运行Rational Visual test测试主要分为两步,先运行所有的设计的case,然后提取参数。运行所有case
首先读取runlist文件,runlist是一个包括了所有运行例子的文件名的文件,每一行对应一个例子的文件名,程序逐行读入,参考图1示的代码。
接下来整个代码运行的流程可以表示为:最小化VT窗口-》在桌面上找到ispLEVER的图标并运行-》进入工作目录-》处理一些弹出的窗口信息-》打开需要运行的例子-》清除项目以前运行的信息 -》保存项目-》运行布线-》保存当前的项目-》把运行完的例子复制到统一的备份目录中-》关闭当前运行的项目 -》运行下一个例子 ……,直至运行完所有的测试例子。
以上所有的菜单和窗口操作都是由VT执行代码完成操作。接着测试工具将会按照代码包含的子程序运行。