自动化测试理论
软件自动化测试基础
A Free sample background from
Slide 5
手工测试的局限性
通过手工测试无法做到覆盖所有代码路径。 简单的功能性测试用例在每一轮测试中都不能少,而且具有 一定的机械性、重复性,工作量往往较大。 许多与时序、死锁、资源冲突、多线程等有关的错误,通过 手工测试很难捕捉到。 进行系统负载、性能测试时,需要模拟大量数据或大量并发 用户等各种应用场合时,很难通过手工测试来进行。 进行系统可靠性测试时,需要模拟系统运行10年、几十年, 进行系统可靠性测试时,需要模拟系统运行10年、几十年, 以验证系统能否稳定运行,这也是手工测试无法模拟的。 如果有大量(几千)的测试用例,需要在很短时间内(1 如果有大量(几千)的测试用例,需要在很短时间内(1天 )完成,手工测试完成的可能性基本为零。
软件自动化测试基础
A Free sample background from
Slide 6
自动化测试带来的好处
缩短软件开发测试周期,可以让产品更快投放市场。 测试效率高,充分利用硬件资源。 节省人力资源,降低测试成本。 增强测试的稳定性和可靠性。 提高软件测试的准确度和精确度,增加软件信任度。 软件测试工具使测试工作相对比较容易,但能产生更高质量 的测试结果。 手工不能做的事情,自动化测试能做,如负载、性能测试。 软件测试实行自动化进程,绝不是因为厌烦了重复的测 试工作,而是因为测试工作的需要,更准确地说是回归测试 和系统测试的需要。
软件自动化测试基础
A Free sample background from
Slide 8
自动化测试的定义和引入(续)
单元测试、集成测试、系统负载测试、性能测试、稳定性 测试、可靠性测试等比较适合采用自动化测试。 那种不稳定软件的测试、开发周期很短的软件、一次性的 软件等不适合自动化测试。 工具本身并没有想象力和灵活性,根据报道,自动化测试 只能发现15%的缺陷,而手工测试可以发现85%的缺陷。 只能发现15%的缺陷,而手工测试可以发现85%的缺陷。 自动化测试工具在进行功能测试时,其准确的含义是回归 测试工具,这时工具不能发现更多的新问题,但可以保证 对已经测试过部分的准确性和客观性。 多数情况下,手工测试和自动化测试应该相结合,以 最有效的方法来完成测试任务。
软件自动化测试基础
A Free sample background from
Slide 14
自动化测试工具的作用及优势(续)
自动化测试工具的优势主要体现在以下几个方面: (1)记录业务流程并生成脚本程序的能力。 记录业务流程并生成脚本程序的能力。 (2)对各种网络设备(客户机或服务器、其它网络设备)的 对各种网络设备(客户机或服务器、其它网络设备) 模仿能力。 模仿能力。 (3)用有限的资源生成高质量虚拟用户的能力。 用有限的资源生成高质量虚拟用户的能力。 (4)对于整个软件和硬件系统中各个部分的监控能力。 对于整个软件和硬件系统中各个部分的监控能力。 (5)对于测试结果的表现和分析能力。 对于测试结果的表现和分析能力。
软件自动化测试基础
A Free sample background from
Slide 9
1.3 自动化测试的原理和方法
软件测试自动化实现的基础是可以通过设计的特殊程序模拟 测试人员对计算机的操作过程、操作行为,或者类似于编译 系统那样对计算机程序进行检查。 软件测试自动化实现的原理和方法主要有:直接对代码进行 静态和动态分析、测试过程的捕获和回放、测试脚本技术、 虚拟用户技术和测试管理技术。 (1)代码分析 代码分析类似于高级编译系统,一般针对不同的高级语 言去构造分析工具,在工具中定义类、对象、函数、变量等 定义规则、语法规则;在分析时对代码进行语法扫描,找出 不符合编码规范的地方;根据某种质量模型评价代码质量, 不符合编码规范的地方;根据某种质量模型评价代码质量, 生成系统的调用关系图等。
软件自动化测试基础
A Free sample background from
Slide 15
1.5 自动化测试的运用
测试用例(Test Case, 测试用例(Test Case,测试个案)的生成 测试的执行与控制 测试结果与标准输出的对比 不吻合测试结果的分析处理 测试状态的统计和报表的生成 自动化测试与开发中产品每日构建的配合 采用自动化比较技术
Slide 1
软件自动化测试基础
1 自动化测试基础 2 软件自动化测试生存周期方法学 3 软件自动化测试工具简述
软件自动化测试基础
A Free sample background from
Slide 2
本章教学目标
理论环节 认识与理解应用软件自动化测试的基本概念 认识与理解软件自动化测试生存周期方法学及其应用 认识软件自动化测试工具与测试平台的获取及引入 常用软件自动化测试工具简介 实践环节 选定一个自动化测试工具,进行初步学习和认识 目前我们测试中心具备的自动化测试工具:Rational Robot, 目前我们测试中心具备的自动化测试工具:Rational Robot, Rational functional Tester, Mercury WinRunner,LoadRunner functional
软件自动化测试基础
A Free sample background from
Slide 11
自动化测试的原理和方法(续)
关于自动化测试中的“录制— 关于自动化测试中的“录制—回放”技术 目前的自动化负载测试解决方案几乎都是采用 “录制 -回放”的技术。 所谓的“录制所谓的“录制-回放”技术,就是先由手工完成一遍需 要测试的流程,同时由计算机记录下这个流程期间客户端 和服务器端之间的通信信息,这些信息通常是一些协议和 数据,并形成特定的脚本程序 (Script) 。然后在系统的统 一管理下同时生成多个虚拟用户,并运行该脚本,监控硬 件和软件平台的性能,提供分析报告或相关资料。这样, 通过几台机器就可以模拟出成百上千的用户对应用系统进 行负载能力的测试。
软件自动化测试基础
A Free sample background from
Slide 16
6.2 软件自动化测试生存周期方法学
4. 测试 5. 测 试 执 行 与 管 理 自动化测试生 存周期方法学 6. 测试
A Free sample background from
Return
A Free sample background from
软件自动化测试基础
Slide 4
1.1 自动化测试的意义
通常,软件测试的工作量很大(据统计,在一个软件的生命 周期中,测试会占用到40%;一些可靠性要求非常高的软件, 周期中,测试会占用到40%;一些可靠性要求非常高的软件, 测试时间甚至占到60%)。而测试中的许多操作是重复性的、 测试时间甚至占到60%)。而测试中的许多操作是重复性的、 非智力性的和非创造性的,并要求做准确细致的工作,计算 机就最适合于代替人工去完成这样的任务。 软件自动化测试是相对手工测试而存在的,主要是通过所开 发的软件测试工具、脚本等来实现,具有良好的可操作性、 可重复性和高效率等特点。 要理解为什么要进行自动化测试,可以从两个方面考虑: 一是手工测试的局限性; 二是软件自动化测试所带来的好处。
软件自动化测试基础
A Free sample background from
Slide 13
1.4 自动化测试工具的作用及优势
软件测试自动化通常借助测试工具进行。测试工具可以进 行部分的测试设计、实现、执行和比较的工作。部分的测 试工具可以实现测试用例的自动生成,但通常的工作方式 为人工设计测试用例,使用工具进行用例的执行和比较。 如果采用自动比较技术,还可以自动完成测试用例执行结 果的判断,从而避免人工比对存在的疏漏问题。 自动化测试工具的作用: (1)确定系统最优的硬件配置。 (2)检查系统的可靠性。 (3)检查系统硬件和软件的升级情况。 (4)评估新产品。
软件自动化测试基础
A Free sample background from
Slide 3
1 自动化测试基础
1.1 自动化测试的意义 1.2 自动化测试的定义和引入 1.3 自动化测试的原理和方法 1.4 自动化测试工具的作用及优势 1.5 自动化测试的运用
软件自动化测试基础
A Free sample 自动化测试的定义和引入
自动化测试的定义:使用一种自动化测试工具来验证各种 软件测试的需求,它包括测试活动的管理与实施。 在进行自动化测试前,首先要建立一个对软件测试自动化 的认识观。软件测试工具能提高测试效率、覆盖率和可靠 性等,自动化测试虽然具有很多优点,但它只是测试工作 的一部分,是对手工测试的一种补充。自动化测试绝不能 代替手工测试,它们各有各自的特点,其测试对象和测试 范围都不一样。 在系统功能逻辑测试、验收测试、适用性测试、涉及物理 交互性测试时,多采用黑盒测试的手工测试方法。
3. 自动化测试 2. 测 试 工 具 获 取 1. 自动化测试
软件自动化测试基础
A Free sample background from
Slide 10
自动化测试的原理和方法(续)
(2)捕获和回放 代码分析是一种白盒测试的自动化方法,捕获和回放则 是一种黑盒测试的自动化方法。捕获是将用户每一步操作都 记录下来。这种记录的方式有两种:程序用户界面的像素坐 标或程序显示对象(窗口、按钮、滚动条等)的位置,以及 相对应的操作、状态变化或是属性变化。所有的记录转换为 一种脚本语言所描述的过程,以模拟用户的操作。 回放时,将脚本语言所描述的过程转换为屏幕上的操 作,然后将被测系统的输出记录下来同预先给定的标准结果 比较。这可以大大减轻黑盒测试的工作量,在迭代开发的过 程中,能够很好地进行回归测试。
软件自动化测试基础
A Free sample background from