你好另一个关于调试的问题:当我知道参数集时自动生成测试用例。并且一次完成所有这一切,而不是在开发期间(可以踢自己)
我有一套我希望测试的软件参数。 (仅限~12个参数)。然而,当然这些参数通常是整数,因此对于每个参数,我可以有4个有意义的值(0,非常大,通常很大,通常很小)。
有没有办法可以自动生成我的测试用例?会节省我很多时间。我已经手动检查每个测试用例,不是吗?很多我的程序产生输出到控制台,所以正常的断言可能不会工作,我也在大多数时间在自制数据结构上工作,所以我不能使用简单的断言。
我的梦想选择是一种反向正则表达式,我设置规则并为自己生成一些可用作输入的文件(我的软件具有粗略的脚本语言)。这样我就可以组装所有输入文件并逐个测试它们。
期待听取您的善意建议。
欢呼声
答案 0 :(得分:2)
我建议您阅读有关数据驱动单元测试的内容。
有很多框架可以帮助你。
您可以从这里开始:http://www.slideshare.net/dnastacio/datadriven-unit-testing-for-java-1933154。
答案 1 :(得分:2)
在您的方案中有很多方法可以生成测试用例 - 尽管您对程序和单元的输入需要采用何种形式有点模糊。对于我的一个Fortran程序,我使用模板输入参数文件,bash脚本和make文件。 make文件,当在测试假目标上调用时:
a)编制程序; b)运行bash脚本,该脚本使用sed替换模板参数文件中的占位符,以创建128(或其他)测试输入文件; c)将所有测试作业提交给我们集群上的作业管理系统。
一旦他们的工作完成,我就会有一些其他的脚本来比较输出与基准,收集统计数据,等等。
如果您需要更具体的建议,请发布更具体的问题。
编辑:在bash脚本中使用sed:
假设参数输入模板文件包含3个要替换的代码:$ FREQ $,$ NUM $和$ TOL $。然后我写一个带有3-deep循环嵌套的bash脚本,如下所示:
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编程。
答案 2 :(得分:1)
我看到你使用FORTRAN,你可能会处理FORTRAN的xUnit版本之一。作为JUnit的用户,我建议parameterized tests - 看看这个概念是否适用于您的情况。