未分类题

阅读以下关于某嵌入式系统多路数据采集说明,回答下列问题。
[说明] 某嵌入式系统中,存在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、本题考查软件测试一些基本概念和通过代码审查查找软件缺陷以及设计......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

未分类题
企业根据利润提成发放奖金。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元部分按10%提成,高于10万元部分,可提成15%;利润在20万到40万之间时,高于20万元部分,可提成20%;40万到60万之间时高于40万元部分,可提成25%;60万到100万之间时,高于60万元部分,可提成30%;高于100万元时,高于100万元部分可提成35%o已知企业本年度12个月月利润存储在数组profit中,程序要求根据月利润计算月奖金并存储到数组bonus中,然后计算并返回该企业年度总利润total_profito该程序实现如下:【程序】int calculate_bonus(const int profit[ ], int bonus[ ]){int n=12;int i=0;int sum_profit=0;int bonus1,bonus2,bonus4,bonus6,bonuslO;bonus1=100000*0.1;bonus2=bonus1+100000*0.15;bonus4=bonus2+200000*0.2;bonus6=bonus4+200000*0.25; bonusl0=bonus6+400000*0.3;for (i=0;iimage.pngn; i++){if (profit[i]image.png=100000)(1);else if(profit[i]image.png=200000)(2);else if(profit[i]image.png=400000)(3);else if(profit[i]image.png=600000)(4);else if(profit[i]image.png=1000000)(5) ;else(6) ;} *以下代码计算年度总利润* i=0;while(iimage.pngn)sum_profit += profit[++i];return sum_profit;}问题:1 在程序中,使用关键字const修饰输入参数profit,请将这样修饰作用写到(1)处。如果程序中bonus数组也使用const修饰,是否正确,并给出解释,请将答案写到(2)处。问题:2 分析程序中计算年度总利润代码,指出错误一行代码,将错误代码写到(1)处;然后用一条语句实现正确代码,将正确代码写到(2)处。问题:3 根据题意分析程序,完成程序中(1)~(6),每个空行只能写一行代码,即用一条语句来描述。