You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

实现testArrayLength函数全分支覆盖需多少测试用例?是否仅需3个?

测试用例分支覆盖分析

待分析代码

def testArrayLength(array):# array passed through
  length = len(array);  # get number of chars in the container
  if(length > 20):
    return 1
  if(length > 1):
    return 0
  if(length == 0):
     return -1

问题

实现该函数的100%分支覆盖需要多少个测试用例?是否最少需要3个测试用例即可达到100%分支覆盖?

解答

要实现100%分支覆盖,最少需要4个测试用例,3个测试用例无法达到完全覆盖。原因如下:

分支覆盖要求每个if判定的真、假分支都被执行到,我们需要覆盖以下所有分支场景:

  1. 第一个if判定(length > 20):
    • 真分支:返回1
    • 假分支:进入后续判定
  2. 第二个if判定(length > 1):
    • 真分支:返回0
    • 假分支:进入后续判定
  3. 第三个if判定(length == 0):
    • 真分支:返回-1
    • 假分支:无返回值(函数返回None)

对应的4个测试用例分别为:

  • 用例1:传入长度为21的数组(如[1]*21),触发第一个if真分支,返回1,覆盖第一个if的真分支
  • 用例2:传入长度为5的数组(如[1,2,3,4,5]),触发第一个if假分支、第二个if真分支,返回0,覆盖第一个if假分支、第二个if真分支
  • 用例3:传入空数组[],触发第一个if假分支、第二个if假分支、第三个if真分支,返回-1,覆盖第二个if假分支、第三个if真分支
  • 用例4:传入长度为1的数组(如[1]),触发三个if的假分支,函数返回None,覆盖第三个if的假分支

如果只用3个测试用例,必然会遗漏第三个if的假分支,无法达到100%分支覆盖。

内容的提问来源于stack exchange,提问作者Robo Jumble

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 13:50:34