《软件测试与质量保证》课件第12章测试自动化的技术《软件测试与质量保证》课件内容提要12.1录制/回放技术12.2脚本技术12.3自动比较12.4自动化前后处理《软件测试与质量保证》课件12.1录制/回放技术录制回放技术是以前比较流行的脚本生成技术。录制回放技术可以自动录制测试执行者所做的所有操作,并将这些操作写成工具可以识别的脚本。工具通过读取脚本,并执行脚本中定义的指令,可以重复测试执行者手工完成的操作。《软件测试与质量保证》课件录制/回放技术的优点录制回放技术对于自动化测试的初始开展,可以起到积极的效果,其优点在于:1.可以很快得到可再现的测试比较结果。2.自动产生可以直接使用的测试脚本。3.自动准备测试数据。《软件测试与质量保证》课件录制/回放技术的缺点录制回放技术的缺点,会随着使用的次数的增加越来越明显,主要表现在:1.脚本的维护性2.效率问题3.界面识别问题《软件测试与质量保证》课件12.2脚本技术脚本技术是实现自动化测试最基本的一条要求,脚本语言具有与常用编程语言类似的语法结构,并且绝大多数为解释型语言,可以方便的在IDE中对脚本进行编辑修改。任何一种脚本技术应该具备以下功能:1.支持多种常用的变量和数据类型。2.支持数组、列表、结构,以及其它混合数据类型。3.支持各种条件逻辑,(IF、CASE等语句)。4.支持循环(FOR、WHILE)。5.支持函数的创建和调用。6.支持文件读写和数据源连接。《软件测试与质量保证》课件脚本技术的种类线性脚本结构化脚本共享脚本数据驱动脚本关键字驱动脚本《软件测试与质量保证》课件1、线性脚本线性脚本是通过录制手工执行的测试用例时得到的脚本,这种脚本包含所有的击键(键盘和鼠标)、控制测试软件的控制键及输入数据的数字键,可以添加比较指令实现结果比较。如果用户只使用线性脚本技术,即录制每个测试用例的全部内容,则每个测试用例可以通过脚本完整地被回放。几乎任何可重复的操作都可以使用线性脚本技术自动化。实例见P161《软件测试与质量保证》课件线性脚本技术的优缺点优点:1.不需要深入工作或者计划;2.可以快速开始自动化;3.用户不必是编程人员;缺点:1.测试数据是“捆绑”在脚本中的;2.无法共享或重用脚本;3.容易受软件变化的影响;4.修改代价大,维护成本高;《软件测试与质量保证》课件2、结构化脚本结构化脚本类似于结构化程序设计,含有控制脚本执行的指令,支持顺序、选择和循环(叠代控制)3种基本控制结构,一个脚本可以调用另一个脚本。由于引进其他指令改变控制结构,可以提高重用性,增加功能和灵活性,改善维护性。需要一定的编程技术。实例见P162《软件测试与质量保证》课件结构化脚本的优缺点优点:健壮性更好,可以对一些容易导致测试失败的特殊情况进行处理;可以批量执行许多类似的功能,例如需要重复的指令可以使用叠代结构;可以作为模块被其他脚本调用。缺点脚本变得更加复杂,而且测试数据仍然“捆绑”在脚本中。《软件测试与质量保证》课件3、共享脚本共享脚本是脚本可以被多个测试用例使用。这种脚本技术的思想是将一些常见任务单独编制脚本,当要执行这些任务的时候,只需要在测试用例适当的地方调用这些脚本即可。实例见P164《软件测试与质量保证》课件共享脚本的优缺点优点:以较少的开销实现类似的测试;维护开销低于线性脚本;减少了重复的脚本;可以在共享脚本中添加更智能的功能;缺点:需要跟踪更多的脚本,文档、名字以及存储,如果管理得不好,很难找出适当的脚本;《软件测试与质量保证》课件4、数据驱动脚本数据驱动脚本技术将测试输入存储到独立的(数据)文件中,而不是存储在脚本中。脚本中存放控制信息。执行测试时,从文件而不是直接从脚本中读取测试输入。实例见P167《软件测试与质量保证》课件数据驱动脚本的优缺点优点:可以快速增加类似的测试;对第二个及以后类似的测试无额外的维护开销。缺点:初始建立的开销较大需要专业(编程)支持《软件测试与质量保证》课件5、关键字驱动脚本关键字驱动脚本技术实际上是较复杂的数据驱动技术的逻辑扩展。用关键字的形式将测试逻辑封装在数据文件中,测试工具只要能够解释这些关键字即可对其应用自动化。关键字驱动脚本有如下特征:测试脚本由控制脚本、测试文件、支持脚本组成;控制脚本不再受被测软件或特殊应用的约束;测试文件中使用关键字描述测试事例;控制脚本依次读取测试文件中的每个关键字并调用相关的支持脚本。《软件测试与质量保证》课件12.3自动比较的定义自动比较就是让测试工具自动完成实际输出和预期输出之间的比较任务。自动比较的类型:简单比较复杂比较动态比较执行后比较《软件测试与质量保证》课件12.3自动比较的定义简单比较——又称无智能比较,在实际输出与预期输出之间寻求完全相同的匹配。复杂比较——又称智能比较,允许用已知的差异来比较实际输出和预期输出。比如:带时间戳的发票的比较。动态比较——在执行测试用例时进行的比较。执行后比较——在测试用例运行后执行的比较《软件测试与质量保证》课件12.4前处理和后处理•在大多数测试用例中,开始测试之前要具备一些适当的先决条件。这些先决条件应该在测试之前实现,称为自动化的前处理。•每次测试执行过后需要进行恢复工作,称为自动化的后处理。《软件测试与质量保证》课件前处理和后处理的自动化实现方式脚本前处理和后处理任务可以在脚本程序里执行,所以它们可以直接由测试执行工具来实现。鉴于许多任务都很简单,因此可更有效地用共享脚本程序来执行它们。命令行文件大多数前处理和后处理任务能用一些形式的命令文件来执行(像是命令程序、外壳脚本或批处理文件等)。《软件测试与质量保证》课件小结录制回放技术可以自动录制测试执行者所做的所有操作,并将这些操作写成工具可以识别的脚本。脚本技术是实现自动化测试最基本的一条要求,脚本语言具有与常用编程语言类似的语法结构,并且绝大多数为解释型语言,脚本技术分为以下几种:线性脚本、结构化脚本、共享脚本、数据驱动脚本和关键字驱动脚本。比较是软件测试中自动化程度最高的任务,通常也是从自动化受益最多的任务。动态比较就是在执行测试用例时进行的比较。执行后比较是在测试用例运行后执行的比较。在大多数测试用例中,开始测试之前要具备一些适当的先决条件。这些先决条件应该被定义为每一个测试用例的一部分并在测试之前实现,称为自动化的前处理。每次测试执行过后需要进行恢复工作,称为自动化的后处理。