软件自动化测试理论及应用课件.ppt
《软件自动化测试理论及应用课件.ppt》由会员分享,可在线阅读,更多相关《软件自动化测试理论及应用课件.ppt(64页珍藏版)》请在三一办公上搜索。
1、1,第五章 软件自动化测试理论及应用,一个例子:Rational Funtional Tester,2,第五章 软件自动化测试理论及应用,5.1自动化测试概念5.2自动化测试在软件开发周期中的位置 5.3自动化测试局限性5.4自动化测试基本理论5.5自动化测试实施5.6常用工具介绍5.7IBM Rational自动化测试解决方案架构5.8负载测试工具设计与开发5.9自动化测试成熟度,3,5.1自动化测试概念,用工具代替/辅助人工完成软件测试活动的过程,泛指所有能用工具辅助进行的有关测试活动。 测试自动化的目标是对被测试系统进行自动测试。总的来说,测试自动化的目标是通过较少的开销,得到更彻底的测
2、试,并提高产品的质量。,4,5.1自动化测试概念,自动化测试有如下特点: 可以对程序的新版本自动执行回归测试 可以执行一些手工测试困难或不可能进行的测试 可以更好地利用资源 测试具有一致性和可重复性 测试的重用性 可以更快地将软件推向市场 可以增加软件信任度,5,5.1自动化测试概念,测试自动化误区 : 不现实的期望 期望自动测试发现大量新故障 安全性错觉 自动测试的维护开销 技术问题,6,5.2自动化测试在软件开发周期中的位置,7,5.3自动化测试局限性,自动化测试不能取代手工测试。下列情况不适合于自动化测试:测试很少进行软件不稳定 :如软件升级版本时,用户界面和功能频繁变化,此时自动化测试
3、相应部分修改的开销较大。而软件不稳定时,手工测试可以很快发现故障。结果很容易通过人验证的测试 :该种情况下的自动化测试非常困难甚至不可能,如彩色模式的合适程度、屏幕轮廓的直观效果,或选择制定的屏幕对象是否能够播放正确的声音等。 涉及物理交互的测试 :如在读卡机上划卡,断开设备的物理连接,开关电源等。,8,5.3自动化测试局限性,手工测试比自动测试发现的故障要多 自动化测试主要是进行重复测试,一般情况下,自动化测试进行的工作是以前进行过的,因此被测试软件在自动化测试中暴露的故障要少得多。测试自动化主要用于回归测试,进行正确性验证测试,而不是故障发现测试。据经验数据统计,自动测试只能发现约15的故
4、障,而手工测试可以发现85的故障。,9,5.3自动化测试局限性,自动化测试不能提高测试的有效性。自动化测试只是用于提高测试的效率,即减少测试的开销和时间。 自动化测试不具有想象力 自动化测试是通过测试软件进行,测试过程只是按照运行机制执行。手工测试时可以直接判断测试结果的正确性,而自动测试许多情况下测试结果还需要人工干预判断。手工测试可以处理意外事件,如网络连接中断,此时必须重新建立连接。手工测试时可以及时处理该意外,而自动化测试时该意外事件一般都会导致测试的中止。,10,5.4自动化测试基本理论,自动化测试过程中主要涉及以下内容:测试驱动、桩和驱动数据的自动生成:主要是依据所采用的测试方法,
5、如等价类、边界值等自动产生多组测试数据。自动测试输入:工具录制测试者所做的所有操作,并将这些操作写成工具可以识别的脚本。被录制的脚本中含有测试输入(包括文本和鼠标移动、点击菜单和按钮等动作)测试脚本技术:用于自动测试过程存放测试步骤、测试数据等相关内容。测试结果的自动比较:将预期输出与程序运行过程中的实际输出进行比较。自动测试执行:工具读取脚本并执行脚本命令,可以重复测试者的操作。在执行脚本过程中可以完成测试结果的自动比较。自动测试管理:完成测试计划、测试大纲、测试缺陷管理等工作。,11,5.4.1自动测试输入,对于支持命令行的软件系统,采用批处理方式输入是最好的测试用例自动化输入方式 对于不
6、支持命令行的软件系统,一般来说可以采用商用化录制回放测试工具生成输入脚本,或自己编制测试用例输入脚本,12,5.4.2自动比较,简单比较 复杂比较 动态比较 执行后比较,13,5.4.3测试结果输出和转储,测试结果输出一般有以下形式:基于磁盘的输出:包括数据库、文件和目录/文件夹;基于屏幕的输出:主要是文本和特殊图形字符、图形图像等;多媒体信息的输出:包括不易比较的测试输出形式如播放的声音、显示的视频等;通讯报文的输出:主要是网络中传送的通讯报文,一般以帧形式出现。,14,5.4.4脚本技术,线性教本 结构化脚本 共享脚本 数据驱动脚本 关键字驱动脚本,15,5.4.4.1线性教本,线性脚本是
7、通过录制手工执行的测试用例时得到的脚本,这种脚本包含所有的击键(键盘和鼠标)、控制测试软件的控制键及输入数据的数字键,可以添加比较指令实现结果比较 线性脚本的优点主要是:不需要深入的工作或计划,只需坐在计算机前录制手工任务;可以快速开始自动化;对实际执行操作可以审计跟踪;用户不必是编程人员;提供良好的(软件或工具)演示。线性脚本的缺点主要是: 一切依赖于每次捕获的内容;测试输入和比较是“捆绑”在脚本中的;无法共享或重用脚本;容易受软件变化的影响;修改代价大,维护成本高。,16,5.4.4.2结构化脚本,结构化脚本类似于结构化程序设计,含有控制脚本执行的指令,支持顺序、选择和循环(叠代控制)3种
8、基本控制结构,一个脚本可以调用另一个脚本。另外由于引进其他指令改变控制结构,可以提高重用性,增加功能和灵活性,改善维护性。需要一定的编程技术。 主要有优点是健壮性更好,更灵活;但是脚本更加复杂,测试数据依然“包含”脚本中。,17,5.4.4.3共享脚本,共享脚本可以被多个测试用例使用,脚本之间可以相互调用;可以允许同一软件应用或系统的测试之间共享脚本;在不同的软件应用或系统的测试之间也可共享脚本。 共享脚本的优点是:以较少的开销实现类似的测试;维护开销低于线性脚本;删除明显的重复;可以在共享脚本中增加更智能的功能。 共享脚本的缺点是:需要跟踪更多的脚本 ,文档、文字以及存储,如果管理得不好,很
9、难找到适当的脚本;每个测试仍需要一个特定的测试脚本,维护成本仍然比较高 ;共享脚本通常只是针对被测软件的某一部分。,18,5.4.4.4数据驱动脚本,数据驱动脚本是将测试输入存储在独立的(数据)文件中(*.XLS、*.TXT、*.DAT等),而不是存储在脚本中,脚本中只存放控制信息。用变量取代在录制的脚本代码中固定输入内容,如:名字、地址、数据等,然后通过变量从外部(文件、电子表格、数据库等)读取数据的测试 数据驱动脚本的优点是:可以很快增加类似的测试(脚本相同,数据不同);测试者增加新测试不必具有工具脚本语言的技术或编程知识;对于第二个测试及后续测试无额外的脚本维护开销 。数据驱动脚本的缺点
10、是:初始建立的开销较大;需要专业(编程)支持。,19,5.4.4.5关键字驱动脚本,关键词驱动脚本实际上是较复杂的数据驱动技术的逻辑扩展。用变量取代在录制的脚本代码中的对象标识,如:按钮、编辑框等控件ID等,然后在脚本中通过这些变量来操作这些对象进行。关键字驱动脚本有如下特征:测试脚本由控制脚本、测试文件、支持脚本组成;控制脚本不再受被测软件或特殊应用的约束;测试文件中使用关键字描述测试事例;控制脚本依次读取测试文件中的每个关键字并调用相关的支持脚本。关键字驱动脚本的优点:独立于测试脚本语言开发测试事例所需脚本数量是随软件的规模而不是测试的数量而变化的可以用与工具(及平台)无关的方法实现测试实
11、现测试的方法可以剪裁适合测试者而不是测试工具,20,5.4.5系统运行数据统计,性能测试和内存泄露检查的测试过程中,不是预期输出与实际输出的比较,而是运行数据采集并统计输出结果。主要利用操作系统提供的API函数,测试软件获得系统信息并进行统计和分析。,21,5.5自动化测试实施,被测试软件的测试方式选择并不是所有的软件都需要进行自动化测试。,22,5.5自动化测试实施,自动化测试实施前的准备工作 在进行测试自动化之前,对被测试软件的可测试性接口的分析和处理是非常重要的工作;通过对接口的分析,制定出测试输入和输出的脚本文件结构。,23,5.5自动化测试实施,自动化测试流程 自动化回归测试在实施上
12、,一般分为两个主要步骤,一个是测试结果输出脚本模板生成,该部分需要人工进行,一个是自动化回归测试。,24,5.5自动化测试实施,测试结果输出脚本模板生成流程图,25,5.5自动化测试实施,整个自动化回归测试流程图 :,26,5.6常用工具介绍,27,5.6常用工具介绍,性能测试工具 Loadrunner嵌入式软件测试工具CodeTest LogiScope 缺陷管理跟踪工具TestDirector Buzilla,28,5.6.1 LoadRunner,LoadRunner 是一种预测系统行为和性能的工业标准级负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,
13、LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。,29,5.6.1 LoadRunner,30,5.6.1 LoadRunner,创建虚拟用户 创建真实的负载 实时监测器 分析结果以精确定位问题所在重复测试保证系统发布的高性能 其他特性 Enterprise Java Beans 的测试 支持无线应用协议 支持Media Stream 应用 完整的企业应用环境的支持,31,5.6.2嵌入式软件测试工具,纯软件测试工具 纯软件的测试工具采用的软件插桩技术,在被测试代码中插入一些函数,用这些函数来完成
14、数据的生成,并上传数据到目标系统的共享内存中。 纯硬件测试工具 :主要是逻辑分析仪和仿真器。 逻辑分析仪主要通过监控系统在运行时总线上的指令周期,并以一定频率捕获这些信号,通过对捕获的信号进行分析来判断程序当前运行状况。 仿真器通常采用内存标记技术,它所关心的也是处理器从外存的代码段读取数据的情况 纯硬件测试工具是不具备对内存分配进行分析和检查的能力,32,5.6.2.1CodeTest,CodeTest系统包括3种嵌入式软件测试和分析工具:CodeTest Native,CodeTest Software-In-Circuit和CodeTest Hardware-In-Circuit,每一种
15、工具代表了嵌入式系统开发的每一个周期的不同阶段,它们分别由于:在开发阶段早期,没有目标硬件,只有宿主机开发环境和测试环境。在开发阶段中期,系统的集成工作、硬件开发板已出现。在产品确认阶段,此时产品进入系统综合测试阶段。,33,5.6.2.1CodeTest,CodeTest是一个硬件辅助软件的测试与分析工具,它一方面吸取软件插桩技术,并对这种技术进行改善,纯软件工具插入的是一个函数,而CodeTest插入的是一条赋值语句,它在汇编级也是一条语句,所以它执行的时间非常短,同时避免了被其他的中断所中断,所以它对目标系统的影响非常小。 另一方面,CodeTest从纯硬件的测试工具那里吸取了从总线捕获
16、数据的技术并且对它进行了改善,CodeTest改变了采样方式,它通过监视系统总线,当程序运行到插入的特殊点的时候才会主动地到数据总线上去捕获数据。,34,5.6.2.1CodeTest,由于CodeTest对软件插桩技术和从总线捕获数据进行改善和提升,具有很强的性能分析、内存分析、高级覆盖率分析和代码跟踪功能。性能分析:CodeTest能同时对128000个函数和1000个任务进行性能分析,可以精确地得出每个函数或任务执行的最大时间、最小时间和平均时间,精确度达到50ns;能够精确地显示各函数或任务之间的调用情况,帮助开发人员和测试人员发现系统瓶颈、优化系统。覆盖率分析:CodeTest在系统
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件自动化测试理论及应用 课件 软件 自动化 测试 理论 应用
链接地址:https://www.31ppt.com/p-1786870.html