软件自动化测试理论及应用-课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件自动化测试理论及应用-课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 自动化 测试 理论 应用 课件
- 资源描述:
-
1、1第五章第五章 软件自动化测试理论及应用软件自动化测试理论及应用一个例子:一个例子:Rational Funtional Tester2第五章第五章 软件自动化测试理论及应用软件自动化测试理论及应用5.1自动化测试概念自动化测试概念5.2自动化测试在软件开发周期中的位置自动化测试在软件开发周期中的位置 5.3自动化测试局限性自动化测试局限性5.4自动化测试基本理论自动化测试基本理论5.5自动化测试实施自动化测试实施5.6常用工具介绍常用工具介绍5.7IBM Rational自动化测试解决方案架构自动化测试解决方案架构5.8负载测试工具设计与开发负载测试工具设计与开发5.9自动化测试成熟度自动化
2、测试成熟度35.15.1自动化测试概念自动化测试概念n用工具代替用工具代替/辅助人工完成软件测试活动的辅助人工完成软件测试活动的过程,泛指所有能用工具辅助进行的有关过程,泛指所有能用工具辅助进行的有关测试活动。测试活动。n测试自动化的目标是对被测试系统进行自测试自动化的目标是对被测试系统进行自动测试。总的来说,测试自动化的目标是动测试。总的来说,测试自动化的目标是通过较少的开销,得到更彻底的测试,并通过较少的开销,得到更彻底的测试,并提高产品的质量。提高产品的质量。45.15.1自动化测试概念自动化测试概念n自动化测试有如下特点:自动化测试有如下特点:可以对程序的新版本自动执行回归测试可以对程
3、序的新版本自动执行回归测试 可以执行一些手工测试困难或不可能进行的测可以执行一些手工测试困难或不可能进行的测试试 可以更好地利用资源可以更好地利用资源 测试具有一致性和可重复性测试具有一致性和可重复性 测试的重用性测试的重用性 可以更快地将软件推向市场可以更快地将软件推向市场 可以增加软件信任度可以增加软件信任度 55.15.1自动化测试概念自动化测试概念n测试自动化误区测试自动化误区:不现实的期望不现实的期望 期望自动测试发现大量新故障期望自动测试发现大量新故障 安全性错觉安全性错觉 自动测试的维护开销自动测试的维护开销 技术问题技术问题 65.2自自动动化化测测试试在在软软件件开开发发周周
4、期期中中的的位位置置 系 统 设 计详 细 设 计单 元 测 试集 成 测 试系 统 测 试验 收 测 试测 试 设计 工 具逻 辑 设 计 工 具物 理 设 计 工 具管 理 工 具覆 盖 测试 工 具调 试 工 具动 态 分析 工 具自 动 测 试 工 具性 能、功 能模 拟 测 试 工 具需 求 分 析静 态 分析 工 具程 序 编 码75.35.3自动化测试局限性自动化测试局限性n 自动化测试不能取代手工测试。下列情况不适合自动化测试不能取代手工测试。下列情况不适合于自动化测试:于自动化测试:测试很少进行测试很少进行软件不稳定软件不稳定:如软件升级版本时,用户界面和功能频:如软件升级版
5、本时,用户界面和功能频繁变化,此时自动化测试相应部分修改的开销较大。繁变化,此时自动化测试相应部分修改的开销较大。而软件不稳定时,手工测试可以很快发现故障。而软件不稳定时,手工测试可以很快发现故障。结果很容易通过人验证的测试结果很容易通过人验证的测试:该种情况下的自动化:该种情况下的自动化测试非常困难甚至不可能,如彩色模式的合适程度、测试非常困难甚至不可能,如彩色模式的合适程度、屏幕轮廓的直观效果,或选择制定的屏幕对象是否能屏幕轮廓的直观效果,或选择制定的屏幕对象是否能够播放正确的声音等。够播放正确的声音等。涉及物理交互的测试涉及物理交互的测试:如在读卡机上划卡,断开设备:如在读卡机上划卡,断
6、开设备的物理连接,开关电源等。的物理连接,开关电源等。85.35.3自动化测试局限性自动化测试局限性n手工测试比自动测试发现的故障要多手工测试比自动测试发现的故障要多 自动化测试主要是进行重复测试,一般情况下,自动化测试主要是进行重复测试,一般情况下,自动化测试进行的工作是以前进行过的,因此自动化测试进行的工作是以前进行过的,因此被测试软件在自动化测试中暴露的故障要少得被测试软件在自动化测试中暴露的故障要少得多。多。测试自动化主要用于回归测试,进行正确性验测试自动化主要用于回归测试,进行正确性验证测试,而不是故障发现测试。据经验数据统证测试,而不是故障发现测试。据经验数据统计,自动测试只能发现
7、约计,自动测试只能发现约15的故障,而手工的故障,而手工测试可以发现测试可以发现85的故障。的故障。95.35.3自动化测试局限性自动化测试局限性n 自动化测试不能提高测试的有效性。自动化测试自动化测试不能提高测试的有效性。自动化测试只是用于提高测试的效率,即减少测试的开销和只是用于提高测试的效率,即减少测试的开销和时间。时间。n 自动化测试不具有想象力自动化测试不具有想象力 自动化测试是通过测试软件进行,测试过程只是按照自动化测试是通过测试软件进行,测试过程只是按照运行机制执行。手工测试时可以直接判断测试结果的运行机制执行。手工测试时可以直接判断测试结果的正确性,而自动测试许多情况下测试结果
8、还需要人工正确性,而自动测试许多情况下测试结果还需要人工干预判断。干预判断。手工测试可以处理意外事件,如网络连接中断,此时手工测试可以处理意外事件,如网络连接中断,此时必须重新建立连接。手工测试时可以及时处理该意外,必须重新建立连接。手工测试时可以及时处理该意外,而自动化测试时该意外事件一般都会导致测试的中止。而自动化测试时该意外事件一般都会导致测试的中止。105.45.4自动化测试基本理论自动化测试基本理论 n 自动化测试过程中主要涉及以下内容:自动化测试过程中主要涉及以下内容:测试驱动、桩和驱动数据的自动生成:主要是依据所采用的测试测试驱动、桩和驱动数据的自动生成:主要是依据所采用的测试方
9、法,如等价类、边界值等自动产生多组测试数据。方法,如等价类、边界值等自动产生多组测试数据。自动测试输入:工具录制测试者所做的所有操作,并将这些操作自动测试输入:工具录制测试者所做的所有操作,并将这些操作写成工具可以识别的脚本。被录制的脚本中含有测试输入(包括写成工具可以识别的脚本。被录制的脚本中含有测试输入(包括文本和鼠标移动、点击菜单和按钮等动作)文本和鼠标移动、点击菜单和按钮等动作)测试脚本技术:用于自动测试过程存放测试步骤、测试数据等相测试脚本技术:用于自动测试过程存放测试步骤、测试数据等相关内容。关内容。测试结果的自动比较:将预期输出与程序运行过程中的实际输出测试结果的自动比较:将预期
10、输出与程序运行过程中的实际输出进行比较。进行比较。自动测试执行:工具读取脚本并执行脚本命令,可以重复测试者自动测试执行:工具读取脚本并执行脚本命令,可以重复测试者的操作。在执行脚本过程中可以完成测试结果的自动比较。的操作。在执行脚本过程中可以完成测试结果的自动比较。自动测试管理:完成测试计划、测试大纲、测试缺陷管理等工作。自动测试管理:完成测试计划、测试大纲、测试缺陷管理等工作。115.4.15.4.1自动测试输入自动测试输入 n对于支持命令行的软件系统,采用批处理对于支持命令行的软件系统,采用批处理方式输入是最好的测试用例自动化输入方方式输入是最好的测试用例自动化输入方式式 n对于不支持命令
11、行的软件系统,一般来说对于不支持命令行的软件系统,一般来说可以采用商用化录制回放测试工具生成输可以采用商用化录制回放测试工具生成输入脚本,或自己编制测试用例输入脚本入脚本,或自己编制测试用例输入脚本 125.4.25.4.2自动比较自动比较 n简单比较简单比较 n复杂比较复杂比较 n动态比较动态比较 n执行后比较执行后比较 135.4.35.4.3测试结果输出和转储测试结果输出和转储 n测试结果输出一般有以下形式:测试结果输出一般有以下形式:基于磁盘的输出:包括数据库、文件和目录基于磁盘的输出:包括数据库、文件和目录/文文件夹;件夹;基于屏幕的输出:主要是文本和特殊图形字符、基于屏幕的输出:主
12、要是文本和特殊图形字符、图形图像等;图形图像等;多媒体信息的输出:包括不易比较的测试输出多媒体信息的输出:包括不易比较的测试输出形式如播放的声音、显示的视频等;形式如播放的声音、显示的视频等;通讯报文的输出:主要是网络中传送的通讯报通讯报文的输出:主要是网络中传送的通讯报文,一般以帧形式出现。文,一般以帧形式出现。145.4.45.4.4脚本技术脚本技术 n线性教本线性教本 n结构化脚本结构化脚本 n共享脚本共享脚本 n数据驱动脚本数据驱动脚本 n关键字驱动脚本关键字驱动脚本 155.4.4.15.4.4.1线性教本线性教本 n 线性脚本是通过录制手工执行的测试用例时得到的脚本,这种线性脚本是
13、通过录制手工执行的测试用例时得到的脚本,这种脚本包含所有的击键(键盘和鼠标)、控制测试软件的控制键脚本包含所有的击键(键盘和鼠标)、控制测试软件的控制键及输入数据的数字键,可以添加比较指令实现结果比较及输入数据的数字键,可以添加比较指令实现结果比较 n 线性脚本的优点主要是:线性脚本的优点主要是:不需要深入的工作或计划不需要深入的工作或计划,只需坐在计算机前录制手工任务;只需坐在计算机前录制手工任务;可以快速开始自动化;可以快速开始自动化;对实际执行操作可以审计跟踪;对实际执行操作可以审计跟踪;用户不必是编程人员;用户不必是编程人员;提供良好的(软件或工具)演示。提供良好的(软件或工具)演示。
14、n 线性脚本的缺点主要是:线性脚本的缺点主要是:一切依赖于每次捕获的内容;一切依赖于每次捕获的内容;测试输入和比较是测试输入和比较是“捆绑捆绑”在脚本中的;在脚本中的;无法共享或重用脚本;无法共享或重用脚本;容易受软件变化的影响;容易受软件变化的影响;修改代价大,维护成本高。修改代价大,维护成本高。165.4.4.25.4.4.2结构化脚本结构化脚本 n 结构化脚本类似于结构化程序设计,含有控制脚结构化脚本类似于结构化程序设计,含有控制脚本执行的指令,支持顺序、选择和循环(叠代控本执行的指令,支持顺序、选择和循环(叠代控制)制)3种基本控制结构,一个脚本可以调用另一种基本控制结构,一个脚本可以
15、调用另一个脚本。另外由于引进其他指令改变控制结构,个脚本。另外由于引进其他指令改变控制结构,可以提高重用性,增加功能和灵活性,改善维护可以提高重用性,增加功能和灵活性,改善维护性。需要一定的编程技术。性。需要一定的编程技术。n 主要有优点是健壮性更好,更灵活;但是脚本更主要有优点是健壮性更好,更灵活;但是脚本更加复杂,测试数据依然加复杂,测试数据依然“包含包含”脚本中。脚本中。175.4.4.35.4.4.3共享脚本共享脚本 n 共享脚本可以被多个测试用例使用,脚本之间可以相互调共享脚本可以被多个测试用例使用,脚本之间可以相互调用;可以允许同一软件应用或系统的测试之间共享脚本;用;可以允许同一
16、软件应用或系统的测试之间共享脚本;在不同的软件应用或系统的测试之间也可共享脚本。在不同的软件应用或系统的测试之间也可共享脚本。n 共享脚本的优点是:共享脚本的优点是:以较少的开销实现类似的测试;以较少的开销实现类似的测试;维护开销低于线性脚本;维护开销低于线性脚本;删除明显的重复;删除明显的重复;可以在共享脚本中增加更智能的功能。可以在共享脚本中增加更智能的功能。n 共享脚本的缺点是:共享脚本的缺点是:需要跟踪更多的脚本需要跟踪更多的脚本,文档、文字以及存储,如果管理得不好,文档、文字以及存储,如果管理得不好,很难找到适当的脚本;很难找到适当的脚本;每个测试仍需要一个特定的测试脚本,维护成本仍
17、然比较高每个测试仍需要一个特定的测试脚本,维护成本仍然比较高;共享脚本通常只是针对被测软件的某一部分。共享脚本通常只是针对被测软件的某一部分。185.4.4.45.4.4.4数据驱动脚本数据驱动脚本 n 数据驱动脚本是将测试输入存储在独立的(数据)文件中数据驱动脚本是将测试输入存储在独立的(数据)文件中(*.XLS、*.TXT、*.DAT等),而不是存储在脚本中,脚等),而不是存储在脚本中,脚本中只存放控制信息。用变量取代在录制的脚本代码中固本中只存放控制信息。用变量取代在录制的脚本代码中固定输入内容,如:名字、地址、数据等,然后通过变量从定输入内容,如:名字、地址、数据等,然后通过变量从外部
18、(文件、电子表格、数据库等)读取数据的测试外部(文件、电子表格、数据库等)读取数据的测试 n 数据驱动脚本的优点是:数据驱动脚本的优点是:可以很快增加类似的测试(脚本相同,数据不同);可以很快增加类似的测试(脚本相同,数据不同);测试者增加新测试不必具有工具脚本语言的技术或编程知识;测试者增加新测试不必具有工具脚本语言的技术或编程知识;对于第二个测试及后续测试无额外的脚本维护开销对于第二个测试及后续测试无额外的脚本维护开销。n 数据驱动脚本的缺点是:数据驱动脚本的缺点是:初始建立的开销较大;初始建立的开销较大;需要专业(编程)支持。需要专业(编程)支持。195.4.4.55.4.4.5关键字驱
19、动脚本关键字驱动脚本 n 关键词驱动脚本实际上是较复杂的数据驱动技术的逻辑扩展。关键词驱动脚本实际上是较复杂的数据驱动技术的逻辑扩展。用变量取代在录制的脚本代码中的对象标识,如:按钮、编辑用变量取代在录制的脚本代码中的对象标识,如:按钮、编辑框等控件框等控件ID等,然后在脚本中通过这些变量来操作这些对象进等,然后在脚本中通过这些变量来操作这些对象进行。行。n 关键字驱动脚本有如下特征:关键字驱动脚本有如下特征:测试脚本由控制脚本、测试文件、支持脚本组成;测试脚本由控制脚本、测试文件、支持脚本组成;控制脚本不再受被测软件或特殊应用的约束;控制脚本不再受被测软件或特殊应用的约束;测试文件中使用关键
20、字描述测试事例;测试文件中使用关键字描述测试事例;控制脚本依次读取测试文件中的每个关键字并调用相关的支控制脚本依次读取测试文件中的每个关键字并调用相关的支持脚本。持脚本。n 关键字驱动脚本的优点:关键字驱动脚本的优点:独立于测试脚本语言开发测试事例独立于测试脚本语言开发测试事例所需脚本数量是随软件的规模而不是测试的数量而变化的所需脚本数量是随软件的规模而不是测试的数量而变化的可以用与工具(及平台)无关的方法实现测试可以用与工具(及平台)无关的方法实现测试实现测试的方法可以剪裁适合测试者而不是测试工具实现测试的方法可以剪裁适合测试者而不是测试工具 205.4.55.4.5系统运行数据统计系统运行
21、数据统计 n性能测试和内存泄露检查的测试过程中,性能测试和内存泄露检查的测试过程中,不是预期输出与实际输出的比较,而是运不是预期输出与实际输出的比较,而是运行数据采集并统计输出结果。主要利用操行数据采集并统计输出结果。主要利用操作系统提供的作系统提供的API函数,测试软件获得系统函数,测试软件获得系统信息并进行统计和分析。信息并进行统计和分析。215.55.5自动化测试实施自动化测试实施n被测试软件的测试方式选择被测试软件的测试方式选择并不是所有的软件都需要进行自动化测试。并不是所有的软件都需要进行自动化测试。225.55.5自动化测试实施自动化测试实施n自动化测试实施前的准备工作自动化测试实
22、施前的准备工作 在进行测试自动化之前,对被测试软件的可测在进行测试自动化之前,对被测试软件的可测试性接口的分析和处理是非常重要的工作;通试性接口的分析和处理是非常重要的工作;通过对接口的分析,制定出测试输入和输出的脚过对接口的分析,制定出测试输入和输出的脚本文件结构。本文件结构。235.55.5自动化测试实施自动化测试实施n自动化测试流程自动化测试流程 自动化回归测试在实施上,一般分为两个主要自动化回归测试在实施上,一般分为两个主要步骤,一个是测试结果输出脚本模板生成,该步骤,一个是测试结果输出脚本模板生成,该部分需要人工进行,一个是自动化回归测试。部分需要人工进行,一个是自动化回归测试。24
23、5.55.5自动化测试实施自动化测试实施n测试结果输出脚本模板生成流程图测试结果输出脚本模板生成流程图 被测试软件O人工验证结果测试用例脚本1测试用例脚本NO测试输出1测试输出N测试工具测试输出1测试输出N模板库255.55.5自动化测试实施自动化测试实施n整个自动化回归测试流程图整个自动化回归测试流程图:被 测 试 软 件O测 试 用 例 脚 本 1测 试 用 例 脚 本 NO测 试 输 出 1测 试 输 出 N模 板 库测 试 输 出 1测 试 工 具测 试 输 出 N比 较预 期 输 出PASS故 障 反 馈相 同不 相 同265.65.6常用工具介绍常用工具介绍序号 测试的类型 简述
24、1 代码分析器 监督程序代码复杂度,是否遵循标准等等 2 覆盖分析器 校检哪一部分的代码已经被测试,面向代码语句覆盖、条件覆盖、路径覆盖等等 3 内存分析器 边界检查和漏洞检测等等 4 性能测试工具 测试在不同的负载级别之下客户/服务器和WEB应用程序等等 5 WEB测试工具 检验链接是否有效,客户和服务器端的代码、WEB站点的交互是否正常工作 6 其他工具 测试实例管理,文件管理,BUG报告,配置管理工具 275.6常用工具介绍常用工具介绍n性能测试工具性能测试工具 Loadrunnern嵌入式软件测试工具嵌入式软件测试工具CodeTest LogiScope n缺陷管理跟踪工具缺陷管理跟踪
25、工具TestDirector Buzilla 285.6.1 LoadRunner nLoadRunner 是一种预测系统行为和性是一种预测系统行为和性能的工业标准级负载测试工具。通过以模能的工业标准级负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布试时间,优化性能和加速应用系统的发布周期。周期。295
展开阅读全文