




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件测试方法技术的研究与对比毕业论文目 录1.绪论11.1论文的研究背景及意义11.2论文的主要研究工作及成果11.3论文的组织结构22.软件测试技术的概论32.1软件测试的定义与目的32.2软件测试的过程32.3软件测试的分类及主要方法42.3.1按测试过程划分42.3.2按工作状态划分52.3.3按测试用例设计方法划分62.3.4按测试目的划分83自动化测试技术基础93.1自动化测试概念93.1.1自动化测试93.1.2自动化测试的优点93.1.3自动化测试的局限性113.2自动化测试的适用范围124.主流自动化测试工具简介154.1 MI(Mercury Interactive)公司的测试软件154.1.1管理工具164.1.2测试工具164.2 Rational公司的测试软件174.2.1管理工具174.2.2测试工具194.3 Compuware公司的测试软件204.3.1管理工具214.3.2测试工具225.自动化功能测试工具的分析比较与总结235.1测试环境和对象235.2工具功能模块详细划分255.3测试步骤285.4 GUI对象识别295.5脚本执行与被测程序响应的同步问题325.6测试信息收集335.7结合测试管理工具335.8比较总结346.测试管理工具的分析与比较356.1工具特点356.2测试项目376.3测试人员管理386.4测试计划396.5比较总结427.总结语44参考文献45附录1外文译文47附录2外文原文54致 谢63-II-软件测试技术方法的比较与分析1.绪论1.1论文的研究背景及意义近几年,随着软件规模不断扩大,软件复杂度不断增加,客户要求不断提高,如何保证软件质量,提高软件可靠性也越来越受到各研究机构、相关企业的普遍关注,同时成为软件开发机构特别关注的方向。目前,许多能有效提高软件质量的质量保证技术相继问世,例如,几乎所有的大型软件开发机构都结合自身软件开发实际和经验制定了相关的质量标准来规范企业内部的软件开发过程,有些机构在这两年陆续成立了与软件开发相独立的软件测试中心来保证开发出来的软件可用,在开发过程中增加了许多环节(如软件配置管理、阶段性测试和评审)用来保证开发出来的软件具有高可靠性。软件测试技术作为保障软件质量最直接、最有效的手段之一也成为重要的研究热点,但是由于软件本身的复杂性和不确定性,软件测试技术始终具有极大的难度。深入研究软件测试技术方法,提高软件可靠性,已经成为国内外软件行业和相关机构重要的研究方向1。正确选择和有效地运用各种测试方法、技术和工具,对提高软件工程的应用水平和提高软件产品的质量与可靠性至关重要。而在软件测试中使用优秀的测试管理工具不但可以大大减少测试过程中出现错误的可能性,还可以极大的提高测试的效率,加快测试进程。1.2论文的主要研究工作及成果论文主要对软件测试、测试技术(工具、方法)、自动化测试以及测试管理技术(工具、方法)进行理论阐述和综合论述;然后进行综合分析、比较、总结。通过查阅文献资料和对主流工具软件和相关技术的深入学习可完成软件测试技术方法的比较与分析研究内容。在这个论文研究过程中,可以学会正确选择和有效地运用各种测试方法、技术和工具。1.3论文的组织结构论文的组织结构如图1.1所示:3.自动化测试技术基础1.绪论2.软件测试技术概述4.主流自动化测试工具简介6.测试管理工具分析与比较5.自动化功能测试工具分析与比较7.结束语图1.1 论文的组织结构2.软件测试技术的概论2.1软件测试的定义与目的软件测试就是使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验软件产品是否满足规定的需求2。简单地说,软件测试过程就是制造条件,促使错误发生的过程。软件测试的目的是3:(1)测试的最终目的是为了避免错误的发生,确保应用程序能够正常高效的运行;(2)好的测试用例在于发现至今未发现的错误;(3)成功的测试是发现了至今未发现的错误的测试;(4)好的测试工程师应该做到不仅发现问题,还能够帮助开发人员分析问题。2.2软件测试的过程软件测试是一个贯穿整个软件生命周期的活动,那种等待整个系统开发完毕,再对其进行测试的想法是错误的,把测试放到软件开发的最后是很危险的,因为它很容易导致整个软件系统无法集成。另外,对软件的测试并不仅限于软件程序的本身,因为错误并不一定是代码引起的。很有可能是软件需求、软件系统的详细设计等阶段引起的。错误在初期也许只是范围很小的隐藏问题,但由于软件开发的各阶段的连续性,会使错误逐步扩展,如果早期的开发中出现的错误不能排除,将带到设计、编码、测试等各阶段,影响逐步扩大。所以对软件的测试还应该包括与软件有关的所有的文档。一个典型的软件测试过程如下图:图2.1 典型的软件测试过程一个软件的测试过程是一个不断回归的过程。旧的错误的修改可能会引起新的错误的出现,所以每修改一个新的错误,都要针对系统再作一次测试,直到没有新的错误出现为止,这是一个很繁琐的过程。2.3软件测试的分类及主要方法针对不同规模、不同类型的软件,以及软件开发的不同阶段,所用的测试方法各异,下面我们就主要针对上面的几种情况对软件测试做一个简单的分类。2.3.1按测试过程划分我们知道对于软件开发商来说,比较大的软件系统都是由许多人协作开发的,一般都是把一个大的软件系统分割成不同的功能模块,然后再将这些模块分给开发团中的每个人去完成,在开发的过程中针对每个模块的完成情况,边开发、边测试、边集成,然后各个模块集成的完整的系统还要进行测试,当系统交付用户使用后,还要对系统进行维护、升级,这里面也伴随着测试。根据上面的过程,我们按软件开发过程的可以将软件测试划分为下面五个步骤,它们的关系如图2.2:图2.2 软件测试步骤单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。一个软件单元的正确性是相对于该单元的规约而言的。因此,单元测试以被测试单位的规约为基准。单元测试的主要方法有控制流测试、数据流测试、排错测试、分域测试等等3-5。集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。它根据集成测试计划,一边将模块或其他软件单位组合成越来越大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。集成测试的策略主要有自顶向下和自底向上两种3-5。系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。因此,系统测试应该按照测试计划进行,其输入、输出和其他动态运行行为应该与软件规约进行对比。软件系统测试方法很多,主要有功能测试、性能测试、随机测试等等3-5。验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集。所不同的是,验收测试常常有软件系统的购买者代表在现场,甚至是在软件安装使用的现场。这是软件在投入使用之前的最后测试。回归测试是在软件维护阶段对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。这里修改的正确性有两重含义:一是所作的修改达到了预定目的,如错误得到改正,能够适应新的运行环境等等;二是不影响软件的其他功能的正确性1。2.3.2按工作状态划分软件测试是一个对测试经验、测试计划、测试环境和测试工具依赖性非常强的工作,按工作状态分为静态测试和动态测试两个阶段6。静态测试主要是针对所有文档资料、编程规范、数据定义、控制和数据使用、代码与需求的一致性、代码与设计的一致性等方面的分析,其对测试经验和测试计划的依赖性极强。静态测试是在不需运行软件系统的情况下,对系统进行的测试。其采用的方法主要有6:(1)文档资料浏览,达到正确的理解,并对任何改变具有统一的认知;(2)讨论决定,对文档资料进行讨论,并作出决定,如:做什么、不做什么、如何做等;(3)检查,根据规范和定义,找出可能存在的问题,如:市场和商业策略、系统需求和系统设计、程序代码、测试计划、测试设计、测试案例、测试结果、用户手册、培训教材等;(4)利用工具对程序代码进行静态分析,如:程序复杂度、系统结构、控制流程、数据流程等。动态测试是被测系统在运行当中,根据其动态的行为进行的测试。根据测试规模,可分为:单元测试、集成测试、系统测试及应用测试等几个阶段。2.3.3按测试用例设计方法划分软件测试的方法和技术是多种多样的,按测试用例设计方法,可分为黑盒测试和白盒测试,并且黑盒测试和白盒测试还是目前通用的测试技术 2,7-8。黑盒测试着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行的测试。黑盒测试也称功能测试、数据驱动测试或基于规格说明的测试,它在已知产品应具有的功能的条件下,通过测试来检测每个功能是否都能正常使用。在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试是以用户的观点,从输入数据与输出数据的对应关系出发进行测试的,它不涉及到程序的内部结构。黑盒测试注重于测试软件的功能需求,主要试图发现软件中的功能错误、界面错误、数据结构或外部数据库访问错误、性能错误、初始化和终止错误等。白盒测试是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量。白盒测试也称结构测试、逻辑驱动测试或基于程序本身的测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不涉及它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。白盒测试需要全面了解程序内部逻辑结构、对所有逻辑路径进行测试。白盒测试是穷举路径测试,在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。黑盒测试与白盒测试的比较如下表2.1。表2.1 黑盒测试与白盒测试的比较黑盒测试白盒测试测试依据用户能看到的规格说明,针对功能进行测试程序的内部结构优点能站在用户立场上进行测试能够对程序内部的特定部位进行覆盖测试缺点不能测试程序内部特定部位。如果规格说明有误,则无法发现无法检验程序的外特性,无法对未实现规格说明的程序内部欠缺部分进行测试缺点来源基于程序所有功能得到说明的基础之上基于所有的需求得到实现的基础之上举例等价类划分边值分析因果图语句覆盖,分支覆盖条件覆盖,判定/条件覆盖,路径覆盖2.3.4按测试目的划分对于一个软件系统,衡量它的好坏有两个最重要的指标,一是它的功能是否符合要求,二是它的性能是否符合要求。那么针对这两个指标,我们可以将软件测试分为:功能测试和性能测试两个部分2。功能测试:针对软件的功能测试,目的是为了验证软件的功能是否符合软件需求规格说明的要求,找出软件不符合用户需求的地方。功能测试要尽量测试到软件的每一个功能单元,找出软件中的缺陷,确保软件的每一个部分都能正常、正确的工作。性能测试:就是用来测试软件在系统中的运行性能的。性能测试可以发生在各个测试阶段中,即使是在单元层,一个单独模块的性能也可以使用白盒测试来进行评估,然而,只有当整个系统的所有成分都集成到一起之后,才能检查一个系统的真正性能。性能测试经常和压力测试一起进行,而且常常需要硬件和软件测试设备,这就是说,常常有必要的在一种苛刻的环境中衡量资源的使用(比如,处理器周期)。外部的测试设备可以监测测试执行,当出现情况(如中断)时记录下来。通过对系统的检测,测试者可以发现导致效率降低和系统故障的原因。3自动化测试技术基础3.1自动化测试概念随着软件系统的规模越来越大,整个系统的复杂性也越来越大,那么单纯的手工测试已经不适合这种大系统的测试了。首先手工测试的效率低下,其次有些测试是手工测试所无法完成的。为了解决手工测试效率低下和手工测试不能解决的一些测试等问题,自动化测试就应运而生了。软件自动化测试就是执行某种程序设计语言编制的自动测试程序,控制被测软件的执行,模拟手动测试步骤,完成全自动或半自动测试。其目的在于缩短测试周期,增强对软件性能方面的测试能力等,从而达到保证软件质量并使软件能够提前上线9。3.1.1自动化测试自动化测试就是希望能够通过自动化测试工具或其他手段,按照测试工程师的预定计划进行自动的测试,目的是减轻手工测试的劳动量,从而达到提高软件质量的目的。自动化测试的目的在于发现老缺陷;而手工测试的目的在于发现新缺陷。测试自动化涉及到测试流程、测试体系、自动化化编译、持续集成、自动发布测试系统以及自动化测试等方面整合。也就是说要让测试能够自动化,不仅是技术、工具的问题,更是一个公司和组织的文化问题。首先公司从资金、管理上支持您,其次要有专门的测试团队去建立适合自动化测试的测试流程、测试体系;其次就是把原代码从受控库中取出、编译、集成、发布可运行系统、进行自动化的单元测试和自动化的功能测试的过程9。3.1.2自动化测试的优点当正确实施软件自动化测试并严格遵守制定的测试过程时,自动化测试可带来若干好处。假定对于给定的企业需求,测试工程师必须评估潜在的好处是否符合所要求的改进标准,在项目实施自动化测试是否仍然是合适的10-11。(1)提高测试效率一般来说,软件产品的发布周期很短,而在测试期间是每天都可能要发布一个版本供测试人员测试,一个系统的功能点有几千个上万个,手工测试是一个劳动密集型的工作,并且容易出错。引入自动化测试能够用更有效、可重复的自动化测试环境代替繁琐的手工测试活动,而且能在更少的时间内完成更多的测试工作,从而提高了测试工程师的工作效率。(2)令软件新版本进行回归测试的开销最小产品发现错误以后的改动,代码变了,但要求的功能并没有变,所以测试用例也不必改变,自动化测试就可以很方便地进行回归测试,另外,对于产品型的软件,每次发布一个新的版本,其中大部分功能和界面都和上一个版本相似或完全相同,这部分功能特别适合于自动化测试,从而可以让测试达到测试每个特征的需求。(3)可以完成一些手工测试不能或难以完成的测试对于一些非功能性方面的测试,如:压力测试、并发测试、大数据量测试、崩溃性测试等,这些测试用手工测试是很难,甚至是不可能完成的。但自动化测试则能方便地执行这些测试,比如并发测试,使用自动化测试工具就可以模拟来自多方的并发操作了。(4)具有一致性和可重复性由于每次自动化测试运行的脚本是相同的,所以可以进行重复的测试,使得每次执行的测试具有一致性,手工测试则很难做到这点。(5)更好地利用资源将繁琐的测试任务自动化,可以使测试人员解脱出来,将精力更多地投入到测试案例的设计和必要的手工测试当中。并且,理想的自动化测试能够按计划完全自动地运行,使得完全可以利用周末和晚上的时间执行自动测试。(6)解决测试与开发之间的矛盾通常在开发的末期,进入集成测试阶段,由于每发布一个版本的初期,测试系统的错误比较少,这时开发人员有等待测试人员测出错误的时间。事实上在迭代周期很短的开发模式中,存在更多的矛盾,但自动化测试可以解决其中的主要矛盾。(7)增加软件信任度每一个测试人员都有自己特殊的经历和技术背景,有自己的一些操作习惯和先入为主的观念,这就导致不是所有的测试都是可信的,而且有时测试会把一些新的错误带入软件产品之中。自动化测试则会在很大程度上避免这些问题。一旦得知软件通过强有力的自动测试后,软件发布时对其的信任度也高(假设已做过很好的测试)。总而言之,测试自动化的优点在于通过较少的开销就可以获得更彻底的测试能力,以及提高产品的质量。3.1.3自动化测试的局限性当然,软件自动化测试也并非万能,人们对软件自动化测试的理解也存在许多误区,认为自动化测试能完成一切工作,从测试计划到测试执行,都不需要人工干预。其实软件自动化测试所完成的测试功能也是有限的。以下几点是自动化测试的不足所在10-11:(1)不能完全取代手工测试。软件自动化测试不可能也没必要取代手工测试来完成所有的测试任务。因为有些测试使用手工测试比自动化测试要简单,这时将测试自动化的开销就比较大了。如以下一些情况:测试很少运行。对于很少运行的测试任务,例如一年只需测试一次,对测试自动化则是一种浪费。软件不稳定。如果在某段时间内软件的界面和功能更新频繁,那么修改相应的自动化测试点开销较大,因此只有当软件达到相对的稳定,没有界面性严重错误和中断错误才适合开始自动化测试。涉及感观方面的测试。例如界面的美观、声音的体验、易用性的测试等,这类测试很容易通过人来验证,自动化测试反而难以执行。涉及物理交互的测试。自动化测试很难完成与物理设备的交互,比如刷卡的测试等。(2)手工测试比软件自动化测试发现的缺陷更多自动化测试的最大特点在于适合重复测试。一般情况下,以前运行过的测试再次用来检查软件的新版本往往暴露的缺陷要少得多。测试专家 JamesBach总结出,85%的缺陷靠手工发现,而自动化测试只能发现15%的缺陷。自动化测试能够很好的发现老缺陷。(3)软件自动化测试不能提高有效性自动化测试并不会比手工运行相同测试更有效,它可以提高测试效率,但也可能对测试的进展起反作用。(4)软件自动化测试可能会制约软件开发应用软件的变化对自动化测试的影响要比手工测试更大一些,软件的部分改变有可能使自动化测试软件崩溃。而设计和实施自动化测试要比手工测试开销大,并需要维护,所以对自动化测试影响较大的软件修改可能受到限制。(5)软件自动化测试本身没有想象力自动化测试是通过软件进行,测试程序只是按照运行机制执行。手工测试时可以直接判断结果的正确性,而自动测试许多情况下测试结果还需要人工干预判断。手工测试可以处理意外事件网络连接中断,此时必须重新建立连接。手工测试时可以及时处理该意外,而自动化测试时该意外事件一般会导致测试的中止。总的说来,软件自动化测试的优点和收益是显而易见的,但它同时也并非万能,只有对其进行合理的设计和顺利的实施才能从中获益。3.2自动化测试的适用范围Peer给出了对各类型测试进行自动化的参考12。表3.1 各类型测试进行自动化技术描述备注单元测试/组件测试该测试工作通常是开发人员的职责,很多不同的方法能够被使用,比如“测试先行”,它是一个测试框架,开发人员在编写代码前编写不同的单元测试。当测试通过是,代码也被完成了。通过使用正式的自动化单元测试,不仅能够帮助开发人员产生更加稳定的代码而且能够使软件的整体质量更加的好。冒烟测试/构建版本测试冒烟测试是一般验证被测试系统的功能性测试用例的集合,冒烟测试背后的思想是确保基础是可以工作的,以便更大的测试工作能够开始在构建过程能够确保构建已经为测试准备好时,冒烟测试通常是自动化的运行功能/集成测试这里测试的工作关注在验证的不同的组件之间的集成上。这些类型的测试通常是被测试的更加复杂测试的基础,大量的边缘测试被合并以制造出不同的错误处理测试。系统测试/用例测试这种测试是通过执行用户场景模拟真实用户使用系统以证明系统具有被期望的功能的测试。不需要使用自动化的测试。安装测试、安全性测试通常是由手工完成,因此系统的环境不会是恒定不变的。回归测试回归测试实际上是重复已经存在的测试。通常如果是手工完成的话,这种测试只在项目的结尾执行少数几次。这里完全有潜力完成自动化的测试。能够在每次构件完成后执行自动化的回归测试,以验证被测试系统的改变是否影响了系统的其他功能。性能测试性能测试包括以下不同测试形式:-负载测试-压力测试-并发测试如果没有自动化的测试工具,将无法执行通过模拟用户的负载实现的高密集度的性能测试。可见重复性比较高的回归测试,以及手工测试难以完成的性能测试是自动化测试最有潜力应用和最能体现价值的地方,而早期的单元测试中如果引入自动化,也将大大提高开发出的代码质量。当决定在一个产品的测试过程中实现自动化测试的时候,必须将自动化测试手工测试结合起来使用。目的就是用较少的开销,获得彻底的测试,并提高商品的质量。下表对何时使用自动化测试和何时使用手工测试进行了一个概要的总结。表3.2 何时使用自动化测试和手工测试使用自动化测试使用手工测试项目没有严格的时间压力具有良好定义的测试策略和测试计划 知道要测试什么 知道什么时候测试对于自动化测试拥有一个能够被识别的测试框架和侯选者能够确保多个测试运行的构建策略多平台环境需要被测试拥有运行测试的硬件拥有关注在自动化过程上的资源被测试系统是可自动化测试的没有适当的测试过程没有一个测试什么,什么时候测试的清晰的蓝图刚加入项目组,并且还不是完全的理解方案的功能性和或者设计项目成员或者整个项目在时间的压力下在团队中没有资源或者具有自动化测试技能的人没有硬件4.主流自动化测试工具简介自动化测试需要不同类型的自动化测试工具进行支持。目前,软件市场上已经有很多优秀的自动化测试工具,它们功能强大,有针对功能的,也有针对性能的,有执行白盒测试的测试工具也有执行黑盒的测试工具。主流的商业化的自动化测试工具软件开发公司是:Mercury Interactive公司、IBM Rational公司和Compuware公司。三个公司都开发了一整套自动化测试工具,这些自动化测试工具都经过无数的实际运用,都是非常优秀的自动化测试工具。一个完整地自动化软件测试工具,应该包括测试管理工具、功能测试工具、性能测试工具三个部分。下面就目前Windows操作系统下的主流的自动化测试工具作一个整体的介绍。4.1 MI(Mercury Interactive)公司的测试软件Mercury Interactive公司是商业技术优化的业界领导者。它成立于1989年,目前,和全球超过35个国家都有贸易往来。全球100强公司中有将近90%的公司依靠MI公司的软件和服务来实施他们的商业技术优化策略。这使得MI公司成为世界上最大的、成长最快的企业级软件公司。该公司开发的自动化测试工具以其功能强大、完善的售后服务和支持,使其成为了自动化测试软件开发领域的领先者。MI主要测试软件的构成如下图13:图4.1 MI主要测试软件的构成下面对上图的工具作一个概括的介绍。4.1.1管理工具TestDirector是MI自动化测试工具集中的测试管理工具,它是业界第一个基于WEB的测试管理系统。使用TD及其配套的功能和性能等测试工具,可以组织全球范围的测试。TestDirector通过在一个整体的应用系统中提供并且集成了测试需求管理、测试计划、测试日程控制及测试执行和错误跟踪等功能,通过使用这些功能可以使测试专业化,提高测试的效率,加速测试的过程。TestDirector主要有三大功能模块构成:(1)Site Administrator该模块的主要功能是:创建测试域,创建和维护测试项目,管理测试人员,查看测试项目的访问情况,配置注册码。(2)Customer在该功能模块中,TD用户(即测试人员或其他与测试相关的人员)可以订制和修改用户的一些信息。包括:修改用户信息、创建新的用户类型和用户组类型,订制模块的访问权限,订制项目实体和列表,配置邮件,调整工作流等。(3)TestManager这个模块是TestDirector的主要功能的所在。它主要集成了需求指定、建立测试计划、执行测试、缺陷跟踪四个功能模块。4.1.2测试工具MI的测试工具主要有功能测试工具WinRunner和性能测试工具LoadRunner,下面对这两个工具作一个概括的介绍。(1)WinRunner针对Windows应用程序的一个企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。它通过自动录制、检测和回放用户的应用操作,来发现程序中的错误。可以有效地帮助测试人员对复杂的企业级应用软件的不同发布版本进行测试,提高测试人员的工作效率和质量。确保跨平台的、复杂的企业级应用软件无故障发布和长期稳定的运行。(2)LoadRunner黑盒性能测试工具。4.2 Rational公司的测试软件Rational公司是软件业中领先的应用开发工具供应商,提供基于业界开放标准的工具、最佳方案和服务,用于开发商业应用和构建软件产品和系统。2002年Rational公司被IBM公司收购。对于Rational公司的产品,我们比较熟悉的是它的建模工具,它的测试工具同它的建模工具一样优秀。Rational的测试工具Rational Suite TestStudio的构成如下图14:图4.2 Rational Suite TestStudio的构成4.2.1管理工具Rational Suite TestStudio测试工具集中的管理工具主要有五个子工具组成,它们结合起来,完成一个完整的测试管理工具的功能。下面就上面各个管理工具的功能作一个概括的介绍。(1)Rational TestManagerTestManager 处于测试管理工具的核心位置。它是一个开放的可扩展的架构,将其它的工具和测试数据联合为一个整体。在TestManager中主要可以完成建立测试计划、安排测试、执行测试、查看测试结果和分析测试结果等工作。(2)Rational AdministratorRational Administrator集中了测试项目的管理功能,可以创建测试项目,管理相关的人员,包括测试人员和有关的开发人员。它的详细功能如下:创建一个Rational测试项目,配置项目的有关信息。连接某个测试项目。通过网络操作远程的测试项目。删除一个测试项目。创建和管理测试人员和用户组。创建和管理包含RequisitePro项目和Rose项目的测试项目。控制一个Rational测试项目的测试数据的安全权限。(3)Rational RequisiteProRational RequisitePro是一个需求管理的工具,它可帮助项目团队控制开发的进度。它通过将Microsoft Word和一个需求仓库连接来组织测试需求,它还提供了跟踪功能,并且在整个项目的生命周期内可以随时改变需求。利用RequisitePro你可以完成如下工作:定制需求数据库和管理多种不同类型的测试。指定优先级,排序和安排需求。控制特征变形,确保软件质量。跟踪产生的变化,包括这些改变是谁做出的、什么时候、为什么。(4)Rational ClearQuest在ClearQuest中进行缺陷的跟踪和管理。通过ClearQuest可以将测试中发现的缺陷直接发送给相应的测试人员,集中管理某个测试项目的缺陷,并跟踪缺陷的修复情况。(5)Rational SoDA文档生成工具,测试需求、测试结果、缺陷报告等测试信息可以通过SoDA这个工具生成详细的报表。4.2.2测试工具Rational Suite TestStudio测试工具集中的测试工具比较全面,既有功能和性能的测试工具,也有代码级的黑盒和白盒测试工具。(1)Rational Robot Rational Robot集成了功能测试和性能测试两种功能。使用Robot可以创建两种类型的测试脚本:基于GUI对象的功能测试脚本和用于性能测试的脚本。功能测试脚本可以在Robot中直接运行,而性能测试的脚本要在TestManager中运行。(2)Rational QuantifyRational Quantify提供了一个完整的、精确的针对被测应用程序和相关组件的一个性能测试数据集合,同过图表等易于理解和观察的方式显示出来,可以很容易看出被测程序那个地方耗费了较多时间,然后优化修改耗费时间较多的代码,提高程序执行效率。Rational Quantify主要适用的应用程序的对象是:Visual C/C+开发的.exe,.dlls,OLE/ActiveX控件以及COM对象组件;Visual Basic开发的应用程序;Java语言开发的应用程序;语言开发的应用程序等。(3)Rational Purify检测内存泄露的白盒测试工具。(4)Rational PureCoverage 测试代码覆盖率的白盒测试工具。(5)Rational TestFactory它是一个基于组件的测试工具,主要功能如下:根据程序的导航结构自动生成TestFactory脚本。自动创建和维护一个被测软件的详细map。不用记录,自动生成提供扩展代码覆盖率的脚本和发现缺陷的脚本。追踪运行过的或未运行过的源代码,并且报告它的详细的发现。通过最大限度的缩短花费在书写导航代码上的时间来缩短产品的测试周期。在TestFactory中可以回放Robot功能测试脚本一观察扩展代码覆盖率的信息以创建回归测试集;在Robot中也可以回放TestFactory脚本用以调试脚本。(6)Rational SiteCheck网页测试工具,利用Rational SiteCheck 可以检查企业内部互联网的结构完整性以及网页错误。可以帮助查看、跟踪和维护迅速变化的页面。利用SiteCheck具体可以做如下事情:显示网页的结构以及各页面间的关系。识别和分析带有动态内容的Web页面,如:forms, Java, JavaScript, ActiveX, VBScript。过滤信息,以利于你观察制定的文件类型和缺陷,包括断开的连接。检查和编辑任意网页的源代码。利用集成的编辑器更新或修复文件。对安全网页执行全面的测试。SiteCheck提供了Secure Scoket Layer(SSL)支持,代理服务器配置以及多密码域。(7)Rational TeamTest团队合作测试工具。4.3 Compuware公司的测试软件Compuware公司是世界上最大的软件和专业服务供应商之一。Compuware开发的QACenter测试工具集的主要构成如下图15:图4.3 QACenter测试工具集4.3.1管理工具(1)QADirectorQADirector处于QACenter管理工具的核心位置,它协调整个测试过程,并提供了一下功能: 计划和组织测试需求。 调用相应的自动测试工具执行测试。 测试过程允许使用手动测试。 观察和分析测试结果。 方便的将测试结果信息加载到测试缺陷跟踪系统。 针对需求验证测试。 将分析过程和测试过程结合。(2)Reconcile需求管理工具,组织和管理测试需求。(3)TrackRecordTrackRecord是一个高级的需求变更和缺陷管理工具,可以帮助组织建立一个系统方法来协调软件开发、调试、测试和实现。可进行自动化的软件缺陷的跟踪管理。4.3.2测试工具(1)QARunQARun可以提供C/S系统、电子商务系统和企业资源计划应用提供企业级的功能测试。同WinRunner和Rational Robot能提供的功能一样,可以执行自动化的功能测试。(2)QALoadQALoad是C/S系统、企业资源计划(ERP)和电子商务应用的自动化负载测试工具。它是QACenter测试工具集性能版的一部分。它通过可重复使用的、真实的测试能够彻底的度量应用程序的可扩展性和性能。它可以模拟成百上千的用户并发执行关键的业务完成对应用程的性能测试,并针对所发现的问题对系统性能进行优化,确保软件的成功部署。(3)WebCheck全面的站点分析和测试工具。5.自动化功能测试工具的分析比较与总结WinRunner、Rational Robot和QARun这三个工具都是自动化的功能测试工具,它们针对的测试对象都是使用IDEs(如:支持Java、C/C+、VB、HTML等语言的集成开发环境)开发的带有GUI对象的应用程序,都能够大大降低重复性的测试所耗费的时间,将测试人员从复杂好事的测试工作中解脱出来。我们目前所分析比较WinRunner、Rational Robot、QARun这个三个自动化功能测试工具,都是比较新的版本,并不是最新的版本。但这些不同版本的测试工具首先从功能、原理上都是一样的,而且整体的架构和细节的功能也不会有太大的变化。所以针对下面三个较新版本的工具进行分析和比较,对新版本的工具选择同样具有参考价值。分析和比较的工具对象的版本及软件平台情况如下表:表5.1 工具对象的版本及软件平台开发单位工具名称版本平台MI公司WinRunner7.51Windows Server 2003Rational公司Robot2002Windows Server 2003Compuware公司QARun465Windows 2000 Professional下面,将从测试步骤、测试结果等方面对这三种工具先作一个详细的分析和介绍,然后根据分析在对这三个工具进行横向的详细比较。5.1测试环境和对象(1)WinRunner我们使用的WinRunner版本是WinRunner7.50。是MI测试软件中比较新的版本。基本上可以完成Windows操作系统下的不同类型软件的自动化功能测试。下表是对WinRunner7.50所支持的环境和被测软件对象的一个总结16-17表5.2 WinRunner7.50所支持的环境和被测软件对象工具操作系统环境支持被测软件对象WinRunnerversion 7.50Microsoft Windows 95/98/NT/2000/XP/2003l Netscape, Microsoft Internet Explorerl JDKl Visual Basicl C/C+l PowerBuilderl Delphil Java applets, Java applications,JavaScriptl ActiveX, OCX Controlsl WAPl ERP/CRM applications(Oracle Applications, PeopleSoft, SAP, Siebel)l C/C+、VB、Delphi、PowerBuilder等开发的应用程序(2)Rational Robot表5.3 Rational Robot所支持的环境和被测软件对象工具操作系统环境支持被测软件对象Rational RobotVersion2002.05.00Microsoft Windows 98/NT/2000/XP/2003l Microsoft Internet Explorer 6.0l JDKl Visual Basicl C/C+l PowerBuilderl Delphil Wordl Java applets and applicationsl VB Applicationsl Oracle Forms Applicationsl HTML Applicationsl C/C+、Delphi、PowerBuilder等开发的应用程序l PeopleTools Applications(3)QARun表5.4 QARun所支持的环境和被测软件对象工具操作系统环境支持被测软件对象WinRunner7.50Microsoft Windows 3.x/95/98/NT/2000/XPl Netscape, Microsoft Internet Explorerl JDKl Visual Studio 6.0l 数据库支持l Microsoft Windows图形用户界面应用程序l SAP,Siebel,Oracle Web Form和PeopleSoftl Windows 2000控件l 基于Web的应用程序l C/S系统5.2工具功能模块详细划分虽然三个工具都是自动化的功能测试工具,从大的方面来说,它们的功能都是一样的,但有许多细节的功能还是有很大区别的。所以,为了更清楚、更详细的认识和比较这三个工具,将这个工具按它的功能模块进行划分,然后针对每个细节的功能进行分析和比较,最后从整体上把握,是最好的方法。(1)WinRunnerWinRunner为了支持完整的功能测试,简化测试难度,使测试人员能够轻松正确的执行测试,内置了许多强大的功能。下图是结合WinRunner的实际使用情况,对它从主要功能上的一个详细的划分13。图5.1 WinRunner功能划分从上面的功能模块划分图我们可以看出,WinRunner主要13个主功能模块,每个功能模块还有一些更具体的功能。这些功能模块集成到到一起,达到了WinRunner执行完整的自动化功能测试的功能。(2)Rational RobotRational Robot兼具功能测试的完整功能和性能测试脚本生成的功能,所以从整体上Robot可以分为两大模块:功能测试模块和性能测试模块。对于性能测试来说,Robot只是负责性能测试脚本的生成,所以性能测试模块的功能相对比较单一,而功能测试模块相对的就比较复杂18。对Robot的主要功能的详细划分如下图:图5.2 Robot功能划分(3)QARun同WinRunner一样,QARun可以执行完整的功能测试,它的所有的功能模块都是为了能够正确、方便的进行功能测试而存在的。QARun的主要功能模块的详细划分如下15:图5.3 QARun功能划分(4)比较对于功能测试,从整体上来看的话三个工具区别不是太大。都有脚本的录制、回放;检查点;一些与脚本的录制和回放有关的选项设置WinRunner与其两个工具主要有如下几个不同的地方:Font Expert功能模块,脚本的执行模块,GUI Map模块。Font Expert是为了WinRunner能够识别不同的字体而加入的一个具有字体学习功能的模块;脚本执行模块提供了三种模式下的脚本回放,这三种模式下面会详细分析;GUI Map是为了简化脚本,识别GUI对象和提高脚本的可维护性而设立的一个功能模块,这个模块和QARun中的Map模块的功能是一样的。Robot区别于其它两个工具的一个显著的特点,就是Robot可以执行部分性能测试的功能,即性能测试脚本的生成。而其它两个公司将性能测试工具和功能测试工具分的很清楚,MI公司的性能测试工具就是LoadRunner,LoadRunner负责从脚本的生成、执行到测试结果的查看等全部与性能测试有关的工作。和MI公司的分法一样,Compuware公司将性能测试功能完全交由QALoad完成。像Rational公司这种将功能测试和部分性能测试集成到一个工具中的做法,虽然对功能测试没有什么影响,但总让人感觉工具划分不清楚,特别是性能测试,脚本生成在Robot中,而执行要在TestManager中,显得有点麻烦。而其它两个公司的工具划分就感觉很好,功能测试、性能测试和管理工具都是相互独立的,学习和使用起来比较方便。另外一个特点就是Robot虽然能够执行功能测试,但是测试结果要在测试管理工具TestManager中查看,所以Robot对管理工具的依赖性比较强,从而显得其独立性比较差。QARun比较特殊的地方是有一个Events的模块和一个Dialog模块,Events模块和WinRunner中的同步点模块的功能是相近的,是为了使脚本执行和被测应用程序响应更好的同步而设立的。Dialog模块是为了增强脚本功能而设立的,下面会详细介绍。5.3测试步骤(1)WinRunner使用WinRunner进行自动化功能测试,主要有下面六个步骤:图5.4 WinRunner进行功能测试步骤其中Create GUI Map、Debug Tests这两个步骤不是必须的。(2)Rational Robot使用Robot进行功能测试有如下八个步骤:图5.5 Robot进行功能测试步骤其中Debug Tests、Compile Tests(Run Tests步骤中会先进行脚本的编译)这两个步骤不是必须的。(3)QARun使用QARun进行功能测试主要有下面九个步骤:图5.6 QARun进行功能测试步骤其中Create Map、Debug Tests、Compile Tests(Run Tests步骤中会先进行脚本的编译)这三个步骤不是必须的。(4)比较从上面三个工具的测试步骤图,可以看出,三者都要有创建测试、调试测试、运行测试、查看测试结果、报告缺陷这些步骤。Robot比其它两个工具少了创建对象映射这个步骤(不是说Robot中没有对象映射,而是Robot中对象映射只可以查看和捕获,不能手工修改某个对象的映射)。WinRunner比其它两个工具少了创建测试项目、登录项目、编译测试这三个步骤。从测试步骤上我们也可以看出,WinRunner的独立性比Robot和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电商平台售后服务流程再造与创新策略研究
- 2026届云南省化学高二上期末考试试题含答案
- 2026届黑龙江省齐齐哈尔市八中化学高二第一学期期中考试模拟试题含解析
- 2025年注册电气工程师考试 电气工程基础知识押题试卷
- 2025年考研英语(一)阅读理解长难句解析 模拟试卷汇编
- 玩具消毒知识培训总结课件
- 王玲老师月嫂培训知识课件
- 岩土面试题目及答案解析
- 吉林省吉林市吉化一中2026届高三上化学期中教学质量检测试题含解析
- 行业技术规范与市场趋势
- 拱桥拆除施工方案
- 社区医疗危急值报告制度及流程
- 2025年黑龙江省水利水电集团有限公司招聘笔试参考题库含答案解析
- 2025年一年级上学期班主任工作计划(3篇)
- 安全质量部部门及岗位职责
- 基于工作坊培训模式的叙事教育培训方案在实习护生共情能力培养中的应用效果
- 物业公司化粪池清掏服务方案
- 商会2025上半年工作总结及下半年工作计划
- 《城市河湖底泥污染状况调查评价技术导则》
- 《CIP培训资料》课件
- 无人机飞行安全知识讲座
评论
0/150
提交评论