首页
登录
从业资格
某嵌入式系统中,存在16路数据采集通道。为了提高数据采集的可靠性,对16路采集通
某嵌入式系统中,存在16路数据采集通道。为了提高数据采集的可靠性,对16路采集通
资格题库
2022-08-02
65
问题
某嵌入式系统中,存在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; nimage.png=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覆盖所需的最少测试用例数目。
选项
答案
解析
1、扇出数:1注释率:28.6%(4/14)嵌入式软件一般要求扇出数不大于7和注释率不小于20%,所以此函数扇出数和注释率均符合要求。2、
本题考查软件测试的一些基本概念和通过代码审查查找软件缺陷以及设计测试用例的能力。此题目要求考生认真阅读题目所给的软件设计说明信息和软件代码,熟悉结构体数据类型和不同代码覆盖率的要求,结合软件测试的一些基本概念,在此嵌入式软件中进行实际应用。扇出数指在结构图中,模块所属的直接下级模块个数,即本模块所调用的模块数目。模块num_of_passer中仅调用了排序模块sort,所以模块num_of_passer的扇出数为1。注释率指代码中注释的行数与代码总行数的比率,即注释行数/代码总行数×100%所得的结果。模块num_of_passer的注释率为4/14×100%=28.6%。为了保证软件的可维护性,嵌入式软件的相关标准中一般要求模块的扇出应控制在7以下,注释的行数不得少于源程序总行数的1/5。模块num_of_passer的扇出数为1,注释率为28.6%,均满足嵌入式软件的一般要求。代码审查是不执行软件代码,而通过阅读软件代码发现代码可能存在的错误的过程。代码审查的测试内容包括检查代码和设计的一致性;检查代码执行标准的情况;检查代码逻辑表达的正确性;检查代码结构的合理性;检查代码的可读性。通过对说明的阅读,按照说明中描述的要求进行模块num_of_passer的代码审查。阅读第1行代码,函数返回值定义为unsigned int;而在说明的第(2)条描述了当输入参数异常时,函数返回-1;这样发现说明和代码不一致,显然代码定义的unsigned int不能返回-1,此为第1处错误。修改函数返回值的定义为int类型即可。阅读第4行代码,定义了无故障通道数目counter,在定义时未进行初始化,并且在11行使用前依然未初始化。这就导致counter的初值为非确定值,可能出错,此为第2处错误。在第4行定义counter时初始化为0或者在使用前进行初始化为0均可。第5行代码对模块输入参数进行合法性检查,num合法值为1至16;然后查找使用num之处,在第8行对num进行了使用,但第8行使用时却从0开始,而且是小于等于num,这就意味着如果第5行num值为最大值16,在第8行就需要循环判断17次(0到16),而本题的说明中描述很清楚,最多就16路通道,此为第3处错误。但此问题的更改有两种方案,方案1可以更改第5行num>16为num>=16,缩小此参数的合法范围;方案2可以更改第8行n<=num为n<num减少循环次数。阅读第10行代码,对每个通道采集的双余度值进行有效性判断。按照说明,当余度设备采集值均不小于45时,才表示该路通道正常;但代码中使用当余度设备采集值均大于45时,表示该路通道正常,在对边界点45的处理上与说明不一致,此为第4处错误。将第10行代码中的两个“>”符号修改为“>=”即可与说明一致。覆盖率是度量测试完整性的一个手段,也是度量测试有效性的一个手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、分支覆盖率和MC/DC覆盖率作为度量指标。语句覆盖率指程序中每条可执行语句至少被执行一次。分支覆盖指程序中每个判定取所有可能值至少一次。MC/DC覆盖率指在一个程序中每一种输入输出至少应出现一次,在程序中的每一个条件必须产生所有可能的输出结果至少一次,并且每个判定中的每个条件必须能够独立影响一个判定的输出,即在其他条件不变的前提下仅改变这个条件的值,而使判定结果改变。对模块num_of_passer来说,为了使其中所有的语句至少执行一次,程序中的两种返回值必须各覆盖一次,所以为达到100%语句覆盖率,至少需要两个测试用例,即参数异常的测试用例和参数正常的测试用例。模块num_of_passer在第5行和第10行有两处条件判断,为了使程序中每个判定取所有可能值至少一次,第5行需要取TRUE和FALSE,第10行需要取TRUE和FALSE。由于第5行取FALSE时,就能覆盖到第10行判定,同时又由于第10行的判定在一个大于一次的循环中,一个测试用例就可以覆盖到第10行的TRUE和FALSE,所以模块num_of_passer 100%的分支覆盖也最少两个测试用例就可以满足,即一个第5行取TRUE的测试用例和一个第5行取FALSE、第10行取TRUE和FALSE的测试用例即可,由于第10行的条件判断在多次循环中,取TRUE和FALSE的测试用例也比较好构造。模块num_of_passer的组合条件也出现在第5行和第10行。对第5行的组合条件需要4个测试用例来满足MC/DC覆盖,分别为①参数array为NULL,②array不为NULL且num为0,③array不为NULL且num为大于16的值,④array不为NULL且num为1到16之间的值。对第10行的组合条件需要3个测试用例来满足MC/DC覆盖,分别为①Value1>45且Value12>45,②Value1>45且Value2<=45,③Value1<=45且Value2为任意值。由于取第5行array不为NULL且num为1到16之间值的测试用例时,程序将执行到第10行,这时由于第10行在一个多次循环中,第10行需要的3个测试用例都可以在此用例中进行覆盖,所以最少需要4个测试用例就可以使模块num_of_passer满足100%的MC/DC覆盖。
转载请注明原文地址:https://tihaiku.com/congyezige/2416684.html
本试题收录于:
中级 软件评测师题库软件水平考试初中高级分类
中级 软件评测师
软件水平考试初中高级
相关试题推荐
以下关于企业信息系统运维工作的叙述中,不正确的是( )。A.自动化运维将降低对
UML图中,( )图用于建模系统的动态行为,它描述活动的顺序,展现从一个活动到
某企业信息管理系统的部分关系模式为:部门(部门号,部门名,负责人,电话)、职工(
在Windows系统中,执行x.exe时系统报告找不到y.dll,原因是( )
假设某计算机系统中资源R的可用数为9,系统中有3个进程竞争R,且每个进程都需要i
在结构化分析方法中,用于对功能建模的(1)描述数据在系统中流动和处理的过程,它只
在结构化分析方法中,用于对功能建模的(1)描述数据在系统中流动和处理的过程,它只
采用面向对象程序设计语言C++/Java进行系统实现时,定义类S及其子类D。若类
在( )时,一般需要进行兼容性测试。A.单元测试 B.系统测试 C.功能测
假设系统有n(n≥5)个并发进程共享资源R,且资源R的可用数为2。若采用PV操作
随机试题
Oneofthemostcommonimagesofanadvanced,Western-stylecultureisthat
LifeBeginsat100[A]Thisyear,thenumberofpensioner
Mostpeoplehavenoideaofthehardworkandworrythatgointothecollect
下列材料中吸水率最大的是()A.花岗岩 B.普通混凝土 C.木材 D.
下列关于回弹法检测混凝土强度的叙述,表述正确的是()。A.一般来说,对同一构件
结合有关填石路基的实测项目内容,回答下列有关问题。(5)填石路基进行压实项目的检
关于破坏社会主义市场经济秩序罪的认定,下列哪一选项是错误的?()(2014年)
(2015年真题)某女,60岁,患冠心病心绞痛数年,症见胸闷,心悸,头晕,头痛,
关于工程项目质量控制系统的特性,下列说法正确的是()。A.工程项目质量控制系统
逻辑函数L=∑(0,1,2,3,4,6,8,9,10,11,12,14)的最简与
最新回复
(
0
)