试题详情

阅读下列说明,回答下列问题。[说明]某嵌入式系统中,存在16路数据采集通道。为了提高数据采集的可靠性,对16路采集通道均采用双余度设计;为了监控采集通道是否发生故障,对各路双余度通道采集值进行比较。只有当该通道两个余度设备采集值均不小于45时,才表示该路通道正常。设计人员设计函数num_of_passer用于统计无故障通道数目,在该函数的设计中考虑了如下因素:11采用如下数据结构存储通道号及采集值:struct Value{ unsigned intNo;//通道号,1到16unsigned shortvalue1;//余度1采集值unsigned shortvalue2;//余度2采集值}12当输入参数异常时,函数返回-1;13若正确统计了无故障通道数目,则返回该数目;14该函数需要两个输入参数,第一个参数是用于存储通道号及余度采集值的数组,第二个参数为通道总数目;15调用函数sort16对存储通道号及余度采集值的数组进行排序处理。开发人员根据上述要求使用ANSI C对代码实现如下(代码中每行的第一个数字代表行号):1unsigned int num_of_passer(struct Value array[], unsigned int num)2{3unsigned int n=0;//循环变量4unsigned int counter;//无故障通道数目5if((array==NULL)||(num==0)||(num>16))6return-1;//当输入参数异常时,函数返回-17sort(array);//对存储值的数组进行排序处理8for(n=0; n<=num; n++)9{10if((array[n].Valuel>45) && (array[n].value2>45))11counter=counter+1;12}13return counter;14}1、嵌入式软件中通常使用函数扇出数和注释率来衡量程序的可维护性,请计算函数num_of_passer的扇出数和注释率,并判断此函数扇出数和注释率是否符合嵌入式软件的一般要求。2、请使用代码审查的方法找出该程序中所包含的至少4处错误,指出错误所在的行号和问题描述。 3、覆盖率是度量测试完整性的一个手段,也是度量测试有效性的一个手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、分支覆盖率和MC/DC覆盖率作为度量指标,请分别指出对函数num_of_passer达到100%语句覆盖、100%分支覆盖和100%MC/DC覆盖所需的最少测试用例数目。