测试脚本是自动执行测试过程(或部分测试过程)的计算机可读指令。测试脚本可以被创建(记录)或使用测试自动化工具自动生成,或用编程语言编程来完成,也可综合前三种方法来完成。
测试脚本的结构
为了提高测试脚本的可维护性和可复用性,必须在执行测试脚本之前对它们进行构建。或许会发现这样的情况,即有的操作将出现在几个测试过程中。因此,应有目的地确定这些操作的目标,这样就可以复用它们的实施。
例如,可以采用这样一些测试过程,这些过程是由对某个记录执行的不同操作组成的。这些测试过程可能是添加、修改和删除某个记录的操作的组合:
■ 添加、修改、删除(显而易见的操作)
■ 增加、删除、修改
■ 增加、删除、增加、删除...
■ 增加、增加、增加...
如果把这些操作看作是独立的测试过程,分别在不同的测试脚本中对它们进行实施,而且在其他测试过程中复用它们,那么可以达到更高的复用水平。
另外,还可以有目的地以如下方式来构建测试过程:更改目标软件时,需要对测试过程进行局部的可控制的变更。这将使得测试过程和测试脚本对目标软件的变化有更大的应变能力。例如,假设软件的登录部分已经改变。在遍历该登录部分的所有测试用例中,只有关于登录的测试过程和测试脚本需要进行改变。
记录技术
为使测试脚本获得更高的可维护性,应该以最不易受测试对象变化影响的方式来记录测试脚本。例如,在填写对话框字段的测试脚本中,从一个字段跳转到下一个字段有以下几种选择方式:
■ 使用 TAB 键
■ 使用鼠标
■ 使用键盘快捷键
在这些选择中,有一些选择更易于受到设计变化的影响。如果在屏幕上插入了一个新的字段,则使用 TAB 键将不是很可靠。如果重新指定快捷键,则它们也无法提供可靠的记录手段。当使用鼠标确定字段的方法受变化制约时,这种方法亦不可靠。然而,一些测试自动化工具带有测试脚本记录器,可以通过比较可靠的方法来命令记录器标识该字段,例如可以通过开发工具(PowerBuilder、SQLWindows 或 Visual Basic)来指定它的对象名。在这种方式下,记录的测试脚本不会受用户界面的微小变化所影响(例如,布局变更、字段标签变更、格式变更等等)。
数据驱动的测试
许多测试过程包括在给定的数据输入屏幕内输入几组字段数据,检查字段确认功能、错误处理等等。它们的过程步骤都是一样的;只有数据不同。不要记录每个输入数据集的测试脚本,而应该建立单独的记录,然后对其进行修改以处理多个数据集。例如,因为无效数据而产生相同错误的所有数据集可以共享同一个已记录的测试脚本。对测试脚本进行修改,将数据作为可变信息进行访问,从文件或其他外部源中读取这些数据集,而且在所有相关数据集间循环执行。
如果在编制测试脚本或测试代码时已经考虑了输入数据集和输出数据集的循环执行因素,则必须先建立相应数据集。这些数据集的常用格式是文本文件中用逗号隔开的字段的记录。这种格式易于从测试脚本和测试代码中读取,同时也易于创建和维护。
多数数据库包和电子表格包可以生成逗号分隔的文本输出。采用这些包来组织或获取数据集有两个重要的优点。首先,它们为输入和编辑数据提供一个构造环境,比单纯使用文本编辑器或文字处理软件要好。其次,它们大多具有查询现有的数据库并捕获返回数据的能力,因此很容易从现有源中提取数据集。