2010-09-14 64 views
0

你好,关于调试的另一个问题是:当我知道parameterset时自动生成测试用例。而在开发过程中做这一切的同时,而不是(可以踢自己)关于单元测试的建议

我有一组的,我想测试我的软件参数。 (仅〜12参数)。当然,这些参数通常是整数,所以对于每个参数,我可以有4个有意义的值(0,非常大,通常很大,通常很小)。

有没有办法可以自动生成我的测试用例?会为我节省很多时间。我已经必须亲自检查每个测试案例,我不是吗?我的程序中有很多产生输出到控制台,所以正常的断言可能不会起作用,我大部分时间也在自制数据结构上工作,所以我不能使用简单的断言。

我的梦想选择是一种反向的正则表达式,在这里我设置的规则,并让自己的一些文件生成的,我可以作为输入使用(我的软件有粗脚本语言)的。这样我可以组装所有输入文件并逐个测试它们。

期待听取您的善意建议。

欢呼声

+0

看看http:// fortranwiki。org/fortran/show /单元+测试+框架 – Wildcat 2010-09-14 13:47:45

回答

2

有很多的方法来产生在方案中的测试用例 - 虽然你是什么形式的输入,你的程序上有点模糊和单位需要承担。对于我的一个Fortran程序,我使用模板输入参数文件,bash脚本和make文件。 make文件在测试假目标上调用时:

a)编译程序; b)运行bash脚本,它使用sed替换模板参数文件中的占位符,以创建128(或其他)测试输入文件; c)将所有测试作业提交给集群上的作业管理系统。

一旦他们的工作已经完成了,我有一些其他的脚本与基准比较输出,收集统计数据,诸如此类的事情。

如果您需要更具体的建议,请发布更具体的问题。

编辑:使用sed的bash脚本里面:

假设参数输入模板文件包含要更换3码:$ FREQ $,$ NUM $ $和$ TOL。然后我写了一个bash脚本,用3 - 深循环嵌套是这样的:

for frq in 0.01 0.0 1 10 
do 
    for np in 1 2 4 8 16 
    do 
     for tol in 0.001 0.0001 0.00001 
      sed .... 
     done 
    done 
done 

它不漂亮,但它的工作原理,以及它为我节省了与更为复杂的解决方案,如xUnit的测试或Python编程摔跤。

+0

听起来像我所需要的。你如何使用sed来使用数据基础?我也在寻找一个“反向”正则表达式生成器。到目前为止不幸 – tarrasch 2010-09-14 14:28:26

+0

谢谢你会尝试。 – tarrasch 2010-09-15 13:48:06

1

我看到你FORTRAN工作,你可能处理的xUnit的FORTRAN的版本之一。作为JUnit的用户,我建议parameterized tests - 看看这个概念是否适用于你的情况。

+0

谢谢我会读一些关于它,但会尝试上面的解决方案 – tarrasch 2010-09-15 13:48:28