数据驱动测试(Data-driven testing)是一种软件测试的方式,数据驱动测试会配合一个有许多测试输入及对应的验证输出值的表格,而其测试环境设定及控制不会固定在程式码中。最简单的数据驱动测试会将表格的某一栏作为输入,同一列的另一栏则是预期的测试输出。表格内一般会对应输入值的边界或是输入值分组的边界。在有些测试中,会从数据库中读取测试组态。
在软件测试中,有许多不同的方法可以应用。这些方法并存的原因是它们在初始建立及维护时所需要的努力程度不同。数据驱动测试的优点是易于增加新的输入,在产品或是被测系统的输入值发现新分组时格外方便。以成本的观点来看,数据驱动测试配合自动化测试的成本很低,但配合人工测试的成本则相当高昂。数据驱动测试和关键字驱动测试看似相同,后续会再说明二者的不同之处。
数据驱动测试的数据包括输入变数及用来确认结果的输出变数。在较先进的自动化环境中,可以用一些客制化的工具或嗅探器(sniffer)来发掘相关的数据。数据驱动测试的框架播放发掘到的数据,可形成一个自动化的回归测试工具。测试脚本中包括在被测系统中的浏览,读取数据来源,记录测试状态及资讯等。
在数据驱动测试中,任何可能会变动的东西(也称为变异,包括环境、结束点、测试数据、路径等)都会和测试逻辑(脚本)分开,成为“外部资产”(external asset),可能是组态或是测试的数据集,而脚本中执行的逻辑则由数据内容来决定。关键字驱动测试和数据驱动测试类似,不过关键字驱动测试的测试用例是包含在数据的组合中,而不是嵌入在测试脚本中。
数据驱动测试所用的数据库可以包括: