自动化测试理念培训_第1页
自动化测试理念培训_第2页
自动化测试理念培训_第3页
自动化测试理念培训_第4页
自动化测试理念培训_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、自动化测试理念培训自动化测试理念培训深圳市雁联计算系统有限公司测试工作现状问题我们做了很多重复性的事情,这个过程需要很多时间吗?“是” 总有更多的东西需要测试,但是随着最终期限和产品交付日期的日益迫近,分配给每个测试周期的时间缩短了。常见的情况,只好将整个测试周期的注意力集中到验证已修复的缺陷上,无法完全清楚地知道产品的总体质量。2自动化测试的体系3自动化测试阶段4集成测试系统测试业 务 测试用例UAT测试自 动 测 试用例单元测试回归测试自动化测试过程中涉及内容l测试驱动,桩和驱动数据的自动生成:主要是依据所采用的测试方法,如等价类,边界值等自动产生多组测试数据。(详见驱动与桩)l自动测试输

2、入:工具录制测试者所做的所有操作,并将这些操作写成工具可以识别的脚本。被录制的脚本中含有测试输入(包括文本和鼠标移动,点击菜单和按钮等动作)l测试脚本技术:用于自动测试过程存放测试步骤,测试数据等相关内容。l测试结果的自动比较:将与其输出与程序运行过程中的实际输出进行比较l自动测试执行:工具读取脚本并执行脚本命令,可以重复测试者的操作。在执行脚本过程中可以完成测试结果的自动比较。l自动测试管理:完成测试计划,测试大纲,测试缺陷等工作。5桩模块和驱动模块(以C语言为例)模块结构实例图:假设现在项目组把任务分给了7个人,每个人负责实现一个模块。你负责的是B模块,你很优秀,第一个完成了编码工作,现在

3、需要开展单元测试工作,先分析结构图:1、由于B模块不是最顶层模块,所以它一定不包含main函数(A模块包含main函数),也就不能独立运行。2、B模块调用了D模块和E模块,而目前D模块和E模块都还没有开发好,那么想让B模块通过编译器的编译也是不可能的。6桩模块和驱动模块1、写两个模块Sd和Se分别代替D模块和E模块(函数名、返回值、传递的参数相同),这样B模块就可以通过编译了。Sd模块和Se模块就是桩模块。2、写一个模块Da用来代替A模块,里面包含main函数,可以在main函数中调用B模块,让B模块运行起来。Da模块就是驱动模块。7桩测试和驱动测试的基本概念渐增式和非渐增式将若干个模块连接成

4、一个可运行的系统通常有两种方式:一种是“非渐增式”,即先独立地测试每一模块,然后将所有这些模块连接到一起运行;另一种是“渐增式”,即在已测试过的N个模块的基础上再增加一个模块,再对N十1个模块进行测试。非渐增式非渐增式是先分别测试6个模块A、B、C、D、E、F,然后将 6个模块连接到一起再进行测试。若用这种方式,在测试某个模块X时,需要为它设计一个驱动模块和若干个桩模块。驱动模块的作用是模拟X的调用模块,桩模块的作用是模拟X的下层模块。8桩测试和驱动测试的基本概念渐增式它不是分别测试每个模块,而是逐步将要测试的模块同已测试的模块连接起来。若用渐增方式,模块测试和联合测试这两步是结合起来进行的。

5、渐增式又有“由顶向下”、“由底向上”等多种。若采用“由顶向下”的方式,如本例中则是先测试模块 A,此时需为模块A准备三个桩模块,然后并行或顺序的测试模块B或模块D,测试时需要准备模块B和模块D的桩模块。9渐增式与非渐增式的比较1.通常情况下,非渐增式要比渐增式消耗更多的人工。2.非渐增式不需要为每一个模块都需要建立驱动模块和桩模块,可以利用已有的测试模块来进行测试。3.渐增式可以较早地发现模块界面之间的错误,非渐增式则要到最后将所有模块连接起来时才能发现这类错误。4.渐增式有利于排错。如果模块界面间有错,如果用非渐增式,这类错误要到最后联合测试时才能发现,此时很难判断错误发生在程序的哪一部分,

