我需要一种基于一组因变量自动生成测试用例的算法。实现语言并不重要。
作为一个简化的例子:
假设我在测试函数F(a,b,c,d)
如何生成所有参数的组合?
a1,b1,c1,d1 a2,b1,c1,d4
诸若此类?
发布于 2011-08-10 06:33:29
你所看到的是形式上的组合测试。您可以阅读更多关于这个这里的内容。您可以在网上找到许多工具,但我在使用CTE-XL和皮克特时取得了很好的成功
它们都不会生成代码,但会为您生成这些组合。
发布于 2011-08-02 20:01:26
这听起来比较特别。假设您对参数进行了排序,以便一个参数的可能性列表仅取决于“前一个”参数,那么您应该能够执行以下操作:
recursiveTestAllCombinations(previousParameters)
{
if (length(previousParameters) == numberOfParameters)
{
performTest(previousParameters)
return; //end of recursion
}
possibilitiesForCurrentParameter = getPossibilities(currentParameterIndex, previousParameters)
foreach (p in possibilitiesForCurrentParameter)
{
parameters = previousParameters
parameters.append(p);
recursiveTestAllCombinations(parameters)
}
}
recursiveTestAllCombinations([])方法getPossibilities将为参数定义条件:
getPossibilities(previousParameters)
{
if (length(previousParameters) == 0)
{
return [a1, a2, a3];
}
..
if (length(previousParameters) == 3)
{
if (previousParameters[0] == a1) return [d, d2];
..
}
}发布于 2011-08-10 07:00:57
也许是这里的问题和答案可能值得跟进。中的一些链接。您需要问的基本问题是,是否值得生成所有的组合(可能是这样)。帕德克的方法允许选择所有组合的子样本子集。它不是详尽的测试,但它提供了非常好的覆盖。
帕德克氏 实验设计方法为测试(软件)系统选择参数值。 简而言之,该方法使用测试(方法)参数的最小值、典型值和最大值,并根据适当选择田口阵列对它们进行更改。
https://stackoverflow.com/questions/6917605
复制相似问题