资源预览内容
第1页 / 共130页
第2页 / 共130页
第3页 / 共130页
第4页 / 共130页
第5页 / 共130页
第6页 / 共130页
第7页 / 共130页
第8页 / 共130页
第9页 / 共130页
第10页 / 共130页
亲,该文档总共130页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第五部分软件自动化测试概述1.自动测试的概念2.自动测试生成周期方法学(ATLM)3.ATLM在软件测试领域中的作用4.自动化测试工具介绍5.测试计划、设计与准备6.软件系统的主要测试内容、技术与测试用例模板7.测试的执行8.改错第五部分软件自动化测试概述开发应用程序的软件经理和软件开发人员面临着进度不断缩短,使用的资源最小的挑战;作为少投入多产出的努力,企业希望充分的测试软件,但要求尽可能地快和彻底。为实现这目标,于是转向了自动测试许多事情手工测试是难以完成的,如1000个用户的容量测试。第五部分软件自动化测试概述自动测试能力的增长很大程度上起源于快速应用开发(RDA)普及的增长。快速应用开发:是一种软件开发方法学,其重点在于通过增量的方式提供常见的软件构件将开发进度缩短到最少。RDA的目的:保证用户尽早设计和开发每一个构件,以便于细化软件,从而确保它更准确地反映用户的需求。第五部分软件自动化测试概述可知:在这个贯穿每一个软件构件始终,软件频繁变化和增加的环境里,软件需求被迫改变,软件测试呈现出本质上的重复。经过相当数量的新测试以及现有测试脚本的返工,完成每一个新构件。假定软件应用程序要发生频繁的变化和改变,那么,自动软件测试就成为确保软件每一个构件准确、稳定的一个重要控制机制。结论:第五部分软件自动化测试概述一、自动测试的概念1.1自动测试的一般定义:对各种测试活动进行管理,包括测试脚本的开发与执行,以便使用一种自动测试工具来验证测试需求。软件测试自动化主要集中在软件测试流程的管理自动化,和动态测试的自动化,如功能测试自动化和性能测试自动化方面,还有是少部分的静态测试,如代码审查,它们常常比较容易从开发过程剥离出来。第五部分软件自动化测试概述一、自动测试的概念相比于手工测试,测试自动化的优势是明显的。 (1)首先自动化测试可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率; (2)其次,自动化测试使测试资产的管理数字化,并使测试资产得以在整个测试生命周期内得到复用,这个特点在功能测试和回归测试中尤其具有意义; (3)此外,通过测试流程的自动化管理使机构可以通过流程的关键绩效指标(KPI,KeyPerformanceIndicator)来衡量测试过程的有效性,从而实现了从软件质量保证向软件质量管理(SQM,SoftwareQualityManagement)的进化。1.2自动测试的优点第五部分软件自动化测试概述一、自动测试的概念1.3说明:(1)RDA的一个主要目标是通过阐述早期构件开发中最有风险的部分以缩短整个开发进度,因而在初始RDA周期开始阶段以及贯穿每个子RDA周期就开展测试活动;测试设计和开发是一项复杂的任务;测试小组没有参加软件规格说明书的编制工作或没有一开始就开展测试工作时,会给项目带来风险。潜在的后果包括:不完全的测试工作、不富裕的测试进度、未对测试进度作计划外的扩充第五部分软件自动化测试概述一、自动测试的概念(2)大量的工作需要自动测试工具的支持引入自动测试工具可以用更有效、可重复的自动测试环境代替世俗的手工测试;自动测试工具始于捕捉和回放工具;目前,软件自动测试的能力应包括:测试图形用户界面、需求一致性、负载测试、代码覆盖、网络接口、网络通信、内存泄漏等。第五部分软件自动化测试概述二、自动测试生成周期方法学(ATLM)简介自动测试生成周期方法学(ATLM)是一个旨在确保自动测试成功实施的结构化方法学;自动测试生成周期方法反映了现代化的快速应用开发工作的益处,在此过程中,在开发的早期就要求用户参加,并主动参与每一个软件构件的分析、设计、开发和测试工作。采用自动测试生存周期方法以支持涉及自动测试工具的测试工作,自动测试生存周期方法学包括多级过程。第五部分软件自动化测试概述二、自动测试生成周期方法学(ATLM)简介自动测试生成周期方法学包括了一个多阶段的过程,该方法有六个部分组成:自动测试决定测试工具获取自动测试引入过程测试计划、设计与开发测试执行与管理测试评审与评估第五部分软件自动化测试概述二、自动测试生成周期方法学(ATLM)简介自动测试生成周期方法学(ATLM)1、自动测试决定2、测试工具获取3、自动测试引入过程4、测试计划设计与开发5、测试执行与管理6、测试评审与评估第五部分软件自动化测试概述二、自动测试生成周期方法学(ATLM)简介2.1自动测试决定 自动测试决定是自动测试生存周期方法学的第一阶段。 旨在帮助测试组管理自动测试期望; 正确把握自动测试的潜在好处(如果正确实施的话); 提出测试工具建议的方法,这将有助于获得经理的支持。 第五部分软件自动化测试概述二、自动测试生成周期方法学(ATLM)简介2.2测试工具采购 测试工具采购是自动测试生存周期方法学的第2个阶段。 指导测试工程师完成整个测试工具评估和选择过程。 只要可行,工具应该支持企业的绝大部分测试需求,因此测试工程师需要评审系统工程环境和其他企业需求,能就特定项目上而开展的测试类型做有益的决定。 测试工程师在完成评估域的确定以选择测试工具后,测试工程师可与厂商联系以将所选择的工具拿来,而后根据样本标准评估工具。第五部分软件自动化测试概述二、自动测试生成周期方法学(ATLM)简介2.3自动测试引入阶段自动测试引入过程是自动测试生存周期方法学的第3个阶段。 阐述了成功地向新项目引入自动测试所必须的一些步骤: 测试过程分析 测试工具考查 第五部分软件自动化测试概述二、自动测试生成周期方法学(ATLM)简介测试过程分析:确保整个测试过程和策略适当,必要时可加以改进,以便成功地引入自动测试。测试工程师定义和收集测试过程度量以确保过程改进。必须定义测试目标、目的和策略,测试过程必须与测试组联系。在此阶段,确定适用的技术环境以及自动工具可支持的各种测试。按照测试需求和计划中的测试活动,对用户参与计划进行评估并对测试组技能进行分析。强调测试组早期参与,支持将需求规范细化成能被充分测试的条款,并强化测试组对应用程序需求与设计的了解。第五部分软件自动化测试概述二、自动测试生成周期方法学(ATLM)简介测试工具考查:此阶段包含几个步骤,在这些步骤内考虑到项目测试需求、可用的测试环境和人力资源、用户环境、平台以及被测的应用的产品特性,测试工程师应该研究将自动测试工具或实用程序引入测试工作是否对项目有好处。应该评审项目进度以确保为测试工具建立和需求体系开发尚留有足够的时间。将潜在的测试工具和实用程序映射到测试需求中;验证测试工具是否与应用和环境兼容。应该研究变通的解决方案以解决兼容性测试期间出现的不兼容问题。第五部分软件自动化测试概述二、自动测试生成周期方法学(ATLM)简介2.4 测试计划、设计和开发 测试计划、设计和开发是自动测试生存周期方法学的第4阶段。 测试计划:测试计划是高效测试的基础测试计划概要说明测试组的任务和职责,测试进度、测试设计活动、测试环境准备、测试风险和偶发事件以及可接受的彻底测试的程度。第五部分软件自动化测试概述二、自动测试生成周期方法学(ATLM)简介在此阶段,测试组确定测试程序生成标准与准则,支持测试环境所需的硬件、软件和网络,测试数据需求,初步测试进度,性能测量需求,控制测试配置和环境的过程以及缺陷跟踪过程与有关的跟踪工具。第五部分软件自动化测试概述二、自动测试生成周期方法学(ATLM)简介 (1)测试计划包含结构化测试方法每一初步阶段的结果。它定义任务和责任、项目测试进度、测试计划和设计活动、测试环境准备、测试风险与偶然性、可接受的完全性等级(即测试验收标准)。 (2)测试计划附录可能包括测试程序、命名约定说明、测试程序格式标准以及测试程序跟踪矩阵。 第五部分软件自动化测试概述二、自动测试生成周期方法学(ATLM)简介 (3)建立测试环境是测试计划的一部分。因为材料采购可能需要很长的交付周期,所以测试组必须计划、跟踪和管理测试环境建立活动。它必须安排和监控环境建立活动,安装测试环境硬件、软件和网络资源,集成和安装测试环境资源,获取和细化数据库并制订环境建立脚本和测试床脚本。 第五部分软件自动化测试概述二、自动测试生成周期方法学(ATLM)简介测试设计:测试设计部分论述需要实施的测试数目、测试方式(如路径或功能)、必须执行的测试条件,以及需要建立和遵循的测试设计标准。测试开发:创建具有可维护性、可重用性、简单性和健壮性的测试程序。 为了使自动测试可重用、可重复和可维护,必须确定和遵循测试开发标准。 第五部分软件自动化测试概述二、自动测试生成周期方法学(ATLM)简介2.5 测试执行与管理 最后,测试组应完成回归测试和其他全部测试并闭环跟踪问题。 应该支持开发人员了解系统和软件的问题以及问题重现的工作。 应该通过系统问题报告记录系统的问题。 测试组也应该进行测试执行结果的评估活动以免出现假肯定或假否定。 测试组必须根据测试程序执行进度执行测试脚本并推敲集成的测试脚本。第五部分软件自动化测试概述二、自动测试生成周期方法学(ATLM)简介2.6 测试活动评审与评估 测试执行完毕后,测试组必须对测试工作情况进行评审,以决定在下一个测试阶段或者下一个工程中那些需要改进。测试组在整个测试过程中需要收集许多测试度量,度量标准是评审的依据,评审的具体做法是对各个度量进行评估。测试度量的评估应该检查原来计划的测试活动的开支和规模情况。第五部分软件自动化测试概述二、自动测试生成周期方法学(ATLM)简介 测试活动评审与评估应在整个测试生存周期内进行,以确保连续的改进活动。在整个测试生存周期和后续测试执行活动中,必须评估各种度量,并且必须进行最终评审和评估以确保过程改进。第五部分软件自动化测试概述三、(ATLM)在软件测试领域中的应用3.1 自动测试生存周期方法学与系统开发生存周期的关系 为了使测试活动收效最大,必须在系统生存周期期间应用自动测试生存周期方法学。第五部分软件自动化测试概述三、(ATLM)在软件测试领域中的应用自动测试生存周期方法学与系统开发生存周期的关系第五部分软件自动化测试概述三、(ATLM)在软件测试领域中的应用3.2 测试成熟度模型(TMM)通过自动软件测试成熟度而增强 测试成熟度模型是由Illinois技术学院开发的,它包含一系列等级,该模型在每一成熟度等级上都列出了一系列建议做法。 实施自动测试生存周期方法学的测试组将发展到测试成熟度模型的第4级和第5级。第五部分软件自动化测试概述三、(ATLM)在软件测试领域中的应用1、能力成熟度模型与测试成熟度模型之间的相关性 测试成熟度模型是作为能力成熟度模型的补充而开发出来的。其设想是,对评估和改进其测试能力感兴趣的企业将乐于参与一般软件过程改进。为了直接对应方便,两种成熟度模型上的等级将从逻辑上简化这两种并行的过程改进趋势。不过,这种并行性并未完全表示出来,因为能力成熟度模型和测试成熟度模型等级结构都是基于它们所体现的过程的单一历史成熟度增长模式。第五部分软件自动化测试概述三、(ATLM)在软件测试领域中的应用建造的过程是整个软件开发过程的子过程,因此,其成熟度增长需要来自与一般过程有关联的关键过程区域(KPA)的支持。由于这个原因,任何想在测试成熟度模型实施期间改进其测试过程的企业都应该通过应用能力成熟度模型准则首先改进本企业的整个软件开发过程。第五部分软件自动化测试概述三、(ATLM)在软件测试领域中的应用 (1)一个试图达到测试成熟度模型特定等级的企业必须至少达到同样的能力成熟度模型等级。 在许多情况下,一个给定的测试成熟度模型等级需要来自与之对应的能力成熟度模型(CMM)等级及其下面的等级过程上的关键过程区域的支持。第五部分软件自动化测试概述三、(ATLM)在软件测试领域中的应用 (2) 测试成熟度模型非常适合于自动软件测试,因为有效的软件验证与确认产生于良好计划、执行、管理和监控的开发程序。良好的软件测试活动不可能是独立的,它必须是软件开发过程的一个整体部分。 (3)测试组必须根据公司的环境决定最适合企业软件应用或产品的测试成熟度模型成熟度等级。测试等级应该与设计复杂程度相称,测试工作不应比开发工作更复杂。测试成熟度和自动软件测试成熟度1-5级表的左侧一栏显示了测试成熟度1-5级,而右侧一栏显示了对应的自动软件测试1-5级。第五部分软件自动化测试概述三、(ATLM)在软件测试领域中的应用第五部分软件自动化测试概述四、自动化测试工具的介绍不同的测试生存周期阶段有不同的测试工具;选定的测试工具应该适合企业全部系统工程环境,从而最大限度的发挥工具的作用;要确定测试工具的选择标准,要考虑测试工具的投入费用,要进行收益估算。第五部分软件自动化测试概述四、自动化测试工具的介绍4.1测试生存周期工具业务分析阶段业务建模工具:产生过程模型、组织模型、数据模型配置管理工具:便于建立重要数据存储库基线缺陷跟踪工具:管理系统生存周期中出现的缺陷技术评审管理:便于交流并使技术评审/审查过程自动化文档生成器:自动生成文档第五部分软件自动化测试概述四、自动化测试工具的介绍需求定义阶段需求管理工具:管理和组织需求;便于测试过程设计和测试进展报告需求验证器:验证语法、语义和可测试性使用用例生成器:便于生成使用用例第五部分软件自动化测试概述四、自动化测试工具的介绍分析定义阶段数据库设计工具:为开发第二代企业客户器/服务器系统提供解决方案应用设计工具:定义软件结构;便于面向对象的分析、建模、设计和构造结构图、流程图和时序图:帮助管理过程测试程序生成器:从需求或数据和对象模型或因果图中生成程序第五部分软件自动化测试概述四、自动化测试工具的介绍编程阶段语法检查/调试器:语法检查和调试;通常与内置的编程语言编译器一起提供内存泄漏和运行错误检测工具:检测运行时出现的错误和内存泄漏源代码测试工具:验证可维护性、可移植性、复杂性、圈复杂度和标准依从性静态和动态分析器:描述代码质量和结构各种代码实现工具:其中包括代码生成(取决于具体的应用)单元测试工具:使单元测试过程自动化第五部分软件自动化测试概述四、自动化测试工具的介绍度量工具代码(测试)覆盖分析器或代码插桩:识别未测试过的代码,适用于动态测试度量报告:阅读源代码并显示度量信息易使用性度量:提供用户剖面、任务分析、原型和用户走查第五部分软件自动化测试概述四、自动化测试工具的介绍其他生存周期支撑工具测试数据生成器:生成测试数据原型工具:使用高级编程语言生成应用原型桩模块生成工具:当所有模块还不存在时,便于生成桩模块,但部分代码需要作为独立单元来测试文件比较实用程序:便于查找文件之间的差异仿真工具:应用仿真,尤其是其他任务的仿真,以测量其规模第五部分软件自动化测试概述四、自动化测试工具的介绍测试阶段测试管理工具:便于测试管理网络测试工具:便于对整个网络性能进行监控、测量、测试和诊断GUI测试工具(捕捉/回放):便于自动进行GUI测试非GUI测试驱动器:便于对不包含GUI的产品自动执行测试负载/性能测试工具:便于进行负载/性能和压力测试环境测试工具:各种测试环境下的测试工具,这些环境包括MVS、UNIX、X-WINDOWS以及WWW第五部分软件自动化测试概述四、自动化测试工具的介绍4.2具体工具介绍1、MercuryInteractive公司(简称MI)自动化测试工具2、IBM公司自动化测试工具3、赛格瑞软件公司 (Segue)自动化测试工具4、Compuware公司自动化测试工具5、Telelogic公司自动化测试工具1、MercuryInteractive公司Mercury是全球业务优化科技(BTO)软件和服务的领导者。95%的财富百强公司都在使用Mercury各种曾获奖的解决方案,其中包括自动化软件质量管理、性能测试、应用管理和IT管控,从而在业务中实现了最大的IT价值。客户出于两个原因购买其产品:第一,管理其IT管控,以便确保使用正确的流程和正确的人员按照正确的优先级运行。第二,优化其现有应用程序的质量、性能和可用性,以便确保实现业务预期的价值。独特、灵活、以客户为中心的交付模型可帮助企业以相应的价格向每个客户都提供相应的解决方案;经过实践检验过的远见、执行能力以及雄厚的财务和开发资源可确保这些解决方案将取得具有重要意义的业务价值。Mercury是一家拥有卓越领导地位的强大公司。自1989年Mercury成立以来,公司在市场份额、收入以及向客户提供的价值等方面持续稳步增长。主要产品:1、LoadRuanner2、WinRunner3、TestDirector4、QTPWinRunner功能测试工具WinRunner 是基于MS Windows的功能测试工具。 由于C/S结构的软件功能增加越来越快,QA部门测试难度越来越大,手工测试已经跟不上这种发展趋势。 WR可以帮助你自动处理从测试开发到测试执行的整个过程。你可以创建可修改和可复用的测试脚本,而不用担心软件功能模块的变更。你只需要在下班后让计算机自动执行这些脚本,就能轻而易举的发现软件中的错误,从而确保软件的质量。 WinRunner:强大的企业级自动化测试工具 MercuryInteractive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。LoadRunner性能测试工具工业标准级负载测试工具LoadRunner是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢,系统崩溃等问题。这些都不可避免地导致公司收益的损失。MercuryInteractive的LoadRunner能让企业保护自己的收入来源,无需购置额外硬件而最大限度地利用现有的IT资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量,可靠性和可扩展性都有良好的评价。LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。TestDirector全球测试管理系统TestDirector是业界第一个基于Web的测试管理系统,它可以在您公司内部或外部进行全球范围内测试的管理。通过在一个整体的应用系统中集成了测试管理的各个部分,包括需求管理,测试计划,测试执行以及错误跟踪等功能,TestDirector极大地加速了测试过程。电子商务正影响着许多公司制定计划和建立自己的IT系统。很快,一个Web应用软件就能被创建,开发并立即展现在您的客户、供应商或合作伙伴的面前。然而,由于紧凑的开发计划和复杂的系统基构,Web应用软件的测试经常是被忽视的。为了与新经济同步,您必须开发经过系统测试的高品质的网络应用软件。您需要设立一个中央点来管理测试过程。一套基于Web的测试管理系统提供了一个协同合作的环境和一个中央数据仓库。由于测试人员分布在各地,您需要一个集中的测试管理系统能让测试人员不管在何时何地都能参与整个测试过程。IT部门增长地会非常快,人员也会不断流动。您必须以最快的速度培训新的测试人员,教会他们所有与测试有关的知识技术。重点在于管理复杂的开发和测试过程,改善部门间的沟通,加速您测试的成功。TestDirector能消除组织机构间、地域间的障碍。它能让测试人员、开发人员或其它的IT人员通过一个中央数据仓库,在不同地方就能交互测试信息。TestDirector将测试过程流水化从测试需求管理,到测试计划,测试日程安排,测试执行到出错后的错误跟踪仅在一个基于浏览器的应用中便可完成,而不需要每个客户端都安装一套客户端程序。QTP功能测试工具QTP的全称是QuickTestProfessional,是MI公司开发的一款功能测试工具,也是目前MI公司主推的一款测试工具,其功能与WinRunner类似。随着QTP的市场推出,WinRunner的市场占有率逐年下降。2、IBM公司IBM Rational Test ManagerIBM Rational Test Manager(测试管理工具)(测试管理工具)IBM Rational RobotIBM Rational Robot(功能(功能/ /性能测试工具)性能测试工具)Rational PurifyRational Purify (白盒测试工具)(白盒测试工具)RationalRational ClearQuestClearQuest(缺陷管理工具)(缺陷管理工具)Rational Performance TesterRational Performance Tester(性能测试工具)(性能测试工具)Rational Functional TesterRational Functional Tester(功能和回归测试工具)(功能和回归测试工具)IBMRationalTestManager突出特点突出特点 管理手动测试和报告提供集中测试控制中心不依赖于开发平台或语言简化对产品计划、需求和变更的沟通标记变更可能影响的测试用例处理几乎任何类型的测试脚本对测试团队的期望不只是进行功能测试、性能测试和回归测试,他们还要完成许多其它任务。从跟踪需求变更到提供最新的报告,再到为开发人员提供查找和修复缺陷代码所需的信息-测试人员需要做的远不只是简单的测试。在今天,测试人员承受着巨大压力,需要以更短的时间完成工作以测试更多项目。IBMRationalTestManagerV2003可以帮助测试人员更快地完成工作,实现项目团队之间变更和状态通讯的自动化。控制测试程序IBMRationalTestManager是测试人员的桌面。测试人员与团队成员用它来计划、管理、组织、执行、评诂以及报告个别测试用例或整个测试计划。从该中心点可以控制所有类型的测试活动-从手动回归测试到缺陷跟踪,直到扩展的自动化压力测试。使用RationalTestManager,测试用例在逻辑上可以链接到任何输入源。与IBMRationalRequisitePro的集成可提供需求变更的自动通知。这样就避免了以手工方式来关联需求变更与测试用例,这是一个容易出错的过序,从而极大地改进了工作流程。改善团队沟通整个项目团队都可以从IBMRationalTestManager与IBMRationalClearQuest(一种缺陷管理工具)以及IBMRationalRequisitePro的紧密集成中受益,因为这种集成使分析人员和开发人员可以随时从自己的角度查询需要的测试结果。通过集中控制测试流程并轻松共享测试结果,IBMRationalTestManager提高了整个开发生命周期的测试效率。有利于测试人员和开发团队的特征有利于测试人员和开发团队的特征 自动化测试计划:自动化测试计划:在IBMRationalTestManager中,测试计划是一个易于使用的动态结构,它是组织测试流程的框架。管理所有类型的测试:管理所有类型的测试:从IBMRationalTestManager桌面上管理功能测试、性能测试、手动测试、集成测试、回归测试、配置测试和构件测试。一次执行多种测试类型:一次执行多种测试类型:在同一个测试运行中,执行一个包含多种类型脚本(手动、Java、GUI、负载)的测试套件。在单机或整个网络中,同时执行功能测试和性能测试。链接测试用例与需求:链接测试用例与需求:当需求变更时,IBMRationalTestManager会自动标识与变更有关的测试用例,从而节省测试人员的宝贵时间。测试评估:测试评估:一个集成的日志查看器为每次测试运行生成一个完整的日志,包括通过、失败、警告与信息标记。要了解失败的详细信息,只需双击测试项。有意义的报告有意义的报告:IBMRationalTestManager包含一系列预定义的图形和文本报告。还可以用CrystalReports来定义和扩展其他关于测试指标、结果和通过-失败状态的报告。管理手动测试管理手动测试IBMRationalTestManagerV2003将手动测试的管理自动化。使用IBMRationalTestManager,您可以:创建一个测试计划来管理手工测试工作流程;在执行测试脚本的过程中,记录其步骤和结果;自动生成手动测试结果和指标的报告。IBM Rational TestManager V2003 具有一套丰富的业界领先的特征,具有一套丰富的业界领先的特征,可帮助您管理手工测试可帮助您管理手工测试:将文本描述或文件与测试联系起来,以更好地描述预期结果。确定一个测试的执行通过与否的具体验证标准。在小型的、循序渐进的会话中运行手工脚本,以尽量减少对正在测试的应用程序的干扰。捕获并编译单个成员或整个团队取得的测试结果。导入和导出测试脚本与设计,以便与其他应用程序共享。将手工脚本、测试用例设计和配置的测试用例设计导出到一个文本文件中。整合手工测试结果和自动功能测试及性能测试的结果。易于实现测试自动化易于实现测试自动化尽管为所有测试人员提供了易于使用的测试管理功能,但使用IBMRationalTestManager来使手动测试的管理自动化是向自动化测试迈出的第一步。作为后面的步骤,IBMRational测试自动化、缺陷跟踪和需求跟踪工具可以被逐步采用。借助IBMRational的服务加速成功IBMRationalRobot获得了一家全球服务组织的支持,该组织有丰富的在线资源,而且能够提供个性化的培训、咨询和技术支持。IBMRationalDeveloperNetworkSM在线提供了很多文章、白皮书、课件及更多内容,它是为使用IBMRational工具和最佳实践的开发专业人员开辟的在线社区。熟练的咨询、技术支持和培训资源可以提升您团队的能力。IBMRational的服务为软件开发的不断进步奠定了基础,它将加速您成功的步伐。用IBMRationalSuite统一您的团队IBMRationalRobot是IBMRationalSuite产品家族中的一员。RationalSuite家族提供了综合的开发平台,可统一您的团队、优化个体效率并简化IBMRational解决方案的实施。IBM Rational RobotRationalRobot可开发三种测试脚本:用于功能测试的GUI脚本、用于性能测试的VU以及VB脚本。Rational Robot作用作用1、执行完整的功能测试。记录和回放遍历应用程序的脚本,以及测试在查证点(verificationpoints)处的对象状态。2、执行完整的性能测试。Robot和TestManager协作可以记录和回放脚本,这些脚本有助于你断定多客户系统在不同负载情况下是否能够按照用户定义标准运行。3、在SQABasic、VB、VU环境下创建并编辑脚本。Robot编辑器提供有色代码命令,并且在强大的集成脚本开发阶段提供键盘帮助。4、测试IDE下VisualBasic、OracleForms、PowerBuilder、HTML、Java开发的应用程序。甚至可测试用户界面上不可见对象。5、脚本回放阶段收集应用程序诊断信息,Robot同RationalPurify、Quantify、PureCoverage集成,可以通过诊断工具回放脚本,在日志中察看结果。Robot使用面向对象记录技术:记录对象内部名称,而非屏幕坐标。若对象改变位置或者窗口文本发生变化,Robot仍然可以找到对象并回放。IBM Rational Robot突出特点突出特点 2002年年 Yphise 奖最佳功能测试工具奖最佳功能测试工具 支持多种支持多种 IDE:Microsoft VisualStudio .NETOracle Developer/2000DelphiPeopleSoftPowerBuilder 支持多种语言:支持多种语言:JavaHTML 和和 DHTMLVisual BasicVisual C+ActiveXXML 自动自动 GUI 功能测试功能测试 执行分布式功能测试执行分布式功能测试 测试所有测试所有 .NET 本机控件,包括本机控件,包括 VB.NET、C#、J#、Managed C+ 允许在记录时查看和编辑测试脚本允许在记录时查看和编辑测试脚本 屡获大奖的IBMRationalRobotV2003将图形用户界面(GUI)的功能测试自动化。RationalRobot可以对使用各种集成开发环境(IDE)和语言建立的软件应用程序,创建、修改并执行自动化的功能测试、分布式功能测试、回归测试和集成测试。使新测试人员轻松进入自动化使新测试人员轻松进入自动化IBMRationalRobot是业界最顶尖的功能测试工具,它甚至可以在测试人员学习高级脚本技术之前帮助其进行成功的测试。它集成在测试人员的桌面IBMRationalTestManager上,在这里测试人员可以计划、组织、执行、管理和报告所有测试活动,包括手动测试报告。这种测试和管理的双重功能是自动化测试的理想开始。为高级测试人员提供强大的工具为高级测试人员提供强大的工具IBMRationalRobot是一种可扩展的、灵活的功能测试工具,经验丰富的测试人员可以用它来修改测试脚本,改进测试的深度。使用RationalRobotV2003,您可以:将回归测试和配置测试自动化用条件逻辑扩展测试脚本并调用任何DLL或WindowsAPI功能。IBMRationalRobot可以捕获所有HTML和DHTML特征,包括链接目标和不可见数据RationalRobot为菜单、列表、字母数字字符及位图等对象提供了测试用例,测试人员可以创建用户定义的调用外部DLL或可执行构架的测试用例。它为特定环境的对象,例如Java控件、PowerBuilderDataWindows、ActiveX控件、SpecialOracleForms对象、OCXs、VisualBasic对象和VBXs等,提供了特殊的测试用例。快速便捷的快速便捷的可视分析可视分析IBMRationalRobot自动记录所有测试结果,并在测试日志查看器中对这些结果进行颜色编码,以便进行快速可视分析。双击某一项,RationalRobot就直接带您进入测试脚本中对应的行,以便快速分析。多种多种 IDE 和语言支持和语言支持 Java 环境环境使用IBMRationalRobot,测试人员可以对复杂环境中所有的JavaTM小程序、Java应用和基于Web的集成应用程序进行功能测试。它支持很多通用的Java开发环境,包括Sun的JDK、SymantecVisualCaf和MicrosoftVisualJ+。RationalRobot中包含RobotJavaOpenAPI,因此用户可以拓展对新的和现有的Java类库的支持。Rational Performance Tester自动负载和性能测试工具,用于开发团队在部署基于Web的应用程序前验证其可扩展性和可靠性。提供了可视化编辑器,使新的测试人员可以简单地使用。为需要高级分析和自定义选项的专家级测试人员提供了对丰富的测试详细信息的访问能力,并支持自定义Java代码插入。自动检测和处理可变数据,以简化数据驱动的测试。提供有关性能、吞吐量和服务器资源的实时报告,以便及时发现系统的瓶颈。可以在Linux和Windows上进行测试录制和修改。RationalPurifyforLinuxandUNIX为Linux和UNIX提供了内存泄漏和内存损坏检测。RationalPurifyforWindows为Windows提供了内存泄漏和内存损坏检测。RationalPurifyPlus企业版为Windows、Linux和UNIX提供了运行时分析。RationalPurifyPlusforLinuxandUNIX为基于Linux和Unix的Java和C/C+开发提供了分析工具集。RationalPurifyPlusforWindows为基于Windows的Java、C/C+、VisualBasic和托管.NET开发提供了运行时分析。RationalPurify在C/C+的软件开发中,没有任何一种工具可以让你的应用程序避免引入内存问题,但是我们可以使用诸如Purify这样的工具对已经做好了的程序进行内存问题的检查。Purify的强大之处是可以找到应用程序中全面的内存问题,并可以和GDB/DBX等调试器以配合使用,让你对你的内存错误一目了然。Purify是一个Run-Time的工具,也就是说只有在程序运行过程中,根据程序的运行情况来查看在某种运行条件下程序是否有内存上的问题,它可以在一个非常复杂的程序中查找内存错误,包括那种多进程或多线程的程序,它也可以进行测试。RationalPurifyPurify对程序中的每一个内存操作都进行检测,并对精确报告内存出现错误的变量和语句,以提供出现错误原因的分析。Purify主要检测的是下面这些内存错误:数组内存是否越界读/写。是否使用了未初始化的内存。是否对已释放的内存进行读/写。是否对空指针进行读/写。内存漏洞。在软件工程中,以我的经验而言,最好是在编码阶段时就使用Purify检测内存存问题,一直到交给测试人员测试。请相信我,在一个大型的C/C+软件产品中,即使检测出了内存问题,离真正地解决它还有一定的距离,所以为了让这个“距离”不算太远,最好还是在功能模块完成时就进行Purify的内存检测。一般而言,在软件测试中,首要的是软件的功能测试,然后是反面案例测试,再而是压力测试。就我个人经验而言,使用内存检测工具的阶段应该是编码阶段、模块合并后、以及程序逻辑测试完成以后,直到产品发布前,也要做一个内存测试。Rational Functional Tester先进、自动化的功能和回归测试工具,用于那些需要对Java,MicrosoftVisualStudio.NET,和基于Web应用的测试进行更高级控制的测试人员和GUI开发人员。为初级测试人员的数据驱动测试活动提供了自动化功能。高级测试人员可选择脚本语言和强大的编辑器(在Eclipse中写Java,在VisualStudio.NET中为MicrosoftVisualBasic.NET),进行测试编写和定制。利用ScriptAssure技术和模式匹配功能改进测试脚本的灵活性,以应对频繁的应用程序用户界面变更。加入了对版本控制的支持,实现了测试脚本的并行开发和地理分散团队的同时使用。包括IBMRationalClearCaseLT。支持利用IBMRationalFunctionalTesterExtensionforTerminal-basedApplications对3270(zSeries)和5250(iSeries)应用进行测试。3、赛格瑞软件公司(Segue)自1988年成立以来,赛格瑞软件公司从最初的5人咨询公司发展成为一个屡获殊荣的行业领导者。10多年来,公司的规模在变,地位在变,惟有其对客户需求的关注与重视始终不变。今天,赛格瑞在自动化测试和质量管理领域已经积累了无与伦比的丰富经验,并以不断的创新,成为这一领域的技术领导者。1987年,Segue软件成立1988年,Segue成为一家正式的公司。1993年,Segue推出了自己的首款产品QAPartner用于客户机/服务器应用测试。1995年,PowerBuilder开发人员杂志授予QAPartne“卓越产品”称号1996年,Segue上市,并推出新产品QARadar。1997年,推出了QAPerformer,也就是现在的SilkPerformer。QA系列都是面向客户机/服务器的。在Segue开始转向Web应用后,产品线被重新命名为Silk。这一年,Segue还因其快速增长而入选了“美国发展最快500家技术公司”和“新英格兰发展最快50家公司”。1998年,Segue获得第二项专利-自动GUI测试技术。1999年,SilkTest被JAVA开发人员杂志编辑评选为“最佳JAVA测试工具”。2000年,Segue又有一项专利技术-SilkTestVirtualObjectRecognition。2001年,Segue推出SilkVision和SilkTestInternational,同时还推出了SilkElite合作伙伴项目。2003年,Segue推出SilkPerformerLite和SilkPerformerComponentEdition。SilkTest获软件开发杂志JoltProductivityAward和SDTimes100Award。SilkCentralTestManagerSilkCentralTestManager是一种全面的测试管理系统,能够提高测试流程的质量和生产力,加速企业应用成功上市的速度。用户可以使用这一工具对整个测试周期进行计划、记录和管理,包括获取和组织主要业务需求、跟踪执行情况、设计最佳测试计划、调度自主测试、监视手工和自动测试的进度、查找功能缺陷以及对应用进行上市前评估。SilkTestSilkTest对企业应用在各种环境下进行功能测试,是业界领先的自动化工具。Segue的自动化测试技术提高了测试准确性、一致性,并大大节省了时间。在当今日益缩短的测试周期要求下,这些功能可以让用户极大地提高应用的安全性。为便于使用,SilkTest还设计有一系列功能,不仅能够提高生产力,还可以让新老用户快速创建功能测试、自动运行测试并准确分析结果。测试时间减少,则QA人员就可以将更多精力放在提高测试覆盖率以有优化应用质量上。用户不仅可以在应用发布之前对其进行功能验证,还能够重复使用现有的测试用例,从而轻松地判断出新增功能对现有功能会产生哪些影响。SilkPerformer企业级自动化测试工具能够支持多种系统,如Web、wireless、Java、.Net、COM、CORBA、Oracle、Citrix、MetaFrame、客户机/服务器、以及各种ERP/CRM应用TrueScale技术能够模拟数以千计的并发用户在一台计算机上的动态负载情况可视化脚本记录功能及自定义工具简化了测试创建工作SilkPerformer的Java/.NET浏览器以及JUnit/NUnit测试输入功能简化了对并发访问情况下远程应用组件的早期负载测试工作工作流向导会逐步引导用户完成整个测试流程工作负载向导引导用户快速简便地创建实际工作负载整合的测试环境为负载测试提供了单一控制点TrueModem技术使用不同的上游/下游传输速率准确模拟Web浏览器的高速缓冲能力可调的Web用户容差水平可以准确模拟真实用户的取消求SilkPerformerTrueLog技术从最终用户的角度进行全面的前端可视化诊断负载验证能够发现应用缺陷,包括测试中虚拟用户会看到的不正确的网页内容查询追踪计时器可以准确的给出每个Web页组件的反应时间服务器分析模块分析服务器数据,并与负载测试结果自动关联,轻松找出瓶颈拥有Boreland的OptimizeitServerTrace插件,可以进行J2EE深层诊断对健康状况进行实时监控,避免代理机负载过重而出现无效的测试结果基于Web的管理报告使非技术人员也能够快速理解测试结果同步授权(ConcurrentLicensing)允许在多项目,多地点和多个应用场景下使用SilkPerformer和应用虚拟用户水平,极大地提高了成本效益与SilkCentralTestManager的整合使测试流程更加有序,可视性更强SilkCentralPerformanceManager让用户能够重复使用SilkPerformer测试资产,管理生产中的应用性能4、Compuware公司TrackRecordTrackRecord (缺陷管理工具)(缺陷管理工具)QARunQARun (功能测试)(功能测试)QACenterQACenter(测试管理工具)(测试管理工具)DevPartnerDevPartner (动态白盒测试工具)(动态白盒测试工具)QALoadQALoad (性能测试工具(性能测试工具 )5、Telelogic公司(瑞典)需求管理需求管理 TelelogicTelelogic DOORS DOORS加强交流并确保对需求、规则和标准的遵从通过需求管理和跟踪提高质量通过需求管理和跟踪提高质量 Telelogic DOORS 是在市场和技术两方面均居于领先地位的需求管理需求管理解决方案系列。它可以优化沟通与协作,并通过以下功能促进对标准的遵从和验证,从而改进项目质量:鼓励运用需求管理的直观的界面 可缩放性,适合拥有任意用户数的任意规模的项目 灵活、新颖、便于使用的需求跟踪矩阵 最全面地支持记录、规划、管理和分析需求 及其可跟踪性 与 Telelogic 的其它解决方案和第三方工具的空前紧密的集成,可以提高整个开发生命周期中的需求可见性和可跟踪性TelelogicLogiscope嵌入式软件测试工具嵌入式软件测试工具Telelogic LogiscopeLOGISCOPE 是一组嵌入式软件测试工具集。它贯穿于软件开发、代码评审、单元/集成测试、系统测试、以及软件维护阶段。它面向源代码进行工作。LOGISCOPE 针对编码、测试和维护。因此,LOGISCOPE 的重点是帮助代码评审(Review )和动态覆盖测试(Testing )。 TelelogicLogiscopeTelelogicLogiscope是一种软件质量保证软件质量保证(QA)工具,它可以通过自动进行代码检查和对容易出错的模块的鉴定与检测来帮助扩大测试范围,从而达到保证质量和完成软件测试的目的。可自定义的软件测试功能可帮助您在软件开发过程中及早发现缺陷,这样您就可以做到按时交付,将费用控制在预算内,同时又可以提高软件质量。在软件开发生命周期的早期排除错误对于维护软件开发标准是至关重要的,这样您就可以满足需求、构建可靠产品,并最大限度地缩短将产品推向市场的时间。Logiscope可以鉴定出很可能包含缺陷的模块,向您说明有缺陷的结构,并提供改进建议。测试工具的利与弊测试工具的的优点1、性能测试工具可以模仿多用户同时访问,便于压力测试和负载测试2、功能测试工具可进行回归测试,减轻测试人员的负担,提高测试效率3、在单元测试时利用白盒测试工具可以方便进行静态分析和动态测试4、测试管理工具可以方便地管理各种测试资源,也方便团队成员的交流和合作测试工具的利与弊测试工具的局限性1、测试工具的引入需要一定的经济成本2、测试工具的引入需要一定的时间成本3、测试工具本身不具备创造力,并且其发现的缺陷也没有手工测试的多4、测试工具不能处理意外事件第五部分软件自动化测试概述五、测试计划、设计与准备5.1测试流程回顾第一步:制定测试计划。该计划被批准后转向第二步。 第二步:设计测试用例。该用例被批准后转向第三步。 第三步:如果满足“启动准则” ,那么执行测试。第四步:撰写测试报告。第五步:消除软件缺陷。如果满足“完成准则”,那么正常结束测试。第五部分软件自动化测试概述五、测试计划、设计与准备制定测试计划设计测试用例执行测试撰写测试报告消除软件缺陷审批审批回归测试完成准则启动准则第五部分软件自动化测试概述五、测试计划、设计与准备测试启动准则同时满足以下条件,允许开始测试:(1)测试计划已经制定并且通过了审批;(2)测试用例已经设计并且通过了审批;(3)被测试对象已经开发完毕并等待测试第五部分软件自动化测试概述五、测试计划、设计与准备5.2测试计划:收集并组织测试计划信息,将软件细化为可检验的测试需求,建立测试计划(一)目标:沟通测试小组内部与外部的测试意图规定测试活动的范围、方法、资源和进度明确测试项目的特性测试要点测试任务细分任务进度以及负责人第五部分软件自动化测试概述五、测试计划、设计与准备(二)测试计划模板内容包括:(二)测试计划模板内容包括:1.测试阶段选择2.各测试阶段目标及要求测试目标:检测需求规格说明书中定义的所有需求是否已实现并达到要求。测试范围:需覆盖系统所有模块或相关接口,可将所有主要功能模块列举出来。技术(说明主要测试方法)3.各测试阶段资源要求及时间安排4.测试控制设计测试用例的原则测试过程与操作步骤测试过程中产生的记录Founder R&D第五部分软件自动化测试概述五、测试计划、设计与准备5.测试完成准则对于非严格系统可以采用“基于测试用例”的准则。同时满足以下条件允许结束测试:(1)功能性测试用例通过率达到100;(2)非功能性测试用例通过率达到90时。(3)满足需求规格说明书中的系统性能要求对于严格系统,应当补充“基于测试期缺陷密度”的规则:(3)相邻n个CPU小时内“测试期缺陷密度”全部低于某个值m。例如n大于10,m小于等于1。6.测试文档输出第五部分软件自动化测试概述五、测试计划、设计与准备(三)计划测试工作中,小组成员应该就那些问题达成一致?产品质量目标什么人/设备、任务/作用是什么、在哪里、如何联系/使用软件产品的术语,工作产品以及里程碑的定义团队之间的责任(组间协调)哪些要测试、哪些不要测试阶段的划分,测试阶段的进入/退出标准测试策略:使用的测试技术、测试工具、测试优先级Founder R&D第五部分软件自动化测试概述五、测试计划、设计与准备测试资源要求每一个测试员的任务分配测试用例设计和维护策略缺陷管理办法版本修改与提交的程序/方式/流程/频度/条件测试工作量和缺陷的度量测试过程中风险和问题如何解决第五部分软件自动化测试概述五、测试计划、设计与准备测试计划递交时间(四)测试模板第五部分软件自动化测试概述五、测试计划、设计与准备测试计划的模板第五部分软件自动化测试概述五、测试计划、设计与准备5.3 测试设计(一)测试设计步骤1、理解软件和测试目标2、设计测试用例3、运行测试用例并处理测试结果4、评估测试用例和测试策略Founder R&D第五部分软件自动化测试概述五、测试计划、设计与准备进行测试设计的时机:设计阶段是做测试计划和测试设计的最好时机。测试设计步骤既强调目的性也强调计划性目标是追求测试效率和测试结果文档化和按部就班一般会降低管理难度,增强计划性文档化和按部就班有时候会适得其反,尤其是扼杀测试人员的经验作用和灵感第五部分软件自动化测试概述五、测试计划、设计与准备(二)测试设计模板的内容包括:1.测试需求分析测试需求(如开发的主要目标、跨平台性要求等)测试内容简介及重点(选取的测试项,如安装测试、功能测试、性能测试、加密测试等)测试目标Founder R&D第五部分软件自动化测试概述五、测试计划、设计与准备2.测试环境及内容测试环境(硬件和软件)测试内容(测试项,如安装测试、功能测试、业务测试、加密测试、安全测试、性能测试、文档测试等)测试方法测试用例(可使用附件,初期可能只提供测试功能点,但在测试过程中应是不断完善的过程)测试工具(bug管理平台及其他测试工具等)第五部分软件自动化测试概述五、测试计划、设计与准备3.测试规划测试资源测试时间段测试规划(周期安排,可以用Project,每个周期的测试重点等)测试完成标准4.缺陷管理5.风险预测和防范第五部分软件自动化测试概述五、测试计划、设计与准备5.4测试用例没有标准文档格式(一)模板包含的内容:标题和编号、版本号、修改记录等模块功能名称设计可能有的操作(包括测试步骤和输入)预期输出和错误发现方法是否通过(是否与期望结果一致)与bug库对应的ID号Founder R&D(二)测试用例的设计:准备:设计说明书(特性,要求,验证标准)广泛地交流(对产品的充分理解)性能估算(说明书设计要求,已往的经验)第五部分软件自动化测试概述五、测试计划、设计与准备Founder R&D测试用例的选择应该满足:发现错误可能性大的输入数据或操作;被测程序的执行结果应该是可判定的;测试的执行过程和结果是可以再现的。要求:测试环境;步骤;标准等。第五部分软件自动化测试概述五、测试计划、设计与准备理解测试用例:测试用例是每一个测试员要做的最重要的工作从执行测试用例开始测试用例执行情况和效果应该可以被跟踪测试用例不应该有重复测试用例应该充分,足够多测试用例是证明真正进行过该项测试的证据Founder R&D第五部分软件自动化测试概述五、测试计划、设计与准备好的测试用例关键路径,可以重复使用全面的输入输出的设计需求/功能的覆盖性组织和管理测试用例应该形成测试用例库是总结和积累的过程第五部分软件自动化测试概述五、测试计划、设计与准备第五部分软件自动化测试概述五、测试计划、设计与准备测试用例递交时间(三)测试用例模板第五部分软件自动化测试概述五、测试计划、设计与准备测试用例模板第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板6.1接口与路径测试数据一般通过接口输入和输出,所以接口测试是白盒测试的第一步。每个接口可能有多个输入参数,每个参数有“典型值”、“边界值”、“异常值”之分,所以输入的组合数可能并不少。根据接口的定义,可以推断某种输入应当产生什么样的输出。输出包括函数的返回值和输出参数。如果实际输出与期望的输出不一致,那么说明程序有错误。白盒方式的接口测试和黑盒方式的功能测试,其方法十分相似。 第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板一个函数体内的语句可能只有十几条,但逻辑路径可能有成千上万条。想遍历测试几乎是不可能的,不测试或者胡乱找几条路径测试却又不行。 对于非严格系统而言,在分析路径方面化费很多精力是不值得的。我认为在构造接口测试的同时已经建立了测试路径。因为每一种输入将产生唯一的输出,输入与输出之间的路径也是唯一的。由于接口测试中的输入是有代表性的,因此相应的路径也具有代表性,不用得着费煞苦心地去找测试路径。第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板路径测试的检查表数据类型、变量值、逻辑判断、循环、内存管理、文件I/O、错误处理 由于接口测试是枚举的,有可能漏掉某些状况,导致一些重要的路径没有被测试。预防措施有:观察是否有程序语句从来没有被执行过。如果发生在这种情况,要么是程序有错误,存在无用的代码;要么是接口测试不充分,漏掉了一些路径。要特别留意函数体内的错误处理程序块(如果存在的话),这是最易被人疏忽的路径,隐患最多。 第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板接口与路径测试用例的参考模板第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板6.2功能测试功能测试的基本方法是构造一些合理输入(在需求范围之内),检查输出是否与期望的相同。如果两者不一致,即表明功能有误。也有例外的情况,如需求规格说明书中的某个功能写错了,而实际上软件的功能却是正确的,这时要更改的是需求规格说明书。 第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板功能测试看起来比较简单,只要看得懂需求规格说明书,谁都会做。难点在于如何构造有效的输入。由于输入空间通常是无限的,穷举测试显然行不通。那么随便输入一些东西,碰运气行不行? 功能测试有两种比较好的测试方法:等价划分法和边界值分析法。 等价划分是指把输入空间划分为几个“等价区间”,在每个“等价区间”中只需要测试一个典型值就可以了。等价划分法来源于人们的直觉与经验,可令测试事半功倍。 第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板“缺陷遗漏在角落里,聚集在边界上”。边界值测试法是对等价划分法的补充。如果A和B是输入空间的边界值,那么除了典型值外还要用A和B作为测试用例。 例如测试函数f(x)=根号(x) 。凭直觉,等价区间应是(0, 1)和(1, +)。可取典型值x=0.5以及x=2.0进行“等价划分”测试。再取 x=0以及x=1进行“边界值”测试。 第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板功能测试用例的参考模板第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板6.3健壮性测试健壮性是指在异常情况下,软件还能正常运行的能力。健壮性有两层含义:一是容错能力,二是恢复能力。 容错性测试通常构造一些不合理的输入来引诱软件出错,例如:(1)输入错误的数据类型。如“猴”年“马”月。(2)输入定义域之外的数值。如上海人常说的“十三点”第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板粗暴一些方式俗称“大猩猩”测试法。除了不能拳打脚踢嘴咬外,什么招术都可以使出来。例如在测试客户机服务器模式的软件时,把网络线拔掉,造成通信异常中断。 恢复测试重点考察一下几项:(1)系统能否重新运行;(2)有无重要的数据丢失;(3)是否毁坏了其它相关的软件硬件。 第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板健壮性测试用例的参考模板第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板6.4性能测试性能测试即测试软件处理事务的速度,一是为了检验性能是否符合需求,二是为了得到某些性能数据供人们参考(例如用于宣传)。 有时人们关心测试的“绝对值”,如数据送输速率是每秒多少比特。有时人们关心测试的“相对值”,如某个软件比另一个软件快多少倍。在获取测试的“绝对值”时,我们要充分考虑并记录运行环境对测试的影响。例如网络环境、计算机主频,总线结构和外部设备都可能影响软件的运行速度。第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板性能测试的一些注意事项:不要试图让人拿着钟表去测时间,应当编写一段程序用于计算时间以及相关数据。 应当测试软件在标准配置和最低配置下的性能。 为了排除干扰,应当关闭那些消耗内存、占用CPU的其它应用软件(如杀毒软件)。 不同的输入情况会得到不同的性能数据,应当分档记录。例如传输文件的容量从100K到1M可以分成若干等级。 由于环境的波动,同一种输入情况在不同的时间可能得到不同的性能数据,可以取其平均值。 第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板性能测试用例的参考模板第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板6.5用户界面测试绝大多数软件拥有图形用户界面。图形用户界面的测试重点是正确性、易用性和视觉效果。在评价易用性和视觉效果时,主观性非常强,应当考虑多个人的观点。第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板用户界面测试用例的参考模板: 第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板6.6信息安全测试信息安全性(security)是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。信息安全性测试有如下步骤:(1)为非法入侵设立目标,例如“盗窃某个文件”或“更改数据库记录”等。(2)邀请(或悬赏)一些人扮演黑客,让他们想尽办法入侵系统,实现“目标”。(3)如果有人成功了,请他详述入侵的过程。别忘了给予奖励。 第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板信息安全性测试用例的参考模板第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板6.7压力测试压力测试也叫负荷测试,即获取系统能正常运行的极限状态。了解“极限”是很有价值的,例如潜艇下潜极限深度。 压力测试的主要任务是:构造正确的输入,使劲折腾系统却让它刚好不瘫痪。压力测试的一个变种是敏感测试。在某种情况下,微小的输入变动会导致系统的表现(如性能)发生急剧的变化。敏感测试目的是发现什么样的输入可能会引发不稳定现象。第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板压力测试用例的参考模板第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板6.8可靠性测试可靠性是指在一定的环境下、在给定的时间内、系统不发生故障的概率。由于软件不像硬件那样可以“加速老化”,按此定义,软件可靠性测试可能会花费很长时间。 比较实用的办法是,让用户使用该系统,记录每一次发生故障的时刻。计算出相邻故障的时间间隔,注意要去掉非工作时间。这样我们可以方便地统计出不发生故障的“最小时间间隔”、“最大时间间隔”和“平均时间间隔”。其中“平均时间间隔”会让人们大体了解到系统“可靠”的程度。 第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板可靠性测试模板第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板6.9安装/反安装测试安装 / 反安装测试的目的:避免“大风浪都挺过来了,却在阴沟里翻了船” 目前市面上有非常流行的、专门制作安装/反安装程序的一些工具,如Install Shelled。制作安装/反安装程序不再是件难事,关键是不要麻痹大意。主要测试工作: (1)至少在标准配置和最低配置两种环境下测试;(2)如果有安装界面,应当尝试各种选项,如选择“全部”、“部分”、“升级”等。 第五部分软件自动化测试概述六、软件系统的主要测试内容、技术与测试用例模板安装/反安装测试模板测试的执行:建立一套完整的CASE管理,TASK管理系统。第五部分软件自动化测试概述七、测试的执行TEST PLANTEST SUITE1TEST RUN1TEST RUN2TEST RUN nTEST RUN nTEST RUN nTEST RUN nTEST TASK1TEST TASK2TEST TASK nTEST TASK nTEST TASK nTEST SUITE2TEST SUITE nTEST SUITE nTEST SUITE nTEST SUITE nTEST SUITE nModule 1Module 2Module nModule nModule nModule nCase 1Case 2Case nCase nCase nCase nFounder R&D第五部分软件自动化测试概述七、测试的执行测试的执行过程选择测试用例库中的测试用例运行选择新设计的测试用例运行记录中间步骤和结果记录下执行过程中的灵感但不要轻易修改本次执行任务对测试结果分析,并尽量重现和优化错误步骤详细填写缺陷报告并提供尽可能多的信息,尽可能提供错误分析和修改建议认真审核错误处理结果并及时关闭缺陷报告Founder R&D第五部分软件自动化测试概述八、改错8.1 要有勇气改错改错是个大悲大喜的过程,一天之内可以让人在悲伤的低谷和喜悦的颠峰之间跌荡起伏。如果改过了成千上万个程序错误,那么少男少女们不必经历失恋的挫折也能变得成熟起来。 软件中的错误通常只有开发者自己才能找出并改掉。如果因畏惧而拖延,会让你终日心情不定,食无味,睡不香。所以长痛不如短痛,要集中精力对付错误。 第五部分软件自动化测试概述八、改错8.2对症下药改错的第一步是找出错误的根源,如同医生治病,必须先找出病因才能“对症下药”。改错过程很像侦破案件,有些坏事发生了,而仅有的信息就是它的确发生了。我们必须从结果出发,逆向思考。一旦找到了根源,我们就知道如何改正了。有人问阿凡提:“我肚子痛,应该用什么药?”阿凡提说:“应该用眼药水,因为你眼睛不好,吃了脏东西才肚子痛。” 第五部分软件自动化测试概述八、改错根据软件错误的症状推断出根源并不是件容易的事,因为: (1)症状和根源可能相隔很远。也就是说,症状可能在某一个程序单元中出现,而根源实际上在很远的另一个地方。高度耦合的程序结构加剧了这种情况。 (2)症状可能在另一个错误被纠正后暂时性消失。 (3)症状可能并不是由某个程序错误直接引发的,如误差累积。 第五部分软件自动化测试概述八、改错(4)症状可能是由不太容易跟踪的人工错误引起的。 (5)症状可能时隐时现,如内存泄漏。 (6)很难重新产生完全一样的输入条件,难以恢复“错误的现场”。 (7)症状可能分布在许多不同的任务中,难以跟踪。人们把寻找错误根源的过程称为调试(debugging)。 第五部分软件自动化测试概述八、改错8.3硬件的调试方法硬件调试据说继承了中医的“望闻听切”诊断方法:(1)望,即用眼睛查看哪些地方是否有破损。(2)闻,即用鼻子闻哪些地方是否有烧焦的味道。(3)听,即用耳朵听哪些地方是否有异常的噪声。(4)切,即用手触摸哪些地方是否异常发烫。据有经验的电器修理工说,“望闻听切”这4招能解决大部分问题。通常软件改错要比硬件改错的代价低,因为后者经常抛弃原来的东西。第五部分软件自动化测试概述八、改错8.4 软件的调试方法软件调试的基本方法是“粗分细找”。对于隐藏得很深的Bug,我们应该运用归纳、推理、“二分”等方法先“快速、粗略”地确定错误根源的范围,然后再用调试工具仔细地跟踪此范围的源代码。如果没有调试工具,那么只好用“土办法”:在程序中插入打印语句如printf,观看屏幕的输出。 第五部分软件自动化测试概述八、改错有些时候,世界上最好的调试工具恐怕是那些有经验的人。我们经常会长时间地追踪某个Bug,苦恼万分。恰好有高手路过,被他一语“道破天机”,顿时沮丧的阴云就被驱散。改错的最大忌讳是“急躁蛮干”。人们常说“急中生智”,我不信。我认为大多数人着急了就会蛮干,早把“智”丢到脑后。不仅人如此,动物也如此。第五部分软件自动化测试概述八、改错8.5改错时的注意事项(1)找到错误的代码时,不要急于修改,先思考一下:修改此代码会不会引发其它问题?如果没有问题,可以放心修改。如果有问题,那么可能要改动程序结构,而不止一行代码。(2)有些时候,软件中可能潜伏同一类型的许多错误(例如由不良的编程习惯引起的)。好不容易逮住一个,应当乘胜追击,全部歼灭。第五部分软件自动化测试概述八、改错(3)在改错之后一定要马上进行回归测试,以免引入新的错误。改了一个程序错误固然是喜事,但要防止乐极生悲。更加严格的要求是:不论原先程序是否绝对正确,只要对此程序作过改动(哪怕是微不足道的),都要进行回归测试。(4)上述事情做完后,应当好好反思:我为什么会犯这样的错误?怎么能够防止下次不犯相似的错误?最好能写下心得体会,与他人共享经验教训。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号