6、但如果用渐增式,这类错误就较容易定位,它通常与最新加上去的那个模块有关。5.渐增式比较彻底。6.渐增式需要较多的机器时间。7.非渐增方式,在开始时允许几个测试人员并行工作。10测试顺序的选择的关键1.尽早测试关键的模块。所谓关键的模块是指较复杂、较可能出错或含有新的算法的模块。2.尽早测试包含输入输出操作的模块。因为这些模块被测试后,向程序送入测试数据以及检查输出结果就方便了。3.同一个项目中可以进行多层次划分,同时应用自顶向下和自底向上的测试方法。11测试工作进度测试工作进度自动化自动化测试实施测试实施l被测试软件的测试方法选择l自动化测试实施前的准备工作(接口)l自动化测试流程(1输出脚本

7、模板2执行回归)l测试记过输出脚本模板生成流程图(1生成测试脚本,2测试输出结果与预期结果比较)12常用工具常用工具介绍介绍1.代码分析器:监督程序代码复杂度,是否遵循标准等2.覆盖分析器:校验那一部分代码已经被测试,面向代码语句覆盖,条件覆盖,路径覆盖等3.内存分析器:边界检查和漏洞检测等4.性能测试工具:测试在不同负载级别下(c/s,b/s)应用程序等5.WEB测试工具:检验链接是否有效,客户和服务器端的代码,web站点的交互是否正常工作6.其他工具:测试实例管理,文件管理,bug管理,配置管理13自动测试输入l对于支持命令行的软件系统,采用批处理方式是最好的测试用例自动化输入方式l对于不

8、支持命令行的软件系统,一般来说可以采用商用化录制回放测试工具生成输入脚本,或自己编制测试用例输入脚本14自动比较l简单比较l复杂比较l动态比较l执行后比较15测试结果输出和转储测试结果输出一般有以下形式:1.基于磁盘的输出:包括数据库,文件盒目录/文件夹;2.基于屏幕的输出:主要是文本和特殊图形字符,图形图像等;3.多媒体信息的输出:包括不易比较的测试输出形式如播放的声音,显卡的视频等; 4.通讯报文的输出:主要是网络中传送的通讯报文, 一般以帧形式出现1617测试流程测试流程18测试计划测试计划测试计划测试计划测试计划测试计划测试计划测试计划测试设计测试设计测试设计测试设计测试设计测试设计测

9、试设计测试设计测试设计测试设计测试设计测试设计测试构建测试构建测试构建测试构建测试构建测试构建测试构建测试构建测试执行测试执行测试执行测试执行测试执行测试执行测试执行测试执行测试评估和报告测试评估和报告测试评估和报告测试评估和报告测试评估和报告测试评估和报告测试评估和报告测试评估和报告问题和缺陷跟踪问题和缺陷跟踪度量度量配置管理配置管理问题和缺陷跟踪问题和缺陷跟踪度量度量配置管理配置管理测试流程测试流程19自动化测试工程师自动化测试工程师环境支持环境支持测试经理测试经理业务测试人员业务测试人员软件工程师软件工程师测试计划测试计划测试方案测试方案交易分支交易分支模板模板交易分支交易分支用例设计用

10、例设计业务测试业务测试用例设计用例设计测试场景测试场景设计设计交易分支用例交易分支用例自动化构建自动化构建业务流用例业务流用例自动化构建自动化构建测试执行测试执行场景构建场景构建自动化自动化执行执行测试执行测试执行分析分析测试执行测试执行分析分析修复修复缺陷缺陷测试分析测试分析报告报告被测系统被测系统环境构建环境构建测试环境测试环境管理管理手工手工执行执行20测试用例库系统的目标测试用例库系统的目标21自动化测试原理l自动化测试的实现,是为测试人员的工具箱新增一件利器,当然它无法取代测自动化测试的实现,是为测试人员的工具箱新增一件利器,当然它无法取代测试人员的地位,但仍然毫无疑问地具有强大功能

11、,它能在测试效率和彻底性方试人员的地位,但仍然毫无疑问地具有强大功能,它能在测试效率和彻底性方面使我们获益匪浅。面使我们获益匪浅。22OKFind运行脚本运行脚本报告缺陷报告缺陷观察测试日志观察测试日志重复重复制作脚本制作脚本明确验证点明确验证点定义测试用例定义测试用例自动化测试错误的思路231、所有的测试都能够实现自动化! 2、既然自动化测试能如此显著地提高生产率,我们就能以更少的人员完成所有的测试(精减人员)。 3、自动化测试如此简单,我们无需任何培训。 4、自动化方法将缩减每一次测试工作量。 5、我们无需制订任何测试方案。 6、有了自动化测试,测试人员不就成了过时的或多余的了吗? 7、那

