所有的测试数据都在代码层和其他编程人员进行交流,因此没有必要进行外部测试数据协调。
无须测试用的特殊数据的介入。
简单而容易理解的一种方法。
在每一次测试前删除和插入数据可能会花较多时间,但是由于测试用的数据量相对较小,我认为这种方法比较快捷,特别是在测试一个本地数据库时。
这种做法不利的一面是你需要至少两个数据库。但是请记住,他们在必要是都可以在同一个服务器上运行。采用这种方法,我用了四个数据库,另外两个在紧急关头时使用,具体如下:
1.实际使用数据库,包含实际数据。在这个数据库中不进行测试,确保数据的完整性。
2.你的本地开发数据库,用来进行大部分的测试。
3.一个加入一定量数据的本地开发数据库,可能和其他编程人员共享,用来运行应用程序并检测是否能在实际使用的数据库上运行,而不是照搬实际使用数据库中的全部数据。从严格意义上说你可能并不需要这一数据库,但这一数据库能确保应用程序在有大量数据的数据库中顺利运行。
4.一个发布数据库,或称集成数据库,用来在正式发布前进行一系列测试,从而确保对所有本地数据库的修改都得到确认。如果你一个人开发,你可以省略这个数据库,但你必须确保所有对数据结构和存储过程的修改都在实际使用数据库中得到确认。
在有多个数据库的情况下,你要确保不同数据库间结构的同步:如果你在测试数据库中改变表的定义或存储过程,你必须记得在实际使用的服务器上进行同样的修改。发布数据库的作用就是提醒你进行这些修改。另外,我发现如果代码控制系统能将提交时的注释用邮件形式自动发给整个开发组,那将给团队开发带来较大帮助。CVS就能做到这一点,我希望你能利用这一功能。
在合适的数据库中进行测试
在这种情况下,你必须连接正确的数据库。在实际使用数据库中进行测试有可能删除所有的有用数据,这点令我十分害怕。
有几种办法能避免此类悲剧的发生。例如,比较普遍的做法是将数据库连接设置记录在初始文件中,从而明确哪一个是测试数据库。你也可以通过初始文件进行本地数据库的测试,而用其他指定方法连接实际使用数据库。
在java代码中,初始文件可能如下所示;
myapp.db.url=jdbc:mysql://127.0.0.1/mydatabase
这一连接字符串用来连接数据库。你可以添加第二个连接字符串来区分测试数据库:
myapp.db.url=jdbc:mysql://127.0.0.1/mydatabase
myapp.db.testurl=jdbc:mysql://127.0.0.1/my_test_database
在测试代码中,你可以检查并确保在连接到测试数据库后应用程序才能继续运行:
文章来源于领测软件测试网 https://www.ltesting.net/