测试复杂数据场景

时间:2009-05-25 02:05:28

标签: java testing

我正在开发一个Java Web应用程序,它为用户运行一系列财务计算。运行财务计算时,大约30个不同的输入用于计算最多18年的15个不同值(最大15 * 18个预期值)。如您所知,有大量信息需要计算和验证。

我正在寻找的是关于如何准备测试数据(模拟30种不同的输入),将其加载到一系列对象中,并通过计算器运行对象以生成输出的建议,然后可以将其与预期进行比较值。

我试图存根数据库,但最终还是永远。嘲弄一切看起来就像是乏味一样。如果可能的话,我想避免外部数据库依赖。

4 个答案:

答案 0 :(得分:1)

听起来FitNesse(http://fitnesse.org/)可能就是你想要的。你在FitNesse中设置了一个带有输入和预期输出的html表。当您运行测试时,FitNesse会通知您实际输出是否与预期输出相符。

答案 1 :(得分:1)

我会识别数字限制(边界值)周围的值,实际值和每个输入参数的零值。然后我会使用allpairs算法(http://www.satisfice.com/tools.shtml)将它们组合在一起。

答案 2 :(得分:0)

您最好的选择是使用可以从池中随机选择值并从那些组合输入的工厂。你可以按照自己的意愿从人口中生成尽可能多的候选人。坚持他们与预期的结果。如果数据库不符合您的喜好,可能会使用XML或纯文本序列化。

如果你做TDD,你可以运行一些,看看预期结果应该是什么。检查一些手工计算,以确保它们没问题。然后使用工厂生成您需要的大型测试集。

答案 3 :(得分:0)

如果您在Db中有数据并且只想从中创建测试数据,那么您的测试运行不依赖于外部数据库。您可以查看DbUnit框架并可以从DB填充XML中的示例数据。 您可以将这些XML用于测试目的,这些XML可以通过许多可用的解析器轻松转换为java对象。