12、种耗时的测试设计工作不再必要了。自动化测试用武之地24 “用武之地用武之地” 1、从高度重复的任务或环境开始考虑; 2、将乏味且人工容易出错的工作进行自动化; 3、首先关注开发成熟、理解透彻的用例或环境; 4、优先选择应用中相对稳定的部分,而非易变的部分; 5、将重复的测试自动化,为其他方法的测试赢得更多时间; 6、谨慎规划,将人工测试和自动测试分工,不能全盘自动化 。25测试测试执行环境执行环境26前端前端主机主机系统参数系统参数系统参数系统参数多套不同机构环境多套不同机构环境机构数据机构数据柜员柜员柜员数据柜员数据业务参数业务参数业务数据环境业务数据环境(业务对象)(业务对象)27测试测试

13、执行环境构建执行环境构建28测试执行场景设计拓扑图测试执行场景设计拓扑图29测试主机1测试调度机测试执行机2业务汇总批处理现金柜员登陆普通柜员登陆112111221123112411255200-25200-900351101录入1102录入1103录入签退1101复核1102复核1103复核签退测试分析测试分析30测试执行测试执行效率时间量化效率时间量化假如平均每个交易用例执行时间:35秒其中脚本下载占15 交易执行20其中用例库中目前有业务流58个 交易用例552个 项目组使用4台PC完整执行一次花费时间: 35*552/60/4=1小时30分钟31脚本技术2线性脚本线性脚本结构化脚本结构

14、化脚本共享脚本共享脚本134数据驱动脚本数据驱动脚本5关键字驱动脚本关键字驱动脚本线性脚本l线性脚本是通过录制手工执行的测试用例时得到的脚本,这种脚本包含所有的击键(键盘和鼠标),控制测试软件的控制键及输入数据的数字键,可以添加比较指令实现结果比较线性脚本的优点l1.不需要深入工作或计划,只需坐在计算机前录制手工任务;l2.可以快速自动化;l3.对实际执行操作可以审计跟踪;l4.用户不必是编程人员;l5.提供良好的(软件或工具)演示线性脚本的缺点l1.一切依赖于每次捕获的内容;l2.测试输入和比较是“捆绑”在脚本中的;l3.无法共享或重用脚本;l4.容易受软件变化的影响;l5.修改代价大,维护

15、成本高33结构化脚本l结构化脚本类似于结构化程序设计,含有控制脚本执行的指令,支持顺序,选择和循环(迭代控制)3种基本控制结构,一个脚本可以调用另一个脚本。另外由于引进其他指令改变控制结构,可以提高重用性,增加功能和灵活性,改善维护性。需要一定的编程技术。主要优点l健壮性更好,更灵活;主要缺点l脚本更加复杂,测试数据依然“包含”脚本中34共享脚本l共享脚本可以被多个测试用例使用,脚本之间可以相互调用;可以允许同一个软件应用或系统的测试之间共享脚本;在不同的软件应用或系统的测试之间也可共享脚本。共享脚本优点l以较少的开销实现类似的测试;l维护开销低于线性脚本;l删除明显的重复;l可以在共享脚本中

16、增加更智能的功能共享脚本的缺点l需要跟踪更多的脚本,文档,文字以及存储,如果管理的不好,很难找到适当的脚本;l每个测试仍需要一个特定的测试脚本,维护成本仍然比较高;l共享脚本通常只是针对被测软件的某一部分35数据驱动脚本l数据驱动脚本是将测试输入存储在独立的(数据)文件中(*.XLS,*.TXT,*.DAT等),而不是存储在脚本中,脚本中只存放控制信息。用变量取代在录制的脚本代码中固定输入内容,如:名字,地址,数据等,然后通过变量从外部(文件,电子表格,数据库等)读取数据的测试数据驱动脚本的优点l可以很快增加类似的测试(脚本相同,数据不同);l测试者增加新测试不必具有工具脚本语言的技术或编程知识;l对于第二个测试及后续测试无额外的脚本维护开销数据驱动脚本的缺点l初始建立的开销较大;l需要专业(编程)支持36关键字驱动脚本l关键字驱动脚本实际上是复杂的数据驱动技术的逻辑扩展。用变量取代在录制的脚

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论