8 自动化测试工具
- 格式:pdf
- 大小:202.78 KB
- 文档页数:29
软件自动化测试基础自动化测试基础•自动化测试的意义•自动化测试的原理和方法•自动化测试工具的优势•软件自动化测试生存周期方法学•自动化测试的问题自动化测试的意义•软件自动化测试是相对手工测试而存在的,主要是通过所开发的软件测试工具、脚本等来实现,具有良好的可操作性、可重复性和高效率等特点。
–一是手工测试的局限性;–二是软件自动化测试所带来的好处。
手工测试的局限性•通过手工测试无法做到覆盖所有代码路径。
•简单的功能性测试用例在每一轮测试中都不能少,而且具有一定的机械性、重复性,工作量往往较大。
•许多与时序、死锁、资源冲突、多线程等有关的错误,通过手工测试很难捕捉到。
•进行系统负载、性能测试时,需要模拟大量数据或大量并发用户等各种应用场合时,很难通过于工测试来进行。
•进行系统可靠性测试时,需要模拟系统运行10年、几十年,以验证系统能否稳定运行,这也是手工测试无法模拟的。
•如果有大量(几千)的测试用例,需要在短时间内(1天)完成,手工测试几乎不可能做到。
自动化测试带来的好处•缩短软件开发测试周期,可以让产品更快投放市场。
•测试效率高,充分利用硬件资源。
•节省人力资源,降低测试成本。
•增强测试的稳定性和可靠性。
•提高软件测试的准确度和精确度,增加软件信任度。
•软件测试工具使测试工作相对比较容易,且能产生更高质量的测试结果。
•手工不能做的事情,自动化测试能做,如负载、性能测试。
自动化测试的定义和引入•自动化测试的定义:使用一种自动化测试工具来验证各种软件测试的需求,它包括测试活动的管理与实施、测试脚本的开发与执行。
•自动化测试和手工测试的范围自动化测试绝不能代替手工测试,它们各有各自的特点,其测试对象和测试范围都不一样:–在系统功能逻辑测试、验收测试、适用性测试、涉及物理交互性测试时,多采用黑盒测试的手工测试方法。
自动化测试的定义和引入–单元测试、集成测试、系统负载测试、性能测试、稳定性测试、可靠性测试等比较适合采用自动化测试。
–那种不稳定软件的测试、开发周期很短的软件、一次性的软件等不适合自动化测试。
–工具本身并没有想象力和灵活性,根据报道,自动化测试只能发现15%的缺陷,而手工测试可以发现85%的缺陷。
–自动化测试工具在进行功能测试时,其准确的含义是回归测试工具,这时工具不能发现更多的新问题,但可以保证对已经测试过部分的准确性和客观性。
自动化测试的定义和引入•通常,当软件开发过程具有下列情况时,就需要考虑引入自动化测试:1)测试用例的生成,包括测试输入、测试输出、测试操作指令等;2)测试的执行与控制,包括单机运行和网络多机分布式的运行,在节假日的运行,测试个案调用控制,测试对象、测试范围与测试版本的控制等;3)测试结果与标准输出进行对比;4)不吻合预期的测试结果的分析、记录、分类和报告5)总体测试状况的统计及报表的产生。
自动化测试的定义和引入•自动化测试应用–找准自动化测试的切入点–把测试开发纳入整个软件开发系统–自动化测试依赖测试流程和测试用例–软件测试自动化的投入较大–进行资源的合理调度自动化测试的原理和方法•软件测试自动化实现的基础是可以通过设计的特殊程序模拟测试人员对计算机的操作过程、操作行为,或者类似于编译系统那样对计算机程序进行检查。
1)代码分析2)捕获和回放3)脚本技术4)自动比较自动化测试工具的作用及优势•自动化测试工具的作用:(1)确定系统最优的硬件配置。
(2)检查系统的可靠性。
(3)检查系统硬件和软件的升级情况。
(4)评估新产品。
自动化测试工具的作用及优势•自动化测试工具的优势主要体现在以下几个方面:(1)记录业务流程并生成脚本程序的能力。
(2)对各种网络设备(客户机或服务器、其它网络设备)的模仿能力。
(3)用有限的资源生成高质量虚拟用户的能力。
(4)对于整个软件和硬件系统中各个部分的监控能力。
(5)对于测试结果的表现和分析能力。
软件自动化测试生存周期方法学自动化测试生存周期方法学1. 自动化测试决定2. 测试工具获取3. 自动化测试引入过程4. 测试计划、设计与开发5. 测试执行与管理6. 测试评审与评估图自动化测试生存周期方法学结构软件自动化测试生存周期方法学•采用自动化测试方法的确认•自动化测试工具的获取•自动化测试的引入阶段——包括测试过程分析和测试工具的考查。
•测试计划与测试设计——包括制订测试计划、建立测试环境、测试设计和设计开发。
•测试执行与管理•测试活动评审与评估自动化测试生存周期方法的应用自动化测试生存周期方法学1. 自动化测试决定2. 测试工具获取3. 自动化测试引入过程4. 测试计划、设计与开发5. 测试执行与管理6. 测试评审与评估A. 系统生存周期过程评估与改进F. 生成维护阶段 C. 小型工具先导/原型D. 系统设计与开发阶段B. 业务分析与需求阶段E.组装与测试阶段自动化测试存在的一些问题•不正确的观念或不现实的期望•缺乏具有良好素质和有经验的测试人才•测试工具本身的问题影响测试的质量•没有进行有效、充分的培训•不考虑公司的实际情况、盲目引入测试工具•没有形成一个良好的测试工具使用环境•其他技术问题和组织问题测试自动化限制测试自动化可以带来非常明显的收益,但也有以下限制:–不能取代手工测试–手工测试比自动测试发现的缺陷更多–对测试质量的依赖性极大–测试自动化不能提高有效性–测试自动化可能会制约软件开发。
–工具本身并无想象力建立正确的自动化测试目标–测试计划产生:主要靠测试工程师与软件生产质量保证专家的合作,自动化工具只能起到一定的辅助作用。
–一种测试工具不完全适用于所有测试–自动测试不一定减轻工作量–测试进度可能不一定缩短–测试工具不一定易于使用–自动化测试的普遍应用存在局限–测试覆盖率不会达到百分之百软件自动化测试工具简述•自动化测试工具的特征•自动化测试工具的分类•选择自动化测试工具自动化测试工具的特征•支持脚本化语言(Scripting Language)•对程序界面中对象的识别能力•支持函数的可重用•支持外部函数库•抽象层—将程序界面中的对象实体映射成逻辑对象•分布式测试(Distributed Test)的支持•支持数据驱动测试(Data-Driven Test)•错误处理•调试器(Debugger)•源代码管理•支持脚本的命令行(Command Line)方式自动化测试工具的分类测试工具可以从两个不同的方面去分类。
•根据测试方法不同,自动化测试工具可以分为:白盒测试工具、黑盒测试工具•根据测试的对象和目的,自动化测试工具可以分为:单元测试工具、功能测试工具、负载测试工具、性能测试工具、Web测试工具、数据库测试工具、回归测试工具、嵌入式测试工具、页面链接测试工具、测试设计与开发工具、测试执行和评估工具、测试管理工具等白盒测试工具•白盒测试的自动化工具可分为静态测试工具和动态测试工具。
–静态测试工具——是在不执行程序的情况下,分析软件的特性。
静态分析主要集中在需求文档、设计文档以及程序结构方面。
按照完成的职能不同,静态测试工具包括以下几种类型:(1)代码审查(2)一致性检查(3)错误检查(4)接口分析(5)输入输出规格说明分析检查(6)数据流分析(7)类型分析(8)单元分析(9)复杂度分析白盒测试工具–动态测试工具——是直接执行被测程序以提供测试活动。
它需要实际运行被测系统,并设置断点,向代码生成的可执行文件中插入一些监测代码,掌握断点这一时刻程序运行数据(对象属性、变量的值等),具有功能确认、接口测试、覆盖率分析、性能分析等性能。
动态测试工具可以分为以下几种类型:(1)功能确认与接口测试(2)覆盖测试(3)性能测试(4)内存分析–常用的动态工具有:Compuware公司的DevPartnerIBM公司的Rational Purify黑盒测试工具•按照完成的职能不同,黑盒测试工具可以分为:–功能测试工具——用于检测程序能否达到预期的功能要求并正常运行。
–性能测试工具——用于确定软件和系统的性能。
•常用的黑盒测试工具有:Compuware公司的QACenterIBM公司的Rational TeamTest测试设计与开发工具•测试设计是说明被测软件特征或特征组合的方法,并确定选择相关测试用例的过程。
•测试开发是将测试设计转换成具体的测试用例的过程。
•测试设计和开发需要的工具类型有:–测试数据生成器–基于需求的测试设计工具–捕获/回放–覆盖分析测试执行和评估工具•测试执行和评估是执行测试用例并对测试结果进行评估的过程,包括选择用于执行的测试用例、设置测试环境、运行所选择的测试用例、记录测试执行过程、分析潜在的故障,并检查测试工作的有效性。
•评估类工具对执行测试用例和评估测试结果过程起到辅助作用。
•测试执行和评估类工具有:–捕获/回放–覆盖分析–存储器测试测试管理工具•测试管理工具用于对测试过程进行管理,帮助完成制定测试计划,跟踪测试运行结果。
通常,测试管理工具对测试计划、测试用例、测试实施进行管理,还包括缺陷跟踪管理等。
•常用的测试管理工具有:IBM公司的Rational Test Manager•测试管理工具包括以下内容:–测试用例管理–缺陷跟踪管理(问题跟踪管理)–配置管理选择自动化测试工具•测试人员在选择和使用自动化测试工具时,可以从以下角度来考虑:–按照用途选择匹配的测试工具–在适当的生命周期选择测试工具–按照测试人员的实际技能选择匹配的测试工具–选择一个可提供的测试工具常用测试工具•目前,软件测试方面的工具很多,主要有MercuryInteractive(MI)、Rational、Compuware、Segue和Empirix等公司的产品,而MI公司和Rational公司的产品占了主流。