7ha*_*ker 5 language-agnostic algorithm combinations for-loop
作为测试人员的工作,我的一个顾虑是始终确保完整的测试覆盖率.这可能会变得困难,因为有时可能的组合数量确实很多.让我们举一个例子.一个很好的制作茶的例子
要泡茶,你可以使用红茶,绿茶或白茶.(3个变量)
你可以使用牛奶或水(2个变量)
你可以使用糖或蜂蜜或没有(3个变量)
你可以让它冰或热(2个变量)
正如你所看到的,现在如果我想测试所有可能的制茶方法(假设有一个允许创造各种茶的假设软件),那么我必须测试:3x2x3x2组合= 36,因为确实36种独特的制茶方式
在这种情况下哪种算法最好.我可以看到嵌套的for循环是最好的.我对吗?
它可能有点依赖于编程语言......但您基本上是在寻找参数集的笛卡尔积。
例如,在Python中
import itertools
for args in itertools.product(
['black tea','green tea','white tea'],
['milk','water'],
['sugar','honey','none'],
['iced','hot']
):
drink_tea(*args)
Run Code Online (Sandbox Code Playgroud)