未分类题
阅读以下关于某嵌入式系统多路数据采集说明,回答下列问题。
[说明] 某嵌入式系统中,存在16路数据采集通道,为了提高数据采集可靠性,对16路采集通道均采用双余度设计,为了监控采集通道是否发生故障,对各路双余度通道采集值进行比较,只有当该通道两个余度设备采集值均不小于45时,才表示该路通道正常。
设计人员设计函数num_of_passer用于统计无故障通道数目,在该函数设计中考虑了如下因素:
9采用如下数据结构存储通道号及采集值: Struct value {unsigned int No; //通道号,1到16 unsigned short Value1; //余度1采集值 unsigned short Value2; //余度2采集值 }
10当输入参数异常时,函数返回-1;
11若正确统计了无故障通道数目,则返回该数目;
12该函数需要两个输入参数,第一个参数是用于存储通道号及余度采集值数组,第二个参数为通道总数目。
开发人员根据上述要求使用ANSI C对代码实现如下(代码中第一个数字代表行号): 1)unsigned int num_of_passer(struct value array[], unsigned int num) { 2)unsigned int n=0; //循环变量 3)unsigned int counter; //无故障通道数目 4)if((array=NULL)||(num==0)||(num>16)) 5)return-1; //当输入参数异常时,函数返回-1 6)for(n=0; nimage.png=num; n++) { 7)if((array[n].Value1>45) && ((array[n].Value2>45))) 8)counter=counter+1; } 9)return counter; }
1、嵌入式软件中通常使用圈复杂度来衡量程序可维护性(一般要求圈复杂度不大于10),请计算函数num_of_passer圈复杂度。
2、作为测试人员,请参照表1序号1方式使用代码审查方法找出该程序中所包含至少3处错误。

3、覆盖率是度量测试完整性一个手段,也是度量测试有效性一个手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、分支覆盖率和MC/DC覆盖率作为度量指标,请指出对函数num_of_passer达到100%语句覆盖、100%分支(DC.覆盖和100%MC/DC覆盖所需最少测试用例数目,如表2所示。

【参考答案】
1、圈复杂度:7
2、
3、
1、本题考查软件测试一些基本概念和通过代码审查查找软件缺陷以及设计......
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)