软件测试基础教程 杜文洁景秀丽主编 中国水利水电出版社
软件测试基础教程 杜文洁 景秀丽 主编 中国水利水电出版社
第七章软件自动化测试 71软件自动化测试概述 72自动化测试的策略与运用 73常用自动化测试工具简介 习题 第七章软件自动化测试
第七章 软件自动化测试 第七章 软件自动化测试 7.1软件自动化测试概述 7.2 自动化测试的策略与运用 7.3 常用自动化测试工具简介 习 题
本章概要 软件自动化测试 自动化测试的方法 常用的自动化测试工具。 第七章软件自动化测试
本章概要 ➢ 软件自动化测试 ➢ 自动化测试的方法 ➢ 常用的自动化测试工具。 第七章 软件自动化测试
71软件自动化测试概述 71.1自动化测试定义及发展简史 71.2软件测试自动化的必然性 71.3软件测试自动化的引入时机 714国内软件自动化测试实施现状分析 71.5软件测试自动化的引入条件 第七章软件自动化测试
7.1.1自动化测试定义及发展简史 7.1.2软件测试自动化的必然性 7.1.3软件测试自动化的引入时机 7.1.4国内软件自动化测试实施现状分析 7.1.5软件测试自动化的引入条件 第七章 软件自动化测试 7.1软件自动化测试概述
71软件自动化测试概述 κ计算机科学发展至今,最根本的意义是解决人类手工劳动 的复杂性,成为替代人类某些重复性行为模式的最佳工具。 而在计算机软件工程领域软件测试的工作量很大,一般泱 试会占用到40%的开发时间;一些可靠性要求非常高的软 件测试工作量巨大,测试时间甚至占到60%开发时间。而 且测试中的许多操作是重复性的,非智力性的和非创造性 的,并要求做准确细致的工作,计算机就最适合于代替人 工去完成这样的任务。因而进行自动化测试能够提高软件 测试工作效率,提高开发软件的质量,降低开发成本和缩 短开发周期。 x软件自动化测试是相对手工测试而存在的,主要是通过所 开发的软件测试工具,脚本等来实现,具有良好的可操作 性,可重复性和高效率等特点。已经成为国内软件工程领 域一个重要领域;不言而喻,软件测试从业者都意识到软 件测试这项工作走向成熟化、标准化的一个必经之路就是 要实施自动化测试 第七章软件自动化测试
7.1软件自动化测试概述 计算机科学发展至今,最根本的意义是解决人类手工劳动 的复杂性,成为替代人类某些重复性行为模式的最佳工具。 而在计算机软件工程领域软件测试的工作量很大,一般测 试会占用到40%的开发时间;一些可靠性要求非常高的软 件测试工作量巨大,测试时间甚至占到60%开发时间。而 且测试中的许多操作是重复性的,非智力性的和非创造性 的,并要求做准确细致的工作,计算机就最适合于代替人 工去完成这样的任务。因而进行自动化测试能够提高软件 测试工作效率,提高开发软件的质量,降低开发成本和缩 短开发周期。 软件自动化测试是相对手工测试而存在的,主要是通过所 开发的软件测试工具,脚本等来实现,具有良好的可操作 性,可重复性和高效率等特点。已经成为国内软件工程领 域一个重要领域;不言而喻,软件测试从业者都意识到软 件测试这项工作走向成熟化、标准化的一个必经之路就是 要实施自动化测试。 第七章 软件自动化测试
711自动化测试定义及发展简史 κ软件自动化测试就是使用自动化测试工具或手段,按照测 试工程师的预定计划进行自动的测试,来验证各种软件测 试的需求,它包括测试活动的管理与实施。目的是减轻手工 测试的工作量,提高软件的质量。软件的自动化测试在过 去一段时间中有长足的进步。每一代技术都解决了很多重 要问题 x第一代的自动化测试大概在90年代初期,透过硬件的方式 录制键盘的输入并播放,但缺少检查点( checkpoint)的 功能,由工具录制并记录操作的过程和数据形成脚本,通 过回放来重复人工操作的过程。在这种模式下数据和脚本 人 。而且即使界面的简单变化也需要重新录制,脚本可重 复使用的效率低,而且测试脚本很难维护。 第七章软件自动化测试
7.1.1自动化测试定义及发展简史 软件自动化测试就是使用自动化测试工具或手段,按照测 试工程师的预定计划进行自动的测试,来验证各种软件测 试的需求,它包括测试活动的管理与实施。目的是减轻手工 测试的工作量,提高软件的质量。软件的自动化测试在过 去一段时间中有长足的进步。每一代技术都解决了很多重 要问题。 第一代的自动化测试大概在90年代初期,透过硬件的方式 录制键盘的输入并播放,但缺少检查点(checkpoint)的 功能,由工具录制并记录操作的过程和数据形成脚本,通 过回放来重复人工操作的过程。在这种模式下数据和脚本 混在一起,几乎一个测试用例对应一个脚本,维护成本很 高。而且即使界面的简单变化也需要重新录制,脚本可重 复使用的效率低,而且测试脚本很难维护。 第七章 软件自动化测试
711自动化测试定义及发展简史 x第二代的自动化测试则大约在90年代中后期开始的;这时已经由硬件转变成 透过软件录制/播放( capture/ playback)的方式产生测试脚本( script) 开 且也増加了检查点的功能,从数据文件读取输入数据,通过变量的参数化 将测试数据传入测试脚本,不同的数据文件对应不同的测试用例。在这种模 式下数据和脚本分离,脚本的利用率、可维护性大大提高,但受界面变化的 影响仍然很大。比较大的问题是测试脚本也是一种程序语言,所以测试人员 也需要懂程序语言,换句话说就是要会写程序。而且当软件有变动时,测试 脚本也需要同步更新,这对测试人员来说是一大挑战,测试人员常常就是整 个测试脚本再重新录制一遍 第三代关键字驱动( keyword driven)的自动化测试,开始于2001年。主要是 把测试脚本给抽象化( abstraction),让那些即使不懂测试脚本,不会写程 序的非技术人员,也可以使用自动化测试工具建立自动化测试个案。关键字 驱动测试是数据驱动测试的一种改进类型,它将测试逻辑按照关键字进行分 解,形成数据文件,关键字对应封装的业务逻辑。主要关键字包括三类:被 操作对象(tem)、操作( Operation)和值(aue),用面向对象形式可将 其表现为ltem. Operation( Value)。关键字驱动的主要思想是:脚本与数据分离 界面元素名与测试内部对象名分离、测试描述与具体实现细节分离。 第七章软件自动化测试
7.1.1自动化测试定义及发展简史 第二代的自动化测试则大约在90年代中后期开始的,这时已经由硬件转变成 透过软件录制/播放(capture/playback)的方式产生测试脚本(script),并 且也增加了检查点的功能,从数据文件读取输入数据,通过变量的参数化, 将测试数据传入测试脚本,不同的数据文件对应不同的测试用例。在这种模 式下数据和脚本分离,脚本的利用率、可维护性大大提高,但受界面变化的 影响仍然很大。比较大的问题是测试脚本也是一种程序语言,所以测试人员 也需 要懂程序语言,换句话说就是要会写程序。而且当软件有变动时,测试 脚本也需要同步更新,这对测试人员来说是一大挑战,测试人员常常就是整 个测试脚本再重新录制一遍。 第三代关键字驱动(keyword driven)的自动化测试,开始于2001年。主要是 把测试脚本给抽象化(abstraction),让那些即使不懂测试脚本,不会写程 序的非技术人员,也可以使用自动化测试工具建立自动化测试个案。关键字 驱动测试是数据驱动测试的一种改进类型,它将测试逻辑按照关键字进行分 解,形成数据文件,关键字对应封装的业务逻辑。主要关键字包括三类:被 操作对象(Item)、操作(Operation)和值(value),用面向对象形式可将 其表现为 Item.Operation(Value)。关键字驱动的主要思想是:脚本与数据分离、 界面元素名与测试内部对象名分离、测试描述与具体实现细节分离。 第七章 软件自动化测试
711自动化测试定义及发展简史 x第四代称为专注于业务需求的自动化测试 ( Mercury Business Process Testing)。弥 补第三代自动化测试工具的不足,从测试 脚本的设计、自动化、维护及文件存档都 做一个全面且根本的进化,测试用例的设 计被从测试工具中分离了出来,并且需要 个具有工具技能和开发技能的测试团队 使专业的测试自动化将技能的使用最优化 的结合起来。 第七章软件自动化测试
7.1.1自动化测试定义及发展简史 第四代称为专注于业务需求的自动化测试 (Mercury Business Process Testing)。弥 补第三代自动化测试工具的不足,从测试 脚本的设计、自动化、维护及文件存档都 做一个全面且根本的进化,测试用例的设 计被从测试工具中分离了出来,并且需要 一个具有工具技能和开发技能的测试团队, 使专业的测试自动化将技能的使用最优化 的结合起来。 第七章 软件自动化测试
71.2软件测试自动化的必然性 x1.手工测试有它的局限性 κ通过手工测试无法做到覆盖所有代码路径,简单的功能性 测试用例在每一轮测试中都不能少,而且具有一定的机械 性,重复性,工作量往往较大。许多与时序,死锁,资源冲 突,多线程等有关的错误,通过手工测试很难捕捉到。进行 系统负载,性能测试时,需要模拟大量数据或大量并发用户 等各种应用场合时,很难通过手工测试来进行。进行系统可 靠性测试时需要模拟系统运行10年,几十年以验证系 统能否稳定运行,这也是手工测试无法模拟的。 κ软件测试繁多、沉闷、耗时,对于产品型软件或需求不断 更新的系统,每一版产品发布或系统更新的周期就只有短 短的几个月,这就意味着开发周期也只有短短的数月,而 在测试期间是每天或每几天要发布一个版本供测试人员测 试 个系统的功能点少则上百多则上千上万,使用手工 测试是非常耗时和繁琐的,这样频繁的重复劳动必然会导 致测试人员产生厌倦心理、工作效率低下 第七章软件自动化测试
7.1.2软件测试自动化的必然性 1.手工测试有它的局限性 通过手工测试无法做到覆盖所有代码路径,简单的功能性 测试用例在每一轮测试中都不能少,而且具有一定的机械 性,重复性,工作量往往较大。许多与时序,死锁,资源冲 突,多线程等有关的错误,通过手工测试很难捕捉到。进行 系统负载,性能测试时,需要模拟大量数据或大量并发用户 等各种应用场合时,很难通过手工测试来进行。进行系统可 靠性测试时,需要模拟系统运行10年,几十年,以验证系 统能否稳定运行,这也是手工测试无法模拟的。 软件测试繁多、沉闷、耗时,对于产品型软件或需求不断 更新的系统,每一版产品发布或系统更新的周期就只有短 短的几个月,这就意味着开发周期也只有短短的数月,而 在测试期间是每天或每几天要发布一个版本供测试人员测 试,一个系统的功能点少则上百多则上千上万,使用手工 测试是非常耗时和繁琐的,这样频繁的重复劳动必然会导 致测试人员产生厌倦心理、工作效率低下。 第七章 软件自动化测试
71.2软件测试自动化的必然性 x2.自动测试的优势 x(1)适合做新版本执行回归测试 x对于产品型的软件,每发布一个新的版本,其中大部分功能和界面都 和上一个版本相似或完全相同,这部分功能特别适合于自动化测试, 从而可以让测试达到测试每个特征的目的 (2)具有一致性和可重复性 由于每次自动化测试运行的脚本是相同的,所以每次执行的测试具有 致性,而这一点手工测试是很难做到的。由于自动化测试的一致性, 很容易发现被测软件的任何改变。 x/(3)更好的利用资源 理想的自动化测试能够按计划完全自动的运行,测试人员可以设置自 动化测试程序在周末和晚上执行测试,白天上班的时候测试人员就可 以收集测试所发现的缺陷,并交给开发人员修改,同时测试人员可以 在白天开发新增功能的自动化测试脚本,或对已有的脚本不适合的地 方进行修改。这样充分的利用了公司的资源,也避免了开发和测试之 间的等待。 第七章软件自动化测试
7.1.2软件测试自动化的必然性 2.自动测试的优势 (1)适合做新版本执行回归测试 对于产品型的软件,每发布一个新的版本,其中大部分功能和界面都 和上一个版本相似或完全相同,这部分功能特别适合于自动化测试, 从而可以让测试达到测试每个特征的目的。 (2)具有一致性和可重复性 由于每次自动化测试运行的脚本是相同的,所以每次执行的测试具有 一致性,而这一点手工测试是很难做到的。由于自动化测试的一致性, 很容易发现被测软件的任何改变。 (3)更好的利用资源 理想的自动化测试能够按计划完全自动的运行,测试人员可以设置自 动化测试程序在周末和晚上执行测试,白天上班的时候测试人员就可 以收集测试所发现的缺陷,并交给开发人员修改,同时测试人员可以 在白天开发新增功能的自动化测试脚本,或对已有的脚本不适合的地 方进行修改。这样充分的利用了公司的资源,也避免了开发和测试之 间的等待。 第七章 软件自动化测试