A公司是一个专业的航空软件开发公司,当前正在为某用户开发某航空嵌入式实时软件,王

题库2022-08-02  25

问题 A公司是一个专业的航空软件开发公司,当前正在为某用户开发某航空嵌入式实时软件,王工是该软件开发项目的负责人。应用户要求,A公司委托乙公司对其开发的航空软件进行第三方测试。张工是乙公司中该测试项目的负责人。 【问题1】王工在与张工讨论该软件的测试计划时,就软件的测试环境产生了争执。张工认为所有的第三方测试工作都必须在目标机环境下完成,否则无法保证测试的有效性。王工认为开发工作进度很紧,而且开发工作需要频繁占用目标机环境,第三方测试在仿真环境下进行就可以了,没有必要非得在目标机环境下测试。请在200字以内对上述两人意见的正确性进行评价与分析,并简述你对本题目中的测试环境问题的建议。 【问题2】 由于该软件是质量要求很高的航空嵌入式实时软件,在双方就签订该软件第三方测试技术协议进行磋商时,A公司要求乙方的第三方测试结构覆盖率必须达到修正的条件判定覆盖(MC/DC)。请分别简述修正的条件判定覆盖MC/DC与条件判定覆盖 (C/DC)对测试用例集的要求条件,下面给出了一个含有两个判定条件的例子,请说明两种覆盖测试用例集的设计方法。 例子: IF A OR B THEN         …         … ELSE         …         … ENDIF  【问题3】 张工的项目组根据王工的项目组提供的软件需求文档和设计文档,严格按照协议要求进行了第三方测试,但是软件交付给用户使用后,仍然出了很多问题,用户对软件质量评价不高。王工认为张工项目组没有很好地进行软件第三方测试,张工觉得并无不妥之处,请对这一状况和原因进行分析。

选项

答案

