软件复杂度、内聚性、熵及测试活动的深度剖析
1. 部分复杂度
在程序模块执行时,除了最简单的情况,从流程图起始节点到终止节点的执行路径通常只有一部分会被实际执行。通过特定的插桩方法,我们可以确定在每个功能执行期间,哪些处理块被触及,进而明确哪些源代码语句被执行。
例如,一个程序模块可能包含100条可执行语句,但当某个特定功能(如f5)调用该模块时,可能只有25条语句会实际执行,那么功能f5的部分属性复杂度(Exec)就是25。
下面是一个返回相同4字节整数的函数模块示例:
unsigned int test (unsigned int status)
{
unsigned int power;
unsigned int cum;
power = 1;
if (status & power)
cum = 1;
else
cum = 0;
power *= 2;
if (status & power)
cum += power;
power *= 2;
if (status & power)
cum += power;
power *= 2;
if (status & power)
cum += power;
power *= 2;
if (status & power)
cum += power;
power *= 2;
if (status & po
超级会员免费看
订阅专栏 解锁全文
919

被折叠的 条评论
为什么被折叠?



