自动化测试较为官方的解释是把人为驱动的测试行为转化为机器执行的一种过程。在这个过程里,时间、人力和硬件资源成本都得到了节省,通过评审之后的测试用例,测试人员分步骤执行用例中的规程,再将实际运行结果和预期结果进行对比。
自动化测试的技术非常多,今天笔者重点介绍3种常见的技术。
1.录制与回放测试
录制是指使用自动化测试工具对桌面应用程序或者是Web页面的某一项功能进行测试并记录操作过程。录制过程中程序数据和脚本混合,每一个测试过程都会生成单独的测试脚本。无论是简单的界面还是复杂的界面,进行多次测试就需要多次录制。
录制过程会生成对应的脚本。回放可以查看录制过程中存在的错误和不足,如图片刷新缓慢、URL地址无法打开等。
2.脚本测试
测试脚本是测试计算机程序执行的指令集合。脚本可以使用录制过程中生成的脚本,这些脚本一般是由JavaScript、Python、Perl等语言生成。测试脚本主要有以下几种。
(1)线性脚本
线性脚本是指通过手动执行测试用例得到的脚本,包括基本的鼠标事件、页面选择、数据输入等操作。线性脚本可以完整地进行回放。
(2)结构化脚本
结构化脚本在测试过程中具有逻辑顺序以及函数调用功能,如顺序执行、分支语句执行、循环等。结构化脚本可以灵活地测试各种复杂功能。
(3)共享脚本
在测试中,一个脚本可以调用其他脚本进行测试,这些被调用的脚本就是共享脚本。共享脚本可以使脚本被多个测试用例共享。
3.数据驱动测试
数据驱动指的是从数据文件中读取输入数据并将数据以参数的形式输入脚本测试,不同的测试用例使用不同类型的数据文件。数据驱动模式实现了数据和脚本分离,相对于录制与回放测试技术,数据驱动测试极大地提高了脚本利用率和可维护性,但是对于界面变化较大的情景不适合数据驱动测试。数据驱动测试主要包括以下几种。
(1)关键字驱动测试
关键字驱动是对数据驱动的改进,它将数据域与脚本分离、界面元素与内部对象分离、测试过程与实现细节分离。关键字驱动的测试逻辑为按照关键字进行分解得到数据文件,常用的关键字主要包括被操作对象、操作和值。
(2)行为驱动测试
行为驱动测试指的是根据不同的测试场景设计不同的测试用例,需要开发人员、测试人员、产品业务分析人员等协作完成。行为驱动测试是基于当前项目的业务需求、数据处理、中间层进行的协作测试,它注重的是测试软件的内部运作变化,从而解决单元测试中实现的细节问题。