访问所有组合的最佳方式是什么

7ha*_*ker 5 language-agnostic algorithm combinations for-loop

作为测试人员的工作,我的一个顾虑是始终确保完整的测试覆盖率.这可能会变得困难,因为有时可能的组合数量确实很多.让我们举一个例子.一个很好的制作茶的例子

  • 要泡茶,你可以使用红茶,绿茶或白茶.(3个变量)

  • 你可以使用牛奶或水(2个变量)

  • 你可以使用糖或蜂蜜或没有(3个变量)

  • 你可以让它冰或热(2个变量)

正如你所看到的,现在如果我想测试所有可能的制茶方法(假设有一个允许创造各种茶的假设软件),那么我必须测试:3x2x3x2组合= 36,因为确实36种独特的制茶方式

在这种情况下哪种算法最好.我可以看到嵌套的for循环是最好的.我对吗?

Jim*_*mmy 2

它可能有点依赖于编程语言......但您基本上是在寻找参数集的笛卡尔积。

例如,在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)