将执行代码与测试数据分开的一种策略是数据驱动的自动化测试(经验127)。这种分离有利于测试生成,并具有以下优点:
·测试易于理解和评审。
·可以使用不同的测试工具或程序设计环境生成和执行测试。
·独立的测试用例生成器比较容易测试。如果使用的是随机方法,应该知道程序设计环境提供的随机数算法往往很弱,数据的随机性可能不像所想像的那样强。参阅(Park和Miller 1988)。Kaner和Vokey(1984)提供了一种随机数生成器的经过全面测试的参数集,可以很容易地采用java或任何其他能处理高精度整数计算的语言来实现。
·如果预先生成数据,则更容易重复测试。我们见到过每次运行测试脚本都会改变测试的例子。如果不能预先生成数据,则需要采用其他度量以保证可重复性,例如记录数据或用于生成数据的种子。在测试脚本中加入指令以便使用这些记录数据,这样会增加复杂性。
·报告所发现的程序错误更容易。程序员的第一本能就是对测试员的工具产生疑问。
·不同的测试专业人员会各自关注自动化测试的不同方面,使用他们自认为最合适的任何工具或语言。