解析 一、试题分析这是一道关于嵌入式系统软件的测试问题的试题,主要涉及到第三方测试相关问题,以及测试用例的设计。【问题1】对于一般商用软件的测试,嵌入式软件测试有其自身的特点和测试困难。在嵌入式开发中,开发环境被认为是主机平台,软件运行环境为目标机平台。如果所有测试都放在目标机上有很多不利的因素,例如:(1)测试软件可能会造成与开发者争夺时间的瓶颈,为了避免这个问题只有提供更多的目标环境。(2)目标机环境可能还不可行。(3)比起主机平台环境,目标机环境通常是不精密的和不方便的。(4)提供给开发者的目标环境和联合开发环境通常是很昂贵的。(5)开发和测试工作可能会妨碍目标机环境已存在持续的应用。一般情况下:(1)所有单元测试在主机环境上进行。(2)软件集成在主机平台上模拟目标机环境运行,当然在目标环境上重复测试也是必须的。(3)所有的系统测试和确认测试必须在目标机环境下执行。【问题2】第2个问题要求比较修正的条件判定覆盖MC/DC与条件判定覆盖(C/DC),并根据给出的例子分别设计测试用例。控制流测试根据程序的内部逻辑结构设计测试用例,常用的技术是逻辑覆盖,即使用测试数据运行被测程序,考察对程序逻辑的覆盖程度。主要的覆盖标准有语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖、修正的条件/判定覆盖和路径覆盖等。(1)语句覆盖。语句覆盖是指选择足够多的测试用例,使得运行这些测试用例时,被测程序的每个语句至少执行一次。很显然,语句覆盖是一种很弱的覆盖标准。(2)判定覆盖。判定覆盖也称为分支覆盖,它是指不仅每个语句至少执行一次,而且每个判定的每种可能的结果(分支)都至少执行一次。判定覆盖比语句覆盖强,但对程序逻辑的覆盖程度仍然不高。(3)条件覆盖。条件覆盖是指不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取得各种可能的结果。条件覆盖不一定包含判定覆盖,判定覆盖也不一定包含条件覆盖。(4)条件/判定覆盖。同时满足判定覆盖和条件覆盖的逻辑覆盖称为判定/条件覆盖。它的含义是,选取足够的测试用例,使得判定表达式中每个条件的所有可能结果至少出现一次,而且每个判定本身的所有可能结果也至少出现一次。(5)条件组合覆盖。条件组合覆盖是指选取足够的测试用例,使得每个判定表达式中条件结果的所有可能组合至少出现一次。显然,满足条件组合覆盖的测试用例,也一定满足判定/条件覆盖。因此,条件组合覆盖是上述5种覆盖标准中最强的一种。然而,条件组合覆盖还不能保证程序中所有可能的路径都至少遍历一次。(6)修正的条件/判定覆盖。修正的条件/判定覆盖需要足够的测试用例来确定各个条件能够影响到包含的判定结果。首先,每个程序模块的入口和出口点都要考虑至少要被调用一次,每个程序的判定到所有可能的结果值要至少转换一次;其次,程序的判定被分解为通过逻辑操作符(and和or)连接的布尔条件,每个条件对于判定的结果值是独立的。(7)路径覆盖。路径覆盖是指选取足够的测试用例,使得程序的每条可能执行到的路径都至少经过一次(如果程序中有环路,则要求每条环路路径至少经过一次)。路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,因此是一种较强的覆盖标准。但路径覆盖并未考虑判定中的条件结果的组合,并不能代替条件覆盖和条件组合覆盖。【问题3】第3个问题的意思是经过了第三方测试后,软件仍然有问题,要求考生回答原因是什么。要注意的一句话:“张工的项目组根据王工的项目组提供的软件需求文档和设计文档,严格按照协议要求进行了第三方测试”,这就说明不是测试本身的问题。既然不是测试本身的问题,那原因是什么呢?第一个可能的原因是,王工提供的文档有问题,或者设计本身有问题;第二个可能的原因是,模拟的测试环境与实际的目标环境存在差异;第三个可能的原因是,软件质量不是靠测试出来的,而是形成于整个软件开发的过程。二、参考答案【问题1】(1)张工和王工的意见都不完全正确。为了节省对目标机环境的争用,测试的很多工作可以在仿真环境下进行;但是为了防止由于仿真环境与目标环境差异带来的测试错误,最终的测试程序必须在目标机环境上重新运行,以查看软件最终在目标环境下的实际运行情况。(2)针对本题所述情况,为了提高开发与测试工作的并行度,张工的项目组可以先在仿真环境下开发和运行测试程序;待王工项目组的代码开发工作完成后,再在目标机环境下完整地运行所有的测试程序。【问题2】(1)对于C/DC,要求测试集满足如下条件:判定中每个条件的真值与假值都至少取一次;同时判定的真值与假值也要求至少取一次。(2)对MC/DC,要求测试集满足如下条件:首先应满足C/DC的测试条件;判定中每个条件的取值都必须独立地影响判定的结果,即在其他条件取值不变的前提下,仅改变这个条件的值,而使判定结果改变。(3)两个判定例子的C/DC测试集设计方法:满足C/DC要求的测试用例集是{TT,FF};说明:因为该测试用例集中,条件A与B分别取了T与F,判定 A OR B,也取了T值(当A=T,B=T时)和F值(当A=F,B=F时)。(4)两个判定例子的MC/DC测试集设计方法:满足MC/DC要求的测试用例集是{FF,TF,FT}说明:C/DC要求的测试用例集是{TT,FF}无法满足MC/DC的要求,条件A与B均没有独立地影响判定的输出结果。【问题3】(1)软件测试的作用是查找软件中存在的问题,但是不能保证软件的正确性。软件正确性需要软件研发的全过程来保证。(2)从本题的情况来看,问题的根源很可能是王工或张工项目组的开发或测试工作中的某些点没有做好,主要原因包括:软件需求规格说明没有全面地反映用户的要求;需求文档和设计文档质量不高;软件代码的质量本身不高,可读性较差;测试用例没有100%覆盖需求;测试和开发人员责任心不够,开发过程控制不到位;软件开发无标准可循,测试人员难以理解。
转载请注明原文地址:https://tihaiku.com/congyezige/2400708.html

最新回复(0)