后两个公式的优点是,它们更容易理解和使甩。事实上,控制流图没有必要构建成使用第三个公式。因为程序流程图或源代码列表中的决策数是可以数得到的,并且可以被用来代替公式中的o。
这三个公式应用于单个程序模型。得到总体程序复杂度的一个方法就是基于单个模型复杂度(减去多余节点)的总和。多余节点出现在高级模块中,比如主线模块,如果被调用的模块是作为上级模块的一部分联机调用,那么高级模块将被子图代替。 ,
公式如下 , , ,
G=G+2一。(N—1)式中,G表示总体程序复杂度;G表示单个模块复杂鏖;N是程序中的模
块数。 、
每个模块中的c值表示了在一个给定程序单元中独立路径的最大数目的上限。如果一个控韶惜径集构建成等于C,那么用来测试这些路径的测试胃例将充分测试模块并构戚测试用饿的基础集。这个基础集并不需要测试程序段中的所有可能路径,而是一个子集,所有其他路径都可以由这个子集虚构出来。 ,
一旦秩数已知,那么独立路径就可%列举出来。要列举出基本路径集
需按如下步骤:
1)用惟一的字母或数字标志所有节点。
2)从人口节点开始,使用最左边的路径遍历整个网络,直到出口节点。列出包含在路径中的所有节点,并在图上显示出经过的边。
3)沿原路返回直到遇到这样一个节点,该节点有一条或多条与它相连的未被标志的边。从人口节点开始,沿原路径到该节点(有未被标志的边),使用最左边的未被标记的边到出口节点。
4)一旦新路径横断了先前的路径,则沿后来的路径到出口节点。
当不存在未标记的边时,基本路径集就完成了。其中,路径总数必须等于c。如果路径数不等于c,那么模块就设计得不好,并且过于复杂。最好重新设计这样的模块。
当构建测试用例时为具有被测试条件的决策节点做注释,并标上真和假分支路径,这样做是非常有帮助的。一个测试用例至少可以测试每条独立路径。测试用例的基础集也必须至少测试每一个条件分支一次。一个测试用例就是一个输人数据记录,它为每个数据字段包含一个有效值或无效值。图3—6说明了这种技术。
文章来源于领测软件测试网 https://www.ltesting.net/