- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 软件自动化测试 6.1 自动化测试基础 自动化测试的定义 测试自动化的原因:测试软件是一项艰苦的工作。 测试的工作量很大(据统计,测试会占用到约40%的软件开发时间;一些可靠性要求非常高的软件,测试时间甚至占到开发时间约70%)。而测试中的许多操作是重复性的、非智力性的和非创造性的,并要求做准确细致的工作。 自动化测试的定义:使用一种自动化测试工具来验证各种软件测试的需求,它包括测试活动的管理与实施。 无法覆盖所有代码路径 简单的功能性测试用例在每一轮测试中机械地重复,工作量往往较大. 手工测试难以捕捉到许多与时序、死锁、资源冲突、多线程等有关的错误。 难以模拟大量数据或大量并发用户 难以在短时间内完成大量的测试用例 可能缩短软件测试周期 测试效率高 节省人力资源,降低测试成本 增强测试的稳定性和可靠性 提高软件测试的准确度和精确度 测试工具使测试工作容易,还能产生更高质量的测试结果 测试自动化可以完成手工难以完成的测试,如性能、负载测试 比较适合采用自动化测试的: 主要是重复多次的机械性活动,例如测试案例的执行和比较,及一些手工无法或难以执行的测试(包括嵌入式系统测试、压力测试等)。测试自动化在单元测试、集成测试、功能测试、性能测试、稳定性测试、负载测试/压力测试、可靠性测试等方面获得很好的效果。 不适合采用自动化测试的: 不稳定软件的测试、开发周期很短的软件、一次性的软件等,还有智力性活动,包括测试规划、测试计划、测试报告等。 软件开发过程,下列情况需要考虑引入自动化测试:P138 (1)非常重要的测试; (2)涉及范围很广的测试; (3)对主要功能的测试; (4)容易自动化的测试; (5)很快有回报的测试; (6)运行最频繁的测试; (7)测试个案的生成,包括测试输入、测试输出、测试操作指令等; (8)测试的执行与控制,包括单机运行和网络多机分布式的运行,在节假日的运行; (9)测试结果与标准输出进行对比; (10)不吻合预期的测试结果的分析、记录、分类和报告,及总体测试状况的统计及报表的产生。 自动化测试的原理和方法 软件测试自动化实现的基础: 通过设计的特殊程序模拟测试人员对计算机的操作过程、操作行为,或者类似于编译系统那样对计算机程序进行检查。 软件测试自动化实现的原理和方法主要有: 直接对代码进行静态和动态分析、测试过程的捕获(录制)和回放、测试脚本技术、虚拟用户技术和测试管理技术。 (1)代码分析 一种白盒测试的自动化方法,一般针对不同的高级语言去构造分析工具,在工具中定义类、对象、函数、变量等定义规则、语法规则;在分析时对代码进行语法扫描,找出不符合编码规范的地方;根据某种质量模型评价代码质量,生成系统的调用关系图等。 (2)捕获和回放(录制—回放):一种黑盒测试的自动化方法。 捕获是将用户每一步操作都记录下来。这种记录的方式有两种:程序用户界面的像素坐标或程序显示对象(窗口、按钮、滚动条等)的位置,以及相对应的操作、状态变化或是属性变化。所有的记录转换为一种脚本语言所描述的过程,以模拟用户的操作。 回放时,将脚本语言所描述的过程转换为屏幕上的操作,然后将被测系统的输出记录下来同预先给定的标准结果比较。这可以大大减轻黑盒测试的工作量,在迭代开发的过程中,能够很好地进行回归测试。 “捕获—回放”步骤: (1)先由手工完成一遍需要测试的流程 (2)计算机记录下这个流程期间客户端和服务器端之间的通信信息,这些信息通常是一些协议和数据 (3)形成特定的脚本程序 (Script) (4)然后在系统的统一管理下,修改脚本,同时生成多个虚拟用户,并运行该脚本,监控硬件和软件平台的性能,提供分析报告或相关资料。 通过几台机器就可以模拟出成百上千的用户对应用系统进行负载能力的测试。 (3)脚本技术 脚本是一组测试工具执行的指令集合,也是计算机程序的一种形式。脚本可以通过录制测试的操作产生,然后再做修改,这样可以减少脚本编程的工作量。当然,也可以直接用脚本语言编写脚本。脚本中可包含数据和指令,并包括以下一些信息: 同步(何时进行下一步输入) 比较信息(比较什么、如何比较以及和谁比较) 捕获何种屏幕数据以及存储在何处 控制信息等 测试脚本的开发流程 (4)自动比较 自动测试时,预期输出是事先定义的,或插入脚本中的(checkpoint),然后在测试过程中运行脚本,将捕获的结果和预先准备的输出进行比较,从
文档评论(0)