本章介绍功能自动化测试的一些基本概念。

自动测试

自动测试过程是通过模拟人工操作,完成对被测试系统的输入,并且对输出进行检验的过程。

自动测试是由软件代替人工操作,对被测试系统的 GUI 发出指令,模拟操作,完成自动测试过程。

● 测试脚本

自动测试,是使用一个程序来测试另一个程序(被测试的应用系统)功能的正确性。如果用来测试的程序本身非常复杂,也需要被测试,或者编写困难,那么自动测试失去了意义。

因此,用来测试另外一个程序的程序往往是非常简单的,我们把这个程序称为“测试脚本”。

测试脚本通常在测试工具的 IDE 里执行,并且获得 IDE 的支持。

● 自动记录

当我们编写测试脚本的时候,往往发现编写脚本本身是很困难的:了解脚本的语法、了解测试过程、把测试过程转换称为测试脚本语句。

自动记录,是通过记录一个操作过程来获得测试脚本的功能。通过自动记录,我们能够得到一个操作的基本的脚本,通过修改这个脚本,我们得到更通用的测试脚本。

● 同步点

在执行测试脚本的时候,测试脚本语句的操作对象是 GUI 的组件。测试脚本通过这个组件的属性(如:名称、位置、 winclass 、 disable 等)来确定哪个组件是我们需要操作的组件。

这个查找组件的过程如果失败,意味着:第一,应用系统的响应比较慢,需要等待一段时间再进行一次定位;或者第二,该组件不存在。

这个查找、定位组件的过程,我们称为同步点。

AutoRunner 的同步点都是隐含方式的:在操作对象的时候进行自动同步,自动设置同步点。

● 检查点

测试的目的是检查数据是否正确。

在测试的过程中,我们需要检查某个组件的某些属性满足某个条件。这个检查的位置和条件,我们称为检查点。

在 AutoRunner 中,使用 check ( " objectname " , " property " , " 期望值 " )来作为检查点的脚本语句,它检查对象 objectname 的属性 property 是否和期望值一致。

在使用中,可以使用检查点来检验系统的各个方面,如数据库、 GUI 属性等。  

● 参数化与数据驱动

测试脚本是针对一个测试过程的。一个测试过程往往需要众多的数据来测试。通过自动录制得到的脚本,所有的输入数据都是常数,是固定的。

如果需要使用一个测试脚本测试多组数据,需要对脚本进行参数化,把固定的常数修改为来自数据源变量。

这个过程我们称为参数化。

采用了参数化的脚本,我们称为数据驱动的模式。