天天看点

数据库回归测试

为了安全地变更现有的软件,不论是重构它还是增加新的功能,你都需要验证在完成变更后没有造成什么破坏。换言之,你需要对系统执行一次全面的回归测 试。如果你发现造成了某种破坏,就必须进行修复,或图1.4测试先行的开发方式者回滚所做的变更。程序员在开发领域代码的同时开发一个完整的单元测试套 件,这种做法在开发社区中已经越来越普遍,实际上,敏捷开发者喜欢在编写“真正的”代码之前先编写测试代码。就像你测试应用的源代码一样,难道你不应该测 试你的数据库?重要的业务逻辑以存储过程、数据有效性规则、参照完整性(RI)规则等形式实现在你的数据库中,这些业务逻辑显然应该经过彻底的测试。

测试先行开发(TFD),也称为测试先行编程,是一种演进式的开发方式,你在编写新的功能代码之前必须编写一个会失败的测试。正如图1.4中的UML活动图所展示的,TFD包含以下步骤:

数据库回归测试

1. 快速增加一个测试,主要是要有足够多的代码,以使得这个测试会失败。

2. 运行测试以确保新的测试确实会失败。通常是运行完整的测试套件,但是由于速度的原因,你可能决定只运行完整测试套件的一个子集。

3. 更新你的功能代码,使它能通过新的测试。

一个重要提示是,你可能需要几种单元测试工具,至少对你的数据库需要一种,对外部程序中使用到的每种编程语言各需要一种。幸运的是XUnit工具家 族(例如,针对Java的JUnit,针对Visual Basic的VBUnit,针对.NET的VUnit,以及针对Oracle的OUnit)是免费的,相互之间保持着很好的一致性。

chaunceyhao