分支覆盖技术用于覆盖控制流图的所有分支。它至少涵盖决策点的每个条件的所有可能结果(真和假)。分支覆盖技术是一种白盒测试技术,可确保每个决策点的每个分支都必须执行。
然而,分支覆盖技术和决策覆盖技术非常相似,但两者之间存在关键差异。决策覆盖技术涵盖每个决策点的所有分支,而分支测试涵盖代码的每个决策点的所有分支。
换句话说,分支覆盖遵循决策点和分支覆盖边缘。许多不同的指标可用于查找分支覆盖范围和决策覆盖范围,但一些最基本的指标是:在程序执行期间查找程序的百分比和执行路径。
与决策覆盖一样,它也使用控制流图来计算分支数。
有几种方法可以计算分支覆盖率,但寻路是最常用的方法。
在此方法中,执行分支的路径数用于计算分支覆盖范围。分支覆盖技术可用作决策覆盖的替代方案。在某处,它没有被定义为单独的技术,但它不同于决策覆盖,并且是测试控制流图的所有分支所必需的。
让我们用一个例子来理解它:
Read X
Read Y
IF X+Y > 100 THEN
Print "Large"
ENDIF
If X + Y<100 THEN
Print "Small"
ENDIF
这是采用两个变量X和Y以及两个条件的基本代码结构。如果第一个条件为真,则打印“Large”,如果为假,则转到下一个条件。如果第二个条件为真,则打印“Small”。
控制代码结构的流程图
在上图中,描绘了代码的控制流程图。在第一种情况下,通过“Yes”决定,路径为A1-B2-C4-D6-E8,覆盖边数为1,2,4,5,6和8,但边缘3和7未覆盖 在这条路径上。为了覆盖这些边缘,必须遍历“No”决定。在“No”判定的情况下,路径是A1-B3-5-D7,并且覆盖边缘的数量是3和7。因此,通过穿过这两条路径,所有分支都覆盖。
Path 1 - A1-B2-C4-D6-E8
Path 2 - A1-B3-5-D7
Branch Coverage (BC) = Number of paths
=2
用例 | 覆盖的分支 | 路径 | 分支覆盖 |
---|---|---|---|
Yes | 1, 2, 4, 5, 6, 8 | A1-B2-C4-D6-E8 | 2 |
No | 3,7 | A1-B3-5-D7 | 2 |
Statement 对象使用executeQuery方法查询数据库,即将 SQL 语句作为输入,并返回ResultSet对象。说明执行Statement...
Lite Wearable 的 HarmonyOS 应用安装,依赖华为手机上的运动健康和应用调测助手 APP 辅助进行。前提条件已将运动健康 APP升级至...
Ability 是应用所具备的能力的抽象,一个 Module 可以包含一个或多个 Ability。Ability 分为两种类型:FA(Feature Ability)和 ...
TimeZonejava.lang.Object |---java.util.TimeZonepublic abstract class TimeZoneextends Objectimplements Serializable, Clon...
Statementpublic interface Statement提供为预编译 SQL 语句设置值和执行预编译 SQL 语句的方法。方法总结修饰符和类型方法描述v...
CommonPatternjava.lang.Object |---ohos.utils.CommonPatternpublic class CommonPatternextends Object提供获取用于验证常见模...
HalfFloatjava.lang.Object |---java.lang.Number |---|---ohos.utils.HalfFloatpublic class HalfFloatextends Number封装半精...
ObjectAttributejava.lang.Object |---ohos.utils.ObjectAttributeO,Tpublic abstract class ObjectAttributeO,Textends Object...