阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某嵌入式系统中,存在16路数据采集通道。为了提高数据采集的可靠性,对16路采集通道均采用双余度设计;为了监控采集通道是否发生故障,对各路双余度通道采集值进行比较。只有当该通道两个余度设备采集值均不小于45时,才表示该路通道正常。设计人员设计函数

用于统计无故障通道数目,在该函数的设计中考虑了如下因素:(1)采用如下数据结构存储通道号及采集值:

(2)当输入参数异常时,函数返回-1;(3)若正确统计了无故障通道数目,则返回该数目;(4)该函数需要两个输入参数,第一个参数是用于存储通道号及余度采集值的数组,第二个参数为通道总数目;(5)调用函数sort()对存储通道号及余度采集值的数组进行排序处理。开发人员根据上述要求使用ANSI C对代码实现如下(代码中每行的第一个数字代表行号):
问答题
【问题1】嵌入式软件中通常使用函数扇出数和注释率来衡量程序的可维护性,请计算函数[*]的扇出数和注释率,并判断此函数扇出数和注释率是否符合嵌入式软件的一般要求。
【正确答案】正确答案:扇出数:1 注释率:28.6%(4/14) 嵌入式软件一般要求扇出数不大于7和注释率不小于20%,所以此函数扇出数和注释率均符合要求。
【答案解析】解析:本题考查软件测试的一些基本概念和通过代码审查查找软件缺陷以及设计测试用例的能力。 此题目要求考生认真阅读题目所给的软件设计说明信息和软件代码,熟悉结构体数据类型和不同代码覆盖率的要求,结合软件测试盼一些基本概念,在此嵌入式软件中进行实际应用。 扇出数指在结构图中,模块所属的直接下级模块个数,即本模块所调用的模块数目。模块

的扇出数为1。注释率指代码中注释的行数与代码总行数的比率,即注释行数/代码总行数×100%所得的结果。模块

的注释率为4/14×100%=28.6%。为了保证软件的可维护性,嵌入式软件的相关标准中一般要求模块的扇出应控制在7以下,注释的行数不得少于源程序总行数的1/5。模块

问答题
【问题2】请使用代码审查的方法找出该程序中所包含的至少4处错误,指出错误所在的行号和问题描述。
【正确答案】正确答案:

【答案解析】解析:代码审查是不执行软件代码,而通过阅读软件代码发现代码可能存在的错误的过程。代码审查的测试内容包括检查代码和设计的一致性;检查代码执行标准的情况;检查代码逻辑表达的正确性;检查代码结构的合理性;检查代码的可读性。通过对说明的阅读,按照说明中描述的要求进行模块

问答题
【问题3】覆盖率是度量测试完整性的一个手段,也是度量测试有效性的一个手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、分支覆盖率和MC/DC覆盖率作为度量指标,请分别指出对函数

达到100%语句覆盖、100%分支覆盖和100%MC/DC覆盖所需的最少测试用例数目。
【正确答案】正确答案:

【答案解析】解析:覆盖率是度量测试完整性的一个手段,也是度量测试有效性的一个手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、分支覆盖率和MC/DC覆盖率作为度量指标。语句覆盖率指程序中每条可执行语句至少被执行一次。分支覆盖指程序中每个判定取所有可能值至少一次。MC/DC覆盖率指在一个程序中每一种输入输出至少应出现一次,在程序中的每一个条件必须产生所有可能的输出结果至少一次,并且每个判定中的每个条件必须能够独立影响一个判定的输出,即在其他条件不变的前提下仅改变这个条件的值,而使判定结果改变。
