版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章软件自动化测试1目录2软件自动化测试概述自动化测试的原理和方法软件自动化测试的开展选择自动化测试的方案第一节第二节第三节第四节软件自动化测试概述自动化测试自动测试的优点手工测试自动测试的缺点自动化测试44根据软件质量工程协会关于自动化测试的定义:自动化测试就是利用策略、工具等减少人工介入的非技术性、重复性、冗长的测试活动。软件自动化测试就是执行用某种程序设计语言编制的自动测试程序,控制被测试软件的执行,模拟手动测试步骤,完成全自动或者半自动的测试。01020304GOAL自动化测试全自动测试就是指在测试过程中,完全不需要人工干预,有程序自动完成测试的全部过程半自动测试就是指在自动测试的过程中,需要由人工输入测试用例或选择测试路径,再由自动测试程序按照人工制订的要求完成自动测试。手工测试6
通常,软件测试的工作量很大,会占到40%的开发时间,对于一些可靠性要求非常高的软件,测试时间甚至会占到开发时间的60%。手工测试在实际软件开发生命周期中,手工测试具有以下局限性:ABCDEF通过手工测试无法做到覆盖所有的代码路径简单的功能性测试用例在每一轮测试中都不能少,而且具有一定的机械性、重复性,工作量较大许多与时序、死锁、资源冲突、多线程等有关的错误,通过手工测试很难捕捉到;进行系统负载、性能测试时,需要模拟大量数据或大量并发用户等各种应用场合时,很难通过手工测试来进行进行系统高可靠性测试时,需要模拟系统运行达数年或数十年之久的情况,以验证系统能否稳定运行,这也是手工测试无法实现的如果有大量的测试用例,需要在短时间内完成,手工测试也很难做到F如果有大量的测试用例,需要在短时间内完成,手工测试也很难做到手工测试8测试步骤手工测试/小时自动化测试/小时改进百分率测试计划制定2240-82%测试程序开发26211755%测试执行4662395%测试结果分析1175850%错误状态/纠正监视1172380%报告生成961683%总持续时间109027775%自动测试的优点9BC提高了测试执行的速度,节省了时间提高了测试效率。手工测试存在效率问题,这在软件产品的研发后期尤其明显,因为随着产品的日趋完善,功能日渐增多,需要测试和检查的内容越来越多,很容易遗漏。加之产品发布日期日益临近,人工重复进行回归测试的难度加大,很难在短时间内完成大面积的测试覆盖提高了准确度和精确度。测试员尝试了几百个测试用例后,注意力可能会分散,并开始犯错误。而测试工具可以重复执行同样的测试,并毫无差错地检查测试结果E有的测试用例的测试条件需要的人数或设备数目很大,或者模拟的条件很苛刻,现实无法实现,测试工具却可以模拟这种情况F具有一致性和可重复性,有利于解决测试与开发之间的矛盾;D更好地利用资源。手工测试需要测试人员在场,而自动测试可以7×24小时随时工作。还可以使位于全球不同地点、不同时区的团队监视和控制测试,提供全球时区的覆盖;G修改性比较低,经济角度考虑,也更有优越性A10自动测试的缺点自动测试缺点软件自动测试并不能代替人的工作,尤其是带有智力性质的手工测试测试用例的设计,测试人员的经验和对错误的猜测能力是工具不可替代的界面和用户体验测试,人类的审美观和心理体验是工具不可模拟的正确性的检查,人们对是非的判断和逻辑推理能力是工具不具备的软件测试自动化可能降低测试的效率自动测试并非像测试工程师所期望的那样能发现大量的错误技术问题、组织问题和脚本维护第二节自动化测试的原理和方法自动化测试的原理和方法12直接对代码进行静态和动态的分析软件测试自动化实现的基础是可以通过设计特殊程序来模拟测试工程师对计算机的操作过程、操作行为,或者类似于编译系统那样的对计算机程序进行检查。测试过程的捕获和回放测试脚本技术虚拟用户技术和测试管理技术原理和方法代码分析13代码分析类似于高级语言编译系统,一般针对不同的高级语言去构造相应的分析工具,在工具中定义类、对象、函数、变量等规则、语法规则;在分析时对代码进行语法扫描,找出不符合编码规范的地方;根据某种质量模型评价代码质量,生成系统的调用关系图捕捉回放14捕捉和回放则是一种黑盒的测试的自动化方法。捕获是将用户的每一步操作都记录下来。这种记录的方式有两种:一种是记录程序用户界面的像素坐标或程序显示对象(窗口、按钮、滚动条)的位置,另一种方式是记录相应的操作、状态变化或是属性变化。所有的记录转换为一种脚本语言所描述的过程,以模拟用户的操作。回放时,将脚本语言所描述的过程转化为屏幕上的操作,然后将被测系统的输出记录下来同预先给定的标准结果比较。录制回放15
所谓“录制/回放”就是先由手工完成一遍需要测试的流程,同时由计算机记录下这个流程期间客户端和服务器端之间的通信信息,这些信息通常是一些协议和数据,并形成特定的脚本程序。然后在系统的统一管理下同时生成多个虚拟用户,并运行该脚本,监控硬件和软件平台的性能,提供分析报告或相关资料。这样通过几台机器就可以模拟出成百上千的用户对应用系统进行负载能力的测试。录制回放16录制回放过程测试工具读取测试脚本,激活被测试软件,然后执行被测试软件测试工具执行的操作以及有效输入到被测试软件中的信息和测试脚本中描述的一样。在测试过程中,被测试软件读取初始阅读文档中的初始数据,在执行脚本中的命令后将最后结果输出到编辑文档中测试过程中,日志文件也随之生成,里面包括测试运行中的所有重要信息,通常日志文件包括运行时间、执行者、比较结果以及测试工具按照脚本命令要求输出的任何信息。脚本技术17脚本是一组测试工具执行的指令集合,也是计算机程序的一种形式。脚本可以通过录制测试的操作产生,然后再做修改,这样可以减少脚本编程的工作量。当然也可以直接用脚本语言编写脚本。脚本语言和编程工具语言非常相似,更接近于网页脚本语言。它有自己的语法规则、保留字等。也遵循着软件工程的原则,需要考虑结构化设计和文档的健全编写。
脚本中包含的是测试数据和指令,一般包括如下信息:同步(何时进行下一个输入);比较信息(比较内容、比较标准);捕获何种屏幕数据及存储在何处;从哪个数据源或从何处读取数据;控制信息。脚本技术18脚本技术分类是数据驱动脚本的逻辑扩展关键字驱动脚本是录制手工执行的测试用例得到的脚本线性脚本类似于结构化程序设计,具有各种逻辑结构(顺序、分支、循环),而且具有函数调用功能;结构化脚本是指某个脚本可被多个测试用例使用,即脚本语言允许一个脚本调用另一个脚本共享脚本将测试输入存储在独立的数据文件中数据驱动脚本自动比较19在自动化比较之前的活动是准备期望输出,根据输入计算或估计被处理的输入所产生的输出,然后在期望输出和实际输出之间进行比较。在这里,产生比较错误的一个可能就是期望输出中有错误,这样测试的一部分报告会显示比较结果中此处有比较差,这是测试错误,而非软件错误。
自动比较包括:静态比较与动态比较;简单比较与复杂比较;敏感性测试比较和健壮性测试比较;比较过滤器。第三节软件自动化测试的开展引入原则成本人员要求生命周期导入时机确定对象、范围软件自动化测试的开展21在进行自动测试之前,先要考虑以下5个方面的问题测试自动化类似于软件开发过程测试自动化是一个长期的过程确保测试自动化的资源,包括人员和技能循序渐进地开展自动测试确保测试过程的成熟度软件自动化测试的引入原则22对软件测试自动化之前,通常已经有许多已实现的、详细的手工测试用例,从中选择可以自动化的手工测试用例进行自动化。自动化已经实现的手工测试用例在对某一应用进行自动化测试之前,首先需要确保该应用足够稳定自动化对稳定应用进行的测试对软件进行的性能测试,包括在不同的系统负载下进行的测试。这些测试需要采用工具辅助完成,非常适合自动化;自动化性能测试从软件测试自动化的目的知道,软件测试自动化所获得的好处来自于自动化测试工具的重复使用,回归测试应该作为自动化测试的首要目标自动化回归测试如果一个测试经常使用,并且使用这个测试不方便,那么就应该考虑自动化这个测试。自动化重复性测试软件自动化测试的生命周期23自动化测试生命周期方法ATLM(AutomatedTestingLifecycleMethodology)为包括6个主要过程:612345自动化测试决策自动化测试工具获取自动化测试引入过程测试项目评审自动化测试的执行和管理自动化测试计划设计和开发自动化测试决策24在这一阶段,企业要根据自身的实际情况分析算法应该引入自动化测试,客服不正确的自动测试期望,认识得到自动化测试的好处;同时,测试工程师需要列出自动化测试工具的备选方案,以获得管理层的支持。01020304GOAL01020304GOAL自动化测试工具获取25在得到决策者的支持之后,测试工程师要选择合适的测试工具来支持自动化测试。首先,测试工程师要审查企业系统,制订一个工具的评审标准,确保测试工具与本企业内部操作系统、编程语言以及其他技术环境尽可能多的兼容。然后,要评审可以得到的测试工具,选择一个或多个特定的获选测试工具。最后,确定测试工具,与工具供应商联系产品演示事宜,如果有可能,对全体测试人员进行测试工具的培训。自动化测试引入过程26自动化测试的引入过程主要就是分析测试过程的目标、目的和策略,然后验证测试工具是否能够支持大多数项目的测试需求。测试过程分析确保整个测试过程和测试策略适当,必要时可以加以改进,以便成功地引入自动化测试。测试工具考察阶段,测试工程师根据测试需求、可用的测试环境和人力资源、用户环境、平台以及被测的应用产品特性,研究将自动化测试工具或使用程序引入测试是否对项目有好处。01020304GOAL自动化测试计划、设计和开发27在测试计划阶段,要特别注重确定测试的文档,制订能够达到测试目的和支持测试环境的计划,编制测试计划文档。它包括风险评估、鉴别和确定测试需求的优先级,估计测试资源的需求量,开发测试项目计划以及给测试小组成员分配测试职责。01020304GOAL自动化测试计划、设计和开发28测试设计阶段需要确定所要执行的测试数目、测试方法,必须执行的测试条件以及需要建立和遵循的测试设计标准;测试开发,即开发自动化测试脚本,为了使自动化测试可重用、可维护、可扩展,必须定义和遵循测试开发的标准。01020304GOAL自动化测试的执行和管理29在这个阶段,测试人员必须根据测试的日常安排来执行测试脚本,并改善这些脚本。在这个过程中还必须评审测试的结果,以避免错误的结果。系统的问题应该通过系统问题报告记录在案,并帮助开发人员理解和重视这些问题。最后,测试团队需要进行回归测试来追踪和关闭这些问题。01020304GOAL自动化测试项目评审30测试项目的评审必须贯穿于整个自动化测试的生命周期,以利于测试活动的不断改进,必须有想应的标准来衡量评审的效果。01020304GOAL自动化测试的执行和管理31在这个阶段,测试人员必须根据测试的日常安排来执行测试脚本,并改善这些脚本。在这个过程中还必须评审测试的结果,以避免错误的结果。系统的问题应该通过系统问题报告记录在案,并帮助开发人员理解和重视这些问题。最后,测试团队需要进行回归测试来追踪和关闭这些问题。01020304GOAL软件自动化测试的成本32应该能抽出专职的测试人员进行自动测试脚本的开发,并且抽调的测试人员不会对已有的手工测试人员造成影响,需要保证自动测试的开展不会影响到手工测试的正常进行。自动测试可能需要额外的测试设备,例如,测试执行的机器、文件服务器、数据库等。应该能为自动测试准备。软件自动化测试的成本33有引入测试工具或开发测试工具的成本预算,缺乏工具的自动测试是不可能实现的。在开始一个项目的自动测试之前应该进行测试工具的引入准备、开展测试工具的培训工作等。成功开展自动化测试必须考虑自动测试的成本问题。成本包括测试人员、测试设备、测试工具等。某些项目选用了很多第三方控件或自定义的控件,而这些控件的可测试性非常差,那么对这个项目进行自动测试的成本会非常高,不适宜进行自动测试。自动测试只有在多次运行后,才能体现出自动化的优势,只有不断地运行自动测试,才能有效预防缺陷,减轻测试人员手工的回归测试的工作量。如果一个项目是短期的,并且是一次性的项目,则不适合开展自动测试,因为这种项目得不到自动测试的应有效果和价值体现。过早的自动化也会带来维护成本的增加,因为早期的程序员界面一般不够稳定,处于频繁更改的状态,这时候进行自动测试往往得不偿失,疲于应付“动荡”的界面。在开发人员着手开发一些核心代码时,可能会同时开发一些核心可重用的控件,而且是那种自定义的个性化控件,那么就需要在这个阶段取到这些控件,并且尝试使用自动化工具来测试这些控件。软件自动化测试的导入时机软件自动化测试的人员要求35R此外,自动测试工程师与手工测试的工程师一样,需要具备设计测试用例的基本方法和能力,具备软件设计的基本业务的理解能力。而且,应该有把测试用例转换成自动测试用例的能力。了解各种编程语言、编程工具以及各种标准控件、第三方控件,也会对自动化测试脚本的编写大有裨益。自动测试工程师应该具备一定的自动测试基础,包括自动测试工具的基础、自动测试脚本的开发基础知识等;还需要了解各种测试脚本的编写和设计方法,知道在什么时候选取什么样的测试脚本开发方式,知道如何维护测试脚本;需要具备一定的编程技巧,熟悉某些测试脚本语言的基本语法和使用方式。软件自动化测试存在的问题不现实的期望缺乏经验期望自动测试发现大量的缺陷安全性错觉组织问题自动化测试的维护性技术问题010203确定自动化测试的对象和范围37在开始自动化测前,需要花很大的精力取得管理层的承诺。自动化一般要耗费大量的工作量,也并非一次性活动。自动化的测试用例还需要维护,知道产品退出市场。由于开发和维护自动化工具需要大量的工作量,因此取得管理层的承诺是一项很重要的活动。为了符合“重要的事情先做”的原则,重要的是要首先自动化产品的关键和基本功能。为此,所有测试用例都要根据客户预期分为高、中、低优先级,自动化要从高优先级的测试用例入手,然后覆盖中、低优先级需求的测试用例。
作为自动化范围的总结,就是要选择自动化那些能够以最少的时间延迟换取最大投入回报的工作。8.4
选择自动化测试的方案38项目的影响:自动化测试能否对项
目进度、覆盖率、风险有积极的作用,或者让开发更具敏捷时间:自动化测试的实现需要多少时间?复杂度:自动化测试是否易于实现(包括数据和其他环境的影响)?早期需求和代码的稳定性:需求或早期代码是否能证明是在一定范围内变化的?维护工作量:代码是否能长期保持相对稳定?功能特性是否会进化?覆盖率:自动化测试能否覆盖程序的关键特性和功能?资源:测试组是否拥有足够的人力资源、硬件资源和数据资源来运行自动测试?自动测试执行:负责执行自动测试的小组是否拥有足够的技能和时间去运行自动测试
使用简单的录制回放的方法,测试工程师使用这种方法来自动地测试系统的流程或某些系统测试用例。它可能包含某些多余的,有时候并不需要的函数脚本,但录制与回放可避免重复执行测试用例。
由于所录制的脚本可以回放很多次,所以可以减少测试工作。除了可以避免重复工作,录制和保存脚本也很简单。但是这一代工具也有一些缺点。脚本中可能包含一些硬编码的取值,因此很难执行一般类型的测试。脚本编写方法录制与回放脚本编写方法40结构化结构化脚本的编写方法在脚本中使用结构控制。结构控制让测试人员可以控制测试脚本,或测试用例的流程。在脚本中,典型的结构控制是使用“if-else”,“switch”,“for”,“while”等条件状态语句来帮助实现判定,实现某些循环任务,调用其他覆盖普遍功能的函数。脚本编写方法41结构化商业策略测试用例在脚本中定义。需要测试员的调整编码技巧编程的成本要比录制回放编写方法略高一点。需要某种程度上的计划、设计脚本编写方法42R结构化测试数据也是在脚本中被硬编码因为相对稳定一点,所有需要相对少的脚本维护,维护成本比录制回放脚本编写方法的要相对低。处理编程知识外,还需要一些脚本语言的知识。脚本编写方法数据驱动数据驱动脚本编写方法把数据从脚本分离出去,存储在外部的文件中。这样,脚本就只是包含编程代码了。这在测试运行时要改变数据的情况下是需要的。这样,脚本在测试数据改变的情况下也不需要修改代码。有时候,测试的期待结果值也可以跟测试输入数据一起存储在数据文件下脚本编写方法44需要更多的计划和设计。数据独立存储在数据表或外部文件中。脚本维护成本较低。推荐在需要测试正反数据时候使用。数据驱动脚本编写方法的特点脚本的结构化的方式编程的。测试用例由测试数据或脚本定义。由于脚本参数化和编程成本,这种方法的开发成本跟结构化脚本编写方法比较要相对高。需要测试人员较高
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 特教语文老师模拟考试试题及答案
- 2026准大一暑期抢跑计划:大学高数与高中知识断层修补自学路线图
- 告别拖延症:适用于初中高中生的自律系统搭建与假期时间规划
- 临床过敏性休克急诊急救专项护理
- 宁夏幼儿园管理形考作业1-4答案21
- 慢性乙型肝炎的一线治疗选择2
- 第五章小城镇专项规划
- 平面向量的坐标表示
- 盐城市建湖县近湖街道社区工作者招聘考试题目
- 银行员工思想动态分析报告(3篇)
- 成都市工程建设项目-多测合一- 技术细则(试行)
- 新媒体时代的全媒体运营师角色试题及答案
- 江苏省南京市(2024年-2025年小学六年级语文)部编版小升初真题((上下)学期)试卷及答案
- 新能源行业深度合作协议
- 复变函数与积分变换课程教案讲义
- 《网络数据安全管理条例》课件
- 系统商用密码应用方案v5-2024(新模版)
- 医疗器械风险管理控制程序
- 体能训练法课程教案、教案课程
- 物业品质检查总结报告
- 幼儿老师法律知识讲座
评论
0/150
提交评论