《自动测试和测试工具(精品).ppt》由会员分享,可在线阅读,更多相关《自动测试和测试工具(精品).ppt(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、A Free sample background from Slide 1 第六章第六章 软件自动化测试基础软件自动化测试基础第第6章章 软件自动化测试基础软件自动化测试基础6.1 6.1 自动化测试基础自动化测试基础6.2 6.2 软件自动化测试生存周期方法学软件自动化测试生存周期方法学6.3 6.3 软件自动化测试生存周期方法学的应用软件自动化测试生存周期方法学的应用6.4 6.4 软件自动化测试工具简述软件自动化测试工具简述A Free sample background from Slide 2 第六章第六章 软件自动化测试基础软件自动化测试基础本章教学目标本章教学目标理论环节理论环节
2、理论环节理论环节n n认识与理解应用软件自动化测试的基本概念认识与理解应用软件自动化测试的基本概念n n认识与理解软件自动化测试生存周期方法学及其应用认识与理解软件自动化测试生存周期方法学及其应用n n认识软件自动化测试工具与测试平台的获取及引入认识软件自动化测试工具与测试平台的获取及引入n n常用软件自动化测试工具简介常用软件自动化测试工具简介实践环节实践环节实践环节实践环节n n选定一个白盒自动化测试工具,进行初步学习和认识选定一个白盒自动化测试工具,进行初步学习和认识n n选定一个黑盒自动化测试工具,进行初步学习和认识选定一个黑盒自动化测试工具,进行初步学习和认识n n选定一个负载自动化
3、测试工具,进行初步学习和认识选定一个负载自动化测试工具,进行初步学习和认识A Free sample background from Slide 3 第六章第六章 软件自动化测试基础软件自动化测试基础6.1 自动化测试基础自动化测试基础6.1.1 6.1.1 自动化测试的意义自动化测试的意义6.1.2 6.1.2 自动化测试的定义和引入自动化测试的定义和引入6.1.3 6.1.3 自动化测试的原理和方法自动化测试的原理和方法6.1.4 6.1.4 自动化测试工具的作用及优势自动化测试工具的作用及优势6.1.5 6.1.5 自动化测试的运用自动化测试的运用ReturnA Free sample
4、background from Slide 4 第六章第六章 软件自动化测试基础软件自动化测试基础6.1.1 自动化测试的意义自动化测试的意义n n通常,软件测试的工作量很大(据统计,测试会占用到通常,软件测试的工作量很大(据统计,测试会占用到40%40%的开发时间;一些可靠性要求非常高的软件,测试时间甚至的开发时间;一些可靠性要求非常高的软件,测试时间甚至占到开发时间的占到开发时间的60%60%)。而测试中的许多操作是重复性的、)。而测试中的许多操作是重复性的、非智力性的和非创造性的,并要求做准确细致的工作,计算非智力性的和非创造性的,并要求做准确细致的工作,计算机就最适合于代替人工去完成这
5、样的任务。机就最适合于代替人工去完成这样的任务。n n软件自动化测试是相对手工测试而存在的,主要是通过所开软件自动化测试是相对手工测试而存在的,主要是通过所开发的软件测试工具、脚本等来实现,具有良好的可操作性、发的软件测试工具、脚本等来实现,具有良好的可操作性、可重复性和高效率等特点。可重复性和高效率等特点。n n要理解为什么要进行自动化测试,可以从两个方面考虑:要理解为什么要进行自动化测试,可以从两个方面考虑:一是手工测试的局限性;一是手工测试的局限性;二是软件自动化测试所带来的好处。二是软件自动化测试所带来的好处。A Free sample background from Slide 5
6、第六章第六章 软件自动化测试基础软件自动化测试基础手工测试的局限性手工测试的局限性n n通过手工测试无法做到覆盖所有代码路径。通过手工测试无法做到覆盖所有代码路径。n n简单的功能性测试用例在每一轮测试中都不能少,而且具有一定的机械简单的功能性测试用例在每一轮测试中都不能少,而且具有一定的机械性、重复性,工作量往往较大。性、重复性,工作量往往较大。n n许多与时序、死锁、资源冲突、多线程等有关的错误,通过手工测试很许多与时序、死锁、资源冲突、多线程等有关的错误,通过手工测试很难捕捉到。难捕捉到。n n进行系统负载、性能测试时,需要模拟大量数据或大量并发用户等各种进行系统负载、性能测试时,需要模
7、拟大量数据或大量并发用户等各种应用场合时,很难通过于工测试来进行。应用场合时,很难通过于工测试来进行。n n进行系统可靠性测试时,需要模拟系统运行进行系统可靠性测试时,需要模拟系统运行1010年、几十年,以验证系统年、几十年,以验证系统能否稳定运行,这也是手工测试无法模拟的。能否稳定运行,这也是手工测试无法模拟的。n n如果有大量(几千)的测试用例,需要在短时间内(如果有大量(几千)的测试用例,需要在短时间内(1 1天)完成,手工天)完成,手工测试几乎不可能做到。测试几乎不可能做到。对于小型项目,自动测试可能用处不大,不值得去学习另外一种测对于小型项目,自动测试可能用处不大,不值得去学习另外一
8、种测试工具的使用方法。试工具的使用方法。A Free sample background from Slide 6 第六章第六章 软件自动化测试基础软件自动化测试基础自动化测试带来的好处自动化测试带来的好处n n缩短软件开发测试周期,可以让产品更快投放市场。缩短软件开发测试周期,可以让产品更快投放市场。n n测试效率高,充分利用硬件资源。测试效率高,充分利用硬件资源。n n节省人力资源,降低测试成本。节省人力资源,降低测试成本。n n增强测试的稳定性和可靠性。增强测试的稳定性和可靠性。n n提高软件测试的准确度和精确度,增加软件信任度。提高软件测试的准确度和精确度,增加软件信任度。n n软件测
9、试工具使测试工作相对比较容易,但能产生更高质量软件测试工具使测试工作相对比较容易,但能产生更高质量的测试结果。的测试结果。n n手工不能做的事情,自动化测试能做,如负载、性能测试。手工不能做的事情,自动化测试能做,如负载、性能测试。软件测试实行自动化进程,绝不是因为厌烦了重复的测软件测试实行自动化进程,绝不是因为厌烦了重复的测试工作,而是因为测试工作的需要,更准确地说是回归测试试工作,而是因为测试工作的需要,更准确地说是回归测试和系统测试的需要。和系统测试的需要。A Free sample background from Slide 7 第六章第六章 软件自动化测试基础软件自动化测试基础6.1
10、.2 自动化测试的定义和引入自动化测试的定义和引入n n自动化测试的定义:使用一种自动化测试工具来验证各种自动化测试的定义:使用一种自动化测试工具来验证各种软件测试的需求,它包括测试活动的管理与实施。软件测试的需求,它包括测试活动的管理与实施。n n在进行自动化测试前,首先要建立一个对软件测试自动化在进行自动化测试前,首先要建立一个对软件测试自动化的认识观。软件测试工具能提高测试效率、覆盖率和可靠的认识观。软件测试工具能提高测试效率、覆盖率和可靠性等,自动化测试虽然具有很多优点,但它只是测试工作性等,自动化测试虽然具有很多优点,但它只是测试工作的一部分,是对手工测试的一种补充。自动化测试绝不能
11、的一部分,是对手工测试的一种补充。自动化测试绝不能代替手工测试,它们各有各自的特点,其测试对象和测试代替手工测试,它们各有各自的特点,其测试对象和测试范围都不一样:范围都不一样:在系统功能逻辑测试、验收测试、适用性测试、涉及物理在系统功能逻辑测试、验收测试、适用性测试、涉及物理交互性测试时,多采用黑盒测试的手工测试方法。交互性测试时,多采用黑盒测试的手工测试方法。A Free sample background from Slide 8 第六章第六章 软件自动化测试基础软件自动化测试基础自动化测试的定义和引入自动化测试的定义和引入(续)(续)单元测试、集成测试、系统负载测试、性能测试、稳定性单
12、元测试、集成测试、系统负载测试、性能测试、稳定性测试、可靠性测试等比较适合采用自动化测试。测试、可靠性测试等比较适合采用自动化测试。那种不稳定软件的测试、开发周期很短的软件、一次性的那种不稳定软件的测试、开发周期很短的软件、一次性的软件等不适合自动化测试。软件等不适合自动化测试。工具本身并没有想象力和灵活性,根据报道,自动化测试工具本身并没有想象力和灵活性,根据报道,自动化测试只能发现只能发现1515的缺陷,而手工测试可以发现的缺陷,而手工测试可以发现8585的缺陷。的缺陷。自动化测试工具在进行功能测试时,其准确的含义是回归自动化测试工具在进行功能测试时,其准确的含义是回归测试工具,这时工具不
13、能发现更多的新问题,但可以保证测试工具,这时工具不能发现更多的新问题,但可以保证对已经测试过部分的准确性和客观性。对已经测试过部分的准确性和客观性。多数情况下,手工测试和自动化测试应该相结合,以多数情况下,手工测试和自动化测试应该相结合,以最有效的方法来完成测试任务。最有效的方法来完成测试任务。A Free sample background from Slide 9 第六章第六章 软件自动化测试基础软件自动化测试基础自动化测试的定义和引入自动化测试的定义和引入(续)(续)n n通常,当软件开发过程具有下列情况时,就需要考虑引入通常,当软件开发过程具有下列情况时,就需要考虑引入自动化测试:自动
14、化测试:(1 1)非常重要的测试;()非常重要的测试;(2 2)涉及范围很广的测试;()涉及范围很广的测试;(3 3)对)对主要功能的测试;(主要功能的测试;(4 4)容易自动化的测试;()容易自动化的测试;(5 5)很快有)很快有回报的测试;(回报的测试;(6 6)运行最频繁的测试;()运行最频繁的测试;(7 7)测试个案的)测试个案的生成,包括测试输入、测试输出、测试操作指令等;(生成,包括测试输入、测试输出、测试操作指令等;(8 8)测试的执行与控制,包括单机运行和网络多机分布式的运测试的执行与控制,包括单机运行和网络多机分布式的运行,在节假日的运行,测试个案调用控制,测试对象、测行,在
15、节假日的运行,测试个案调用控制,测试对象、测试范围与测试版本的控制等;(试范围与测试版本的控制等;(9 9)测试结果与标准输出进)测试结果与标准输出进行对比;(行对比;(1010)不吻合预期的测试结果的分析、记录、分)不吻合预期的测试结果的分析、记录、分类和报告,及总体测试状况的统计及报表的产生。类和报告,及总体测试状况的统计及报表的产生。A Free sample background from Slide 10 第六章第六章 软件自动化测试基础软件自动化测试基础6.1.3 自动化测试的原理和方法自动化测试的原理和方法n n软件测试自动化实现的基础是可以通过设计的特殊程序模拟软件测试自动化实
16、现的基础是可以通过设计的特殊程序模拟测试人员对计算机的操作过程、操作行为,或者类似于编译测试人员对计算机的操作过程、操作行为,或者类似于编译系统那样对计算机程序进行检查。系统那样对计算机程序进行检查。n n软件测试自动化实现的原理和方法主要有:直接对代码进行软件测试自动化实现的原理和方法主要有:直接对代码进行静态和动态分析、测试过程的捕获和回放、测试脚本技术、静态和动态分析、测试过程的捕获和回放、测试脚本技术、虚拟用户技术和测试管理技术。虚拟用户技术和测试管理技术。(1 1)代码分析)代码分析 代码分析类似于高级编译系统,一般针对不同的高级语代码分析类似于高级编译系统,一般针对不同的高级语言去
17、构造分析工具,在工具中定义类、对象、函数、变量等言去构造分析工具,在工具中定义类、对象、函数、变量等定义规则、语法规则;在分析时对代码进行语法扫描,找出定义规则、语法规则;在分析时对代码进行语法扫描,找出不符合编码规范的地方;不符合编码规范的地方;根据某种质量模型评价代码质量,根据某种质量模型评价代码质量,生成系统的调用关系图等。生成系统的调用关系图等。A Free sample background from Slide 11 第六章第六章 软件自动化测试基础软件自动化测试基础自动化测试的原理和方法自动化测试的原理和方法(续)(续)(2 2)捕获和回放)捕获和回放 代码分析是一种白盒测试的自
18、动化方法,捕获和回放则代码分析是一种白盒测试的自动化方法,捕获和回放则是一种黑盒测试的自动化方法。捕获是将用户每一步操作都是一种黑盒测试的自动化方法。捕获是将用户每一步操作都记录下来。这种记录的方式有两种:程序用户界面的像素坐记录下来。这种记录的方式有两种:程序用户界面的像素坐标或程序显示对象(窗口、按钮、滚动条等)的位置,以及标或程序显示对象(窗口、按钮、滚动条等)的位置,以及相对应的操作、状态变化或是属性变化。所有的记录转换为相对应的操作、状态变化或是属性变化。所有的记录转换为一种脚本语言所描述的过程,以模拟用户的操作。一种脚本语言所描述的过程,以模拟用户的操作。回放时,将脚本语言所描述的
19、过程转换为屏幕上的操回放时,将脚本语言所描述的过程转换为屏幕上的操作,然后将被测系统的输出记录下来同预先给定的标准结果作,然后将被测系统的输出记录下来同预先给定的标准结果比较。这可以大大减轻黑盒测试的工作量,在迭代开发的过比较。这可以大大减轻黑盒测试的工作量,在迭代开发的过程中,能够很好地进行回归测试。程中,能够很好地进行回归测试。A Free sample background from Slide 12 第六章第六章 软件自动化测试基础软件自动化测试基础自动化测试的原理和方法自动化测试的原理和方法(续)(续)n n关于自动化测试中的关于自动化测试中的“录制录制回放回放”技术技术 目前的自动
20、化负载测试解决方案几乎都是采用目前的自动化负载测试解决方案几乎都是采用“录制录制-回放回放”的技术。的技术。所谓的所谓的“录制录制-回放回放”技术,就是先由手工完成一遍需技术,就是先由手工完成一遍需要测试的流程,同时由计算机记录下这个流程期间客户端要测试的流程,同时由计算机记录下这个流程期间客户端和服务器端之间的通信信息,这些信息通常是一些协议和和服务器端之间的通信信息,这些信息通常是一些协议和数据,并形成特定的脚本程序数据,并形成特定的脚本程序 (Script)(Script)。然后在系统的统一。然后在系统的统一管理下同时生成多个虚拟用户,并运行该脚本,监控硬件管理下同时生成多个虚拟用户,并
21、运行该脚本,监控硬件和软件平台的性能,提供分析报告或相关资料。这样,通和软件平台的性能,提供分析报告或相关资料。这样,通过几台机器就可以模拟出成百上千的用户对应用系统进行过几台机器就可以模拟出成百上千的用户对应用系统进行负载能力的测试。负载能力的测试。A Free sample background from Slide 13 第六章第六章 软件自动化测试基础软件自动化测试基础自动化测试的原理和方法自动化测试的原理和方法(续)(续)(3 3)脚本技术)脚本技术 脚本是一组测试工具执行的指令集合,也是计算机程序脚本是一组测试工具执行的指令集合,也是计算机程序的一种形式。脚本可以通过录制测试的操作
22、产生,然后再做的一种形式。脚本可以通过录制测试的操作产生,然后再做修改,这样可以减少脚本编程的工作量。当然,也可以直接修改,这样可以减少脚本编程的工作量。当然,也可以直接用脚本语言编写脚本。脚本技术可以分为以下几类:用脚本语言编写脚本。脚本技术可以分为以下几类:线性脚本线性脚本是录制手工执行的测试用例得到的脚本。是录制手工执行的测试用例得到的脚本。结构化脚本结构化脚本类似于结构化程序设计,具有各种逻辑结构类似于结构化程序设计,具有各种逻辑结构(顺序、分支、循环),而且具有函数调用功能。(顺序、分支、循环),而且具有函数调用功能。共享脚本共享脚本是指某个脚本可被多个测试用例使用,即脚本是指某个脚
23、本可被多个测试用例使用,即脚本语言允许一个脚本调用另一个脚本。语言允许一个脚本调用另一个脚本。数据驱动脚本数据驱动脚本将测试输入存储在独立的数据文件中。将测试输入存储在独立的数据文件中。关键字驱动脚本关键字驱动脚本是数据驱动脚本的逻辑扩展。是数据驱动脚本的逻辑扩展。A Free sample background from Slide 14 第六章第六章 软件自动化测试基础软件自动化测试基础6.1.4 自动化测试工具的作用及优势自动化测试工具的作用及优势n n软件测试自动化通常借助测试工具进行。测试工具可以进软件测试自动化通常借助测试工具进行。测试工具可以进行部分的测试设计、实现、执行和比较的
24、工作。部分的测行部分的测试设计、实现、执行和比较的工作。部分的测试工具可以实现测试用例的自动生成,但通常的工作方式试工具可以实现测试用例的自动生成,但通常的工作方式为人工设计测试用例,使用工具进行用例的执行和比较。为人工设计测试用例,使用工具进行用例的执行和比较。如果采用自动比较技术,还可以自动完成测试用例执行结如果采用自动比较技术,还可以自动完成测试用例执行结果的判断,从而避免人工比对存在的疏漏问题。果的判断,从而避免人工比对存在的疏漏问题。n n自动化测试工具的作用:自动化测试工具的作用:(1 1)确定系统最优的硬件配置。)确定系统最优的硬件配置。(2 2)检查系统的可靠性。)检查系统的可
25、靠性。(3 3)检查系统硬件和软件的升级情况。)检查系统硬件和软件的升级情况。(4 4)评估新产品。)评估新产品。A Free sample background from Slide 15 第六章第六章 软件自动化测试基础软件自动化测试基础软件件测试自自动化的化的实施施过程程n n熟悉、分析测试用例n n把已有的测试用例规类,写成比较简单的测试自动化计划书n n开始自动化测试程序的编写n n不断完善自动化测试系统 测试自动化是一项庞大的工程,在真正动手之前,必须尝试把所有的因素及可能性研究一遍,然后制定方案,因为此方案一旦确定,日后修改要付出很大代价,浪费许多时间和人力。A Free sam
26、ple background from Slide 16 第六章第六章 软件自动化测试基础软件自动化测试基础自动化测试工具的作用及优势自动化测试工具的作用及优势(续)(续)n n自动化测试工具的优势主要体现在以下几个方面:自动化测试工具的优势主要体现在以下几个方面:(1 1)记录业务流程并生成脚本程序的能力。)记录业务流程并生成脚本程序的能力。(2 2)对对各各种种网网络络设设备备(客客户户机机或或服服务务器器、其其它它网网络络设设备备)的的模仿能力。模仿能力。(3 3)用有限的资源生成高质量虚拟用户的能力。)用有限的资源生成高质量虚拟用户的能力。(4 4)对于整个软件和硬件系统中各个部分的监
27、控能力。)对于整个软件和硬件系统中各个部分的监控能力。(5 5)对于测试结果的表现和分析能力。)对于测试结果的表现和分析能力。A Free sample background from Slide 17 第六章第六章 软件自动化测试基础软件自动化测试基础6.1.5 自动化测试的运用自动化测试的运用n n测试用例(测试用例(Test CaseTest Case,测试个案)的生成测试个案)的生成n n测试的执行与控制测试的执行与控制n n测试结果与标准输出的对比测试结果与标准输出的对比n n不吻合测试结果的分析处理不吻合测试结果的分析处理n n测试状态的统计和报表的生成测试状态的统计和报表的生成n
28、 n自动化测试与开发中产品每日构建的配合自动化测试与开发中产品每日构建的配合n n采用自动化比较技术采用自动化比较技术A Free sample background from Slide 18 第六章第六章 软件自动化测试基础软件自动化测试基础6.2 软件自动化测试生存周期方法学软件自动化测试生存周期方法学自动化测试生存自动化测试生存周期方法学周期方法学1.自动化测试决定自动化测试决定2.测测试试工工具具获获取取3.自动化测试引入过程自动化测试引入过程4.测试计划、设计与开发测试计划、设计与开发5.测测试试执执行行与与管管理理6.测试评审与评估测试评审与评估图图 自动化测试生存周期方法学结构
29、自动化测试生存周期方法学结构A Free sample background from Slide 19 第六章第六章 软件自动化测试基础软件自动化测试基础 软件自动化测试生存周期方法学软件自动化测试生存周期方法学(续)(续)n n采用自动化测试方法的确认采用自动化测试方法的确认n n自动化测试工具的获取自动化测试工具的获取n n自动化测试的引入阶段自动化测试的引入阶段 包括测试过程分析和测试工具的考查。包括测试过程分析和测试工具的考查。n n测试计划与测试设计测试计划与测试设计 包括制订测试计划、建立测试环境、测试设计和包括制订测试计划、建立测试环境、测试设计和设计开发。设计开发。n n测试
30、执行与管理测试执行与管理n n测试活动评审与评估测试活动评审与评估A Free sample background from Slide 20 第六章第六章 软件自动化测试基础软件自动化测试基础6.3 自动化测试生存周期方法的应用自动化测试生存周期方法的应用自动化测试生自动化测试生存周期方法学存周期方法学1.自动化测试决定自动化测试决定2.测测试试工工具具获获取取3.自动化测试引入过程自动化测试引入过程4.测试计划、设计与开发测试计划、设计与开发5.测测试试执执行行与与管管理理6.测试评审与评估测试评审与评估A.系统生存周期过程评估与改进系统生存周期过程评估与改进F.生成维护阶段生成维护阶段C
31、.小型工具先导小型工具先导/原型原型D.系统设计与开发阶段系统设计与开发阶段B.业业务务分分析析与与需需求求阶阶段段E.组组装装与与测测试试阶阶段段A Free sample background from Slide 21 第六章第六章 软件自动化测试基础软件自动化测试基础建立正确的自动化测试目标建立正确的自动化测试目标 目前,软件自动化测试还不能解决所有的测试问题,目前,软件自动化测试还不能解决所有的测试问题,因此,需要建立正确的自动化测试目标。因此,需要建立正确的自动化测试目标。n n测试计划产生:主要靠测试工程师与软件生产质量保证测试计划产生:主要靠测试工程师与软件生产质量保证 专家的
32、合作,自动化工具只能起到一定的辅助作用。专家的合作,自动化工具只能起到一定的辅助作用。n n一种测试工具不完全适用于所有测试一种测试工具不完全适用于所有测试n n自动测试不一定减轻工作量自动测试不一定减轻工作量n n测试工具不一定易于使用测试工具不一定易于使用n n自动化测试的普遍应用存在局限自动化测试的普遍应用存在局限n n测试覆盖率不会达到百分之百测试覆盖率不会达到百分之百A Free sample background from Slide 22 第六章第六章 软件自动化测试基础软件自动化测试基础测试自动化限制测试自动化限制 测试自动化可以带来非常明显的收益,但也有以下限制:测试自动化可
33、以带来非常明显的收益,但也有以下限制:n n不能取代手工测试不能取代手工测试 n n手工测试比自动测试发现的缺陷更多手工测试比自动测试发现的缺陷更多n n对测试质量的依赖性极大对测试质量的依赖性极大n n测试自动化可能会制约软件开发。测试自动化可能会制约软件开发。n n工具本身并无想象力工具本身并无想象力 另外,人工测试比测试工具更优越的另一个方面是可另外,人工测试比测试工具更优越的另一个方面是可以处理意外事件。虽然工具也能处理部分异常事件,但是以处理意外事件。虽然工具也能处理部分异常事件,但是对真正的突发事件和不能由软件解决的问题就无能为力。对真正的突发事件和不能由软件解决的问题就无能为力。
34、A Free sample background from Slide 23 第六章第六章 软件自动化测试基础软件自动化测试基础6.4 软件自动化测试工具简述软件自动化测试工具简述6.4.1 6.4.1 自动化测试工具的特征自动化测试工具的特征6.4.2 6.4.2 自动化测试工具的分类自动化测试工具的分类6.4.3 6.4.3 选择自动化测试工具选择自动化测试工具6.4.4 6.4.4 常用测试工具概要常用测试工具概要ReturnA Free sample background from Slide 24 第六章第六章 软件自动化测试基础软件自动化测试基础6.4.1 自动化测试工具的特征自动
35、化测试工具的特征n n支持脚本化语言支持脚本化语言(Scripting Language)Scripting Language)n n对程序界面中对象的识别能力对程序界面中对象的识别能力n n支持函数的可重用支持函数的可重用n n支持外部函数库支持外部函数库n n抽象层抽象层将程序界面中的对象实体映射成逻辑对象将程序界面中的对象实体映射成逻辑对象n n分布式测试分布式测试(Distributed Test)Distributed Test)的支持的支持n n支持数据驱动测试支持数据驱动测试(Data-Driven Test)Data-Driven Test)n n错误处理错误处理n n调试器调
36、试器(Debugger)Debugger)n n源代码管理源代码管理n n支持脚本的命令行支持脚本的命令行(Command Line)Command Line)方式方式A Free sample background from Slide 25 第六章第六章 软件自动化测试基础软件自动化测试基础6.4.2 自动化测试工具的分类自动化测试工具的分类测试工具可以从两个不同的方面去分类。测试工具可以从两个不同的方面去分类。n n根据测试方法不同,自动化测试工具可以分为:根据测试方法不同,自动化测试工具可以分为:白盒测试工具、黑盒测试工具白盒测试工具、黑盒测试工具n n根据测试的对象和目的,自动化测试
37、工具可以分为:根据测试的对象和目的,自动化测试工具可以分为:单元测试工具、功能测试工具、负载测试工具、性能测试单元测试工具、功能测试工具、负载测试工具、性能测试工具、工具、WebWeb测试工具、数据库测试工具、回归测试工具、测试工具、数据库测试工具、回归测试工具、嵌入式测试工具、页面链接测试工具、测试设计与开发工嵌入式测试工具、页面链接测试工具、测试设计与开发工具、测试执行和评估工具、测试管理工具等具、测试执行和评估工具、测试管理工具等A Free sample background from Slide 26 第六章第六章 软件自动化测试基础软件自动化测试基础白盒测试工具白盒测试工具n n白
38、盒测试工具一般是针对被测源程序进行的测试,测试所发现的故障白盒测试工具一般是针对被测源程序进行的测试,测试所发现的故障可以定位到代码级。根据测试工具工作原理的不同,白盒测试的自动可以定位到代码级。根据测试工具工作原理的不同,白盒测试的自动化工具可分为静态测试工具和动态测试工具。化工具可分为静态测试工具和动态测试工具。静态测试工具静态测试工具是在不执行程序的情况下,分析软件的特性。静态是在不执行程序的情况下,分析软件的特性。静态分析主要集中在需求文档、设计文档以及程序结构方面。按照完成的分析主要集中在需求文档、设计文档以及程序结构方面。按照完成的职能不同,静态测试工具包括以下几种类型:职能不同,
39、静态测试工具包括以下几种类型:(1)(1)代码审查代码审查 (2)(2)一致性检查一致性检查 (3)(3)错误检查错误检查 (4)(4)接口分析接口分析 (5)(5)输入输出规格说明分析检查输入输出规格说明分析检查 (6)(6)数据流分析数据流分析 (7)(7)类型分析类型分析 (8)(8)单元分析单元分析 (9)(9)复杂度分析复杂度分析 静态测试工具的代表有静态测试工具的代表有TelelogicTelelogic公司的公司的LogiscopeLogiscope软件、软件、PRPR公司的公司的PRQAPRQA软件软件A Free sample background from Slide 27
40、 第六章第六章 软件自动化测试基础软件自动化测试基础白盒测试工具白盒测试工具(续)(续)动态测试工具动态测试工具是直接执行被测程序以提供测试活动。是直接执行被测程序以提供测试活动。它需要实际运行被测系统,并设置断点,向代码生成的可它需要实际运行被测系统,并设置断点,向代码生成的可执行文件中插入一些监测代码,掌握断点这一时刻程序运执行文件中插入一些监测代码,掌握断点这一时刻程序运行数据(对象属性、变量的值等),具有功能确认、接口行数据(对象属性、变量的值等),具有功能确认、接口测试、覆盖率分析、性能分析等性能。动态测试工具可以测试、覆盖率分析、性能分析等性能。动态测试工具可以分为以下几种类型:分
41、为以下几种类型:(1)(1)功能确认与接口测试功能确认与接口测试 (2)(2)覆盖测试覆盖测试 (3)(3)性能测试性能测试 (4)(4)内存分析内存分析 常用的动态工具有:常用的动态工具有:CompuwareCompuware公司的公司的DevPartnerDevPartner IBMIBM公司的公司的 Rational PurifyRational PurifyA Free sample background from Slide 28 第六章第六章 软件自动化测试基础软件自动化测试基础黑盒测试工具黑盒测试工具n n黑盒测试工具是在明确软件产品应具有的功能的条件下,黑盒测试工具是在明确软件
42、产品应具有的功能的条件下,完全不考虑被测程序的内部结构和内部特性,通过测试来完全不考虑被测程序的内部结构和内部特性,通过测试来检验软件功能是否按照软件需求规格的说明正常工作。检验软件功能是否按照软件需求规格的说明正常工作。n n按照完成的职能不同,黑盒测试工具可以分为:按照完成的职能不同,黑盒测试工具可以分为:功能测试工具功能测试工具用于检测程序能否达到预期的功能要求用于检测程序能否达到预期的功能要求并正常运行。并正常运行。性能测试工具性能测试工具用于确定软件和系统的性能。用于确定软件和系统的性能。n n常用的黑盒测试工具有:常用的黑盒测试工具有:CompuwareCompuware公司的公司
43、的QACenterQACenter IBM IBM公司的公司的Rational Rational TeamTestTeamTest A Free sample background from Slide 29 第六章第六章 软件自动化测试基础软件自动化测试基础网网络测试络测试工具工具 这类工具主要包括网络故障定位工具、网络性能检测工具、网络仿真模拟工具等。他们分析分布式应用性能,关注应用、网络和其他元素内部的交互式活动,以便使网络管理员能够了解不同位置和不同活动之间应用的行为。Network Associates提供的Network Sniffer,是常用的网络打包监视软件,能够截取网络打包并
44、查看所传递的资料内容,对C/S形式软件测试的帮助很大,并可以帮助软件找到不少软件缺陷。A Free sample background from Slide 30 第六章第六章 软件自动化测试基础软件自动化测试基础测试设计与开发工具测试设计与开发工具n n测试设计是说明被测软件特征或特征组合的方法,并确定测试设计是说明被测软件特征或特征组合的方法,并确定选择相关测试用例的过程。测试开发是将测试设计转换成选择相关测试用例的过程。测试开发是将测试设计转换成具体的测试用例的过程。具体的测试用例的过程。n n测试设计和开发需要的工具类型有:测试设计和开发需要的工具类型有:测试数据生成器(测试数据生成器
45、(ParasoftParasoft C+Test C+Test)基于需求的测试设计工具基于需求的测试设计工具捕获捕获/回放回放覆盖分析覆盖分析A Free sample background from Slide 31 第六章第六章 软件自动化测试基础软件自动化测试基础测试执行和评估工具测试执行和评估工具n n测试执行和评估是执行测试用例并对测试结果进行评估的测试执行和评估是执行测试用例并对测试结果进行评估的过程,包括选择用于执行的测试用例、设置测试环境、运过程,包括选择用于执行的测试用例、设置测试环境、运行所选择的测试用例、记录测试执行过程、分析潜在的故行所选择的测试用例、记录测试执行过程、
46、分析潜在的故障,并检查测试工作的有效性。障,并检查测试工作的有效性。n n评估类工具对执行测试用例和评估测试结果过程起到辅助评估类工具对执行测试用例和评估测试结果过程起到辅助作用。作用。n n测试执行和评估类工具有:测试执行和评估类工具有:捕获捕获/回放回放覆盖分析覆盖分析存储器测试存储器测试A Free sample background from Slide 32 第六章第六章 软件自动化测试基础软件自动化测试基础测试管理工具测试管理工具n n测试管理工具用于对测试过程进行管理,帮助完成制定测测试管理工具用于对测试过程进行管理,帮助完成制定测试计划,跟踪测试运行结果。通常,测试管理工具对测
47、试试计划,跟踪测试运行结果。通常,测试管理工具对测试计划、测试用例、测试实施进行管理,还包括缺陷跟踪管计划、测试用例、测试实施进行管理,还包括缺陷跟踪管理等。理等。n n常用的测试管理工具有:常用的测试管理工具有:IBM IBM公司的公司的RationalRational Test ManagerTest Managern n测试管理工具包括以下内容:测试管理工具包括以下内容:测试用例管理测试用例管理缺陷跟踪管理(问题跟踪管理)缺陷跟踪管理(问题跟踪管理)配置管理配置管理A Free sample background from Slide 33 第六章第六章 软件自动化测试基础软件自动化测试
48、基础6.4.3 选择自动化测试工具选择自动化测试工具n n测试人员在选择和使用自动化测试工具时,可以从以下测试人员在选择和使用自动化测试工具时,可以从以下角度来考虑:角度来考虑:按照用途选择匹配的测试工具按照用途选择匹配的测试工具在适当的生命周期选择测试工具在适当的生命周期选择测试工具按照测试人员的实际技能选择匹配的测试工具按照测试人员的实际技能选择匹配的测试工具选择一个可提供的测试工具选择一个可提供的测试工具A Free sample background from Slide 34 第六章第六章 软件自动化测试基础软件自动化测试基础6.4.4 常用测试工具概要常用测试工具概要n nPara
49、softParasoft C+Test C+Testn nTureCoverageTureCoveragen nQACenterQACentern nDataFactoryDataFactoryn nWinRunnerWinRunnern nMS ACTMS ACTn nRational RobotRational Robotn nPureLoadPureLoadA Free sample background from Slide 35 第六章第六章 软件自动化测试基础软件自动化测试基础QACenter 由Compuware公司的产品,帮助测试人员创建快速/可重用的测试过程,包括针对回归、强
50、度、单元、并发、集成、移植、容量、负载的测试,还包括自动执行测试和产生测试结果文档。A Free sample background from Slide 36 第六章第六章 软件自动化测试基础软件自动化测试基础WinRunner 由Mercyry Interactive公司提供的企业级的功能检测工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版本进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。A Free sample backg