Example 1:
Read P
Read Q
IF P+Q > 100 THEN
Print “Large”
ENDIF
If P > 50 THEN
Print “P Large”
ENDIF
Example 2:
READ X
READ Y
I F X>Y THEN Z = 0
ENDIF
Example 3:
1 READ X
2 READ Y
3 Z =X + 2*Y
4 IF Z> 50 THEN
5 PRINT large Z
6 ENDIF
流程图中的节点和边是什么?
Statement Coverage: 1A-2C-3D-E-4G-5H = 1
Branch Coverage: 1A-2C-3D-E-4G-5H , 1A-2B-E-4F = 2
Path Coverage: 4
1A-2B-E-4F
1A-2B-E-4G-5H
1A-2C-3D-E-4G-5H
1A-2C-3D-E-4F
请解释一下,答案是怎么来的?
在这些示例中,我们如何识别语句,分支和条件?我们如何衡量覆盖率?请提供所有3个示例的详细说明。
#1 楼
答案的计算方式声明:简单来说,这些就是您在包装盒和菱形中所拥有的。
您可以涵盖所有通过编写遵循以下路由的1个测试用例在流程图中的语句
1A-2C-3D-E-4G-5H。
因此,语句的覆盖范围为1
分支/决策:您可以在流程流程图中进行的决策(例如,如果您认为语句2有两个分支)
通过编写遵循以下两条路线的2个测试用例,您可以覆盖流程图中的所有分支
1A-2C-3D-E-4G-5H
1A-2B-E-4F
因此,分支机构覆盖范围是2
路径:可以在流程图中从头到尾传播的路径。
您可以通过编写遵循以下f的4个测试用例来覆盖流程图中的所有路径。我们的路线
1A-2B-E-4F
1A-2B-E-4G-5H
1A-2C-3D-E-4G-5H
1A-2C-3D-E-4F
因此,路径覆盖范围是4
>覆盖率
可以为上述三种技术计算覆盖率。
声明覆盖率
让我们说您的测试用例涵盖以下路线-1A-> 2B-> E-> 4F
流程图中总共有5条语句
您仅涵盖3条语句
计算语句覆盖率-(3/5)* 100
您的测试用例具有60%的语句覆盖率
分支覆盖范围
让我们说您的测试用例涵盖以下路线- 1A-> 2B-> E-> 4F
您的流程图中共有4个分支/决定(第2号声明的2个决定和第4号声明的2个决定)
您只涵盖2个分支/决定
计算分支/决策覆盖率-(2/4)* 100
您的测试用例因此具有50%的语句覆盖率
路径覆盖范围
让我们说您的测试用例涵盖以下路径-1A-> 2B- > E-> 4F
流程图中总共有4条路径
您仅覆盖1条路径
计算路径覆盖率-(1 / 4)* 100
因此,您的测试用例具有25%的路径覆盖率
希望这能回答您的问题。
您可以在此处找到有关这些术语的更多信息,或者简单的Google搜索将为您提供足够的资源。
#2 楼
在进行控制流测试之前,需要绘制流程图,然后选择要使用的覆盖率。对于语句覆盖率,需要找到遍历所有路径的路径(从流程图的开始到结尾)。语句,这些路径的数量最小。换句话说,如果您运行找到的所有路径,则将执行所有语句,并且这些路径的数量最小。
对于分支覆盖,您发现的所有路径必须覆盖所有行。
要覆盖路径,您需要找到从流程图开始到结尾的所有可能路径。从开始到E有2种方法,从E到结束有2种方法,那么总数为2 * 2 =4。
#3 楼
让我们从基本的东西开始。您提供的流程图只是示例代码1的另一种表示。每个控制流都表示为edge(在此为线),并且始终连接两个节点(在此处为语句)。
与黑盒测试相反,您知道要在白盒测试中测试的程序代码。在您的示例中,您将测试代码,并确定其语句,分支和路径覆盖范围。使用@vhreal表示的代码图形化表示总是有帮助的。
通常,无论您具有什么覆盖率,都应尝试使其最大化(意味着100%覆盖率)。
你怎么做呢?从程序的开头(流程图)开始,您尝试到达程序的结尾。这就是所谓的路径。在这两者之间,您尝试达到当前所查看内容的100%覆盖率。让我们为语句做一次。
语句1是您的起点。语句1的唯一输出边缘是A-> 1A
语句2是一个条件。我们有两种可行的方法-> 2B和2C
如果您选择了2B,则分支结束于if。只有边E继续前进-> E
如果采用2C,则到达语句3。同样,只有一个输出边D-> 3D
...
因此,我们通过4种不同的方法来查看流程图:
1A-> 2B-> E-> 4F(= 60%声明覆盖率)
1A-> 2B-> E-> 4G-> 5H(= 80%声明覆盖率)
1A-> 2C-> 3D-> E- > 4F(= 80%声明覆盖率)
1A-> 2C-> 3D-> E-> 4G-> 5H(= 100%声明覆盖率)
目标是使用路径4最少的测试用例数来达到100%的覆盖率。这很容易,但是如果要确定全部4%的100%陈述覆盖率,则要决定采用哪种路径更困难路径的语句覆盖率<100%。
#4 楼
语句覆盖率=一个真实的可能语句,该语句导致每个语句,块,分支中的事实。从头到尾:“ 1A-2C-3D-E-4G-5H”只是一种可能的方式。分支覆盖率=一个正确的可能语句+一个错误的可能语句。每个分支条件。
路径覆盖率=每个分支条件中的所有可能路径。
评论
您的答案是什么,您如何看待正确答案?为什么学习指南不够用?删除手动测试,测试管理,测试设计标签,因为问题与测试无关;使用“技术”标签,因为“技术”可能有任何含义;和“ code-review”标签,因为该问题与代码审查有关。