题目详情

阅读下列说明,回答下列问题。[说明]某嵌入式系统中,存在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覆盖所需的最少测试用例数目。

中级软件评测师,章节冲刺,测试用例设计方法

正确答案及解析

正确答案
解析

1、扇出数:1注释率:28.6%(4/14)嵌入式软件一般要求扇出数不大于7和注释率不小于20%,所以此函数扇出数和注释率均符合要求。

2、中级软件评测师,章节冲刺,测试用例设计方法

3、中级软件评测师,章节冲刺,测试用例设计方法

本题考查软件测试的一些基本概念和通过代码审查查找软件缺陷以及设计测试用例的能力。此题目要求考生认真阅读题目所给的软件设计说明信息和软件代码,熟悉结构体数据类型和不同代码覆盖率的要求,结合软件测试的一些基本概念,在此嵌入式软件中进行实际应用。扇出数指在结构图中,模块所属的直接下级模块个数,即本模块所调用的模块数目。模块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覆盖。

你可能感兴趣的试题

问答题

某监理单位承担了某政府机关网络平台和机房建设工程监理工作。通过公开招标,确定工程承建单位是公司A,按照《合同法》要求与公司A签订了工程建设合同并在合同中规定,公司A可以将机房工程这样非主体、非关键性子工程分包给具备相关资质专业公司。在工程项目实施过程中,发生了如下事件:

事件1:公司A在征得建设单位同意后,将其中机房工程建设工作分包给具有相应资质公司B,并将分包结果以书面形式通知了监理单位。

事件2:在机房工程施工中,总监理工程师在巡视中发现施工人员为了赶工期,把信号线和电源线放在了同一线槽中,违反了有关规范中信号线防干扰规定。总监理工程师随即要求公司B保护好施工现场并于2小时内将发生质量事故情况以书面形式上报建设单位和监理单位以便共同确认处理意见。

事件3:签订合同后,公司A向监理提交了《网络工程建设进度计划》,监理审核后认为该计划符合要求并予以签认。

事件4:工程验收是信息网络系统建设收尾工作,公司A按《网络工程建设进度计划》规定时间于9月10日完工,并于9月15日提出验收申请。在确认工程项目已经达到验收条件情况下,三方决定对项目实施验收,成立工程验收小组由5人组成,其中建设单位项目负责人1人、监理单位人员1人、外聘专家3人。

【问题1】在事件1中,公司A分包过程是否妥当?为什么?

【问题2】在事件2中,总监理工程师做法是否妥当?为什么?

【问题3】在事件3中,监理单位做法妥当吗?阐述监理在实施进度控制时,可以采用基本措施是什么。

【问题4】在事件4中,验收小组组成妥当吗?为什么?正式验收一般程序包括八个步骤,请列出。

查看答案
问答题

信息网络系统是信息系统重要组成部分,对信息网络系统监理工程实施是信息网络工程建设重要组成部分。

【问题1】信息网络系统现场实施通常分哪几个步骤进行?(5分)

【问题2】请简述网络设备采购到货环节监理流程。(5分)

【问题3】请列出两种信息网络系统常用监理方法,并对列出监理方法给出简要说明。(5分)

【问题4】在信息网络系统完工时,应由建设单位、承建单位和监理单位三方共同确定验收方案。验收方案确认重点工作之一就是确认工程验收基本条件是否满足要求,这时监理单位主要工作是什么?(5分)

查看答案
问答题

根据你所学监理知识,回答问题1至问题5,将解答填入答题纸对应栏内。(每个问题,回答一条得一分,每个问题只需答对4条即满分)

【问题1】(4分)

信息网络系统验收前提条件是什么?

【问题2】(4分)

信息应用系统验收前提条件有哪些?

【问题3】(4分)

网络设备和TCP/IP网络检测主要考虑技术指标有哪些,分别对四个指标名字进行简要解释。(只写出四个指标名字,可以给满分)

【问题4】(4分)

光缆测试有哪四种?各有什么工具测?

【问题5】(4分)

根据发改委55号令,初步验收时,建设单位对?、?、?、?进行验收,形成初验报告?

查看答案
问答题

某工程,实施过程中发生如下事件:[事件1]:总监理工程师组建项目监理机构组织形式如图2015-1-1所示。

中级信息系统监理师,章节练习,基础复习,中级信息系统监理师模拟

[事件2]:在第一次工地会议上,总监理工程师提出以下两方面要求,一是签发工程暂停令情形包括:①建设单位要求暂停施工;②施工单位拒绝项目监理机构管理;③施工单位采用不适当施工工艺或施工不当,造成工程质量不合格。二是签发监理通知单情形包括:①施工单位违反工程建设强制性标准;②施工存在重大质量、安全事故隐患。[事件3]:专业监理工程师编写深基坑工程监理实施细则主要内容包括:专业工程特点、监理工作方法及措施。其中,在监理工作方法及措施中提出:①要加强对深基坑工程施工巡视检查;②发现施工单位未按深基坑工程专项施工方案施工,应立即签发工程暂停令。[事件4]:施工过程中,施工单位对需要见证取样一批钢筋抽取试样后,报请项目监理机构确认。监理人员确认试样数量后,通知施工单位将试样送到检测单位检验。问题:1.指出图1-1所示项目监理机构组织形式属哪种类型,说明其主要优点。(5分)2.指出事件2中签发工程暂停令和监理通知单情形不妥项,并写出正确做法。(5分)3.写出事件3中监理实施细则还应包括内容。指出监理工作方法及措施中提出具体要求是否妥当并说明理由。(3分)4.指出事件4中施工单位和监理人员不妥之处,写出正确做法。(2分)

查看答案
问答题

【说明】某企业信息系统工程项目,包括网络建设、机房系统建设、软件开发等多个项目,甲公司为建设单位,通过公开招投标方式选择乙为承建方,丙为监理方,在项目实施过程中发生了如下事件: 【事件1】为保证系统建设过程中开发需求准确无误,在软件开发之前,监理方严格执行信息系统建设相关规定,协助承建方完成了需求分析。 【事件2】在项目业务软件开发实施过程中,由于乙方由于原因导致项目进度滞后,甲丶丙方多次要求乙方尽快调整进度。迫于甲丶丙方压力,乙方在甲、丙方不知情情况下,从其他项目组抽调多名技术人员,加入到本项目现场开发工作中,丙方在发现后立刻向乙方发停工令,要求新加入人员所承担工作暂时停工,乙方认为监理方做法错误并影响了工程进度,并应该补偿有此造成工期损失。 【事件3】在项目实施过程中,为了确保代码质量,承建单位除了按合同要求对开发过程进行有效控制外,还将测试覆盖率由 60%提高到 90%,为此增加成本 57 万。实施完成后,承建单位向监理工程师提出费用补偿要求。 【事件4】在一次项目沟通会上,甲方提出对软件功能进行小幅调整,会上通过甲乙方充分讨论,均认为需求变更确有必要,工作量增加不大,乙方便同意了甲方变更要求并实施。 【问题1】 (6分) 针对事件 1,需求分析阶段成果有哪些? 【问题2】 (6分)在事件2中,作为监理工程师,请回答;(1) 监理方做法是错误吗?请说出理由。(2) 乙方新进人员资质有问题吗?请说出理由。(3) 应该给乙方相应工期补偿吗? 【问题3】 (4分)针对问题3,作为监理工程师,你是否同意承建单位费用补偿要求,并说明理由。 【问题4】 (4分) 请指出事件4中应用软件变更中存在错误做法。

查看答案

相关题库更多 +