第1题:
试题四 论软件可靠性评价
软件可靠性评价是指选用和建立合适的可靠性数学模型,运用统计技术和其他手段,对软件可靠性测试和系统运行期间的软件失效数据(也可能包含软件生命周期内其他可靠性数据)进行处理,并评估和预测软件可靠性的过程。
软件可靠性评价是软件可靠性活动的重要组成部分,既可在软件开发过程实施,也可针对最终软件系统实施。软件可靠性评价的难点在于软件可靠性模型的选择和软件可靠性数据的收集与处理。
请围绕“软件可靠性评价”论题,依次从以下三个方面进行论述。
1. 简要概述你参与实施的软件开发项目以及你承担的主要工作。
2. 说明你在项目实施过程中所选择的软件可靠性模型, 并论述在软件可靠性模型选择时应该考虑的主要因素。
3. 收集软件可靠性数据时经常遇到的问题有哪些?简述你收集软件可靠性数据时所遇到的具体问题及解决的方法。
第2题:
试题四 论软件可靠性设计与应用
目前在企业中,以软件为核心的产品得到了广泛的应用。随着系统中软件部分比例的不断增加,使得系统对软件的依赖性越来越强,对软件的可靠性要求也越来越高。软件可靠性与其它质量属性一样,是衡量软件架构的重要指标。 软件工程中已有很多比较成熟的设计技术,如结构化设计、模块化设计、自顶向下设计等,这些技术为保障软件的整体质量发挥了重要作用。在此基础上,为了进一步提高软件的可靠性,通常会采用一些特殊的设计技术,即软件可靠性设计技术。 在软件可靠性工程体系中,包含有可靠性模型与预测、可靠性设计和可靠性测试方法等。实践证明,保障软件可靠性最有效、最经济、最重要的手段是在软件设计阶段采取措施进行可靠性控制。
请围绕“软件可靠性设计与应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与实施的软件开发项目以及你所承担的主要工作。
2.简要叙述影响软件可靠性的因素有哪些。
3.阐述常用的软件可靠性设计技术以及你如何应用到实际项目中,效果如何。
试题四 写作要点
一、论文中要具体介绍项目的总体需求(特别是可靠性需求)、采用的技术等内容和承担的实际工作。
二、影响软件可靠性的主要因素有:运行环境(软件可靠性的定义是相对于运行环境的);软件规模;软件内部结构(内部结构越复杂,包含的缺陷数就可能越多);软件的开发方法和开发环境;软件的可靠性投入等。
三、可靠性设计是在常规的软件设计中,应用各种方法和技术使程序设计在兼顾用户功能和性能需求的同时,全面满足软件的可靠性要求。软件可靠性设计技术就是以提高和保障软件的可靠性为目的,在软件设计阶段运用的一种特殊的设计技术。
主要的软件可靠性设计技术包括:
(1)容错设计技术。对于软件失效后果特别严重的场合,例如宇航器控制系统、空中交通控制和核反应堆控制系统等,可采用容错设计方法。常用的软件容错技术主要有恢复块设计、N版本程序设计和冗余设计。恢复块设计就是选择一组操作作为容错设计单元,从而把普通的程序块变为恢复块。一个恢复块中包含有若干功能相同、设计差异的程序块,每一时刻有一个程序块处于运行状态,一旦某程序块出现故障,则用备份程序块予以替换。N版本程序设计的核心是通过设计出多个模块或不同版本,对于相同初始条件和相同输入的操作结果进行多数表决(防止因其中某一软件模块/版本的故障而提供了错误的服务,以实现软件容错)。冗余设计的思路来源于硬件系统,但有所不同。软件冗余设计技术是采用多种不同路径、不同算法或不同实现方法的模块或系统作为备份,在出现故障时进行替换,维持系统的正常运行。
(2)检测技术。在无须在线容错或不能采用冗余设计技术的部分,但又有较高的可靠性要求时,一般采用检测性设计,在软件出现故障后能及时发现并报警。但其明显的缺点是不能自动解决故障,如果没有人工干预,最终将导致系统不能正常运行。
(3)降低复杂度设计。软件的复杂性与软件可靠性有密切关系。软件复杂性是产生软件缺陷的重要根源。降低复杂度设计的思想就是在保证实现软件功能基础上,简化软件结抅。
第3题:
关于软件可靠性测试的目的,下列说法错误的是______。
A) 通过受控的软件测试过程来实现
B) 预测软件在实际运行中的可靠性
C) 不通过测试揭示该软件缺陷
D) 通过修改缺陷来提高软件的可靠性
A.
B.
C.
D.
第4题:
以下关于软件可靠性测试的说法中,正确的是
A) 软件可靠性测试是一种比白盒测试更严格的软件测试
B) 软件可靠性测试的代价通常比较高
C) 软件可靠性测试本质上是一种黑盒单元测试
D) 软件可靠性测试不适用于面向对象软件测试
A.
B.
C.
D.
第5题:
试题二(共 15 分)
阅读以下关于嵌入式软件测试的叙述,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。
【说明】
某嵌入式软件主要用于控制飞机起落架。飞机起落架的可靠性直接关系着机载人员的人身安全。根据载机设备对软件可靠性要求,一般将软件分为 3 级:关键级软件,主要级软件和一般软件。由于该嵌入式软件被定义为关键软件,要求按关键级软件进行测试。
【问题 1】 (5 分)
请根据测试要求,简要说明语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖的含义。
【问题 2】 (7 分)
根据本题所示的软件关键级别,回答该软件需要做哪几项覆盖测试?要求的覆盖率指标是多少?如果是一般级软件,应做哪几项覆盖测试?
【问题 3】 (3 分)
在软件单元测试中,主要测试对象是软件模块,如果被测程序中有多处调用了其它过程代码,测试中应如何处理这些功能的引用?软件的性能测试在测试工作的哪个阶段进行?
第6题:
阅读以下关于嵌入式软件测试的叙述,回答问题1至问题3,将解答填入对应栏内。
【说明】
某嵌入式软件主要用于控制飞机起落架。飞机起落架的可靠性直接关系着机载人员的人身安全。根据载机设备对软件可靠性要求,一般将软件分为3级:关键级软件,主要级软件和一般软件。由于该嵌入式软件被定义为关键软件,要求按关键级软件进行测试。
请根据测试要求,简要说明语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖的含义。
第7题:
软件可靠性预测的目的是______。
A) 根据软件在可靠性与测试揭示的故障情况来预测软件在正在运行时的故障和实效情况
B) 通过受控的软件测试过程来预测软件在实际运行中的可靠性
C) 通过软件测试揭示软件缺陷并通过修改缺陷来提高软件可靠性
D) 关注可能导致失效的事件及其失效概率,并计算出各种事件组合导致失效的概率
A.
B.
C.
D.
第8题:
以下关于软件可靠性测试的说法中,正确的是______。
A.定义软件运行剖面是软件可靠性测试的重要步骤
B.软件可靠性测试使用的测试用例应该满足分支覆盖
C.软件可靠性测试可以在单元测试中实施
D.软件可靠性预测模型的作用是指导软件可靠性测试中的测试用例生成
第9题:
软件可靠性测试的目的是______。
A.通过测试揭示软件中的缺陷
B.修改发现的缺陷
C.提高软件可靠性
D.通过受控的软件测试过程来预测软件在实际运行中的可靠性
第10题:
第11题:
第12题:
第13题:
( 13 )下列关于软件可靠性测试的说法中,错误的是
A )发现软件缺陷是软件可靠性测试的主要目的
B )软件可靠性测试通常用于有可靠性要求的软件
C )在一次软件可靠性测试中,执行的测试用例必须完全符合所定义的软件运行剖面
D )可靠性测试通常要对测试结果进行分析才能获得测试结论
第14题:
试题五(共20分)
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
软件在机载设备中的运用越来越广泛,驻留于机载设备中的嵌入式软件失效会产生灾难性后果,一般要求其具有较高的可靠性,因此,软件可靠性测试对机载软件至关重要。
【问题1】(8分)
解释软件可靠性的含义及影响软件可靠性的主要因素。
【问题2】(6分)
可靠性评价时,经常使用的定量指标包括失效概率、可靠度和平均无失效时间(MTTF),请分别解释其含义。
【问题3】(6分)
对某嵌入式软件,设计要求其可靠度为1000小时无失效概率99.99%。经实测得出其失效概率函数F(1000)=0.0012,问该软件是否符合设计可靠性要求,并说明原因。
试题分析
【问题1】
可靠性是指产品在规定的条件下和规定的时间内完成规定功能的能力或者在指定条件下使用时,软件产品维持规定的性能级别的能力
从技术的角度来看,影响软件可靠性的主要因素如下:
运行剖面(环境):软件可靠性的定义是相对运行环境而言的,一样的软件在不同的运行剖面下,其可靠性的表现是不一样的
软件规模:也就是软件的大小,一个只有数十行代码的软件和几千行代码的软件是不能相提并论的
软件内部结构:结构对软件可靠性的影响主要取决于软件结构的复杂程度,一般来说,内部结构越复杂的软件,所包含的软件缺陷数就可能越多
软件的开发方法和开发环境:软件工程表明,软件的开发方法对软件的可靠性有显著影响,例如,与非结构化方法相比,结构化方法可以明显减少软件的缺陷数
软件的可靠性投入:软件在生命周期中可靠性的投入包括开发者在可靠性设计、可靠性管理、可靠性测试、可靠性评价等方面投入的人力、资金、资源和时间等。经验表明,在早期重视软件可靠性并采取措施开发出来的软件,可靠性有明显的提高
【问题2】
失效概率:软件从运行开始,到某一个时刻为止,出现失效的概率。如果将失效的概率看作关于软件运行时间的一个随机函数,用F(t)表示。函数F(t)具有如下特征:F(0)=0,即软件运行初始时刻失效概率为0;F(t)在时间域(0,+∞)上是单调递增的;F(+∞)=1,即失效概率在运行时间不断增长时趋向于1
可靠度:是软件系统在规定的条件下,规定的时间内不发生失效的概率。如果用F(t)来表示到t时刻为止,软件不出现失效的概率,则可靠度的公式为R(t)=1-F(t)
平均无失效时间(MTTF):是软件运行后,到下一次出现失效的平均时间。通常平均无失效时间更能直观地表明一个软件的可靠程度
【问题3】
不符合设计要求,题干中要求无1000小时无失效概率为99.99%。依据公式R(t)=1-F(t)可以得出实际的R(t)=1-0.0012=99.88%,实际的无失效概率99.88%要低于设计要求的99.99%
试题答案
【问题1】
可靠性是指产品在规定的条件下和规定的时间内完成规定功能的能力或者在指定条件下使用时,软件产品维持规定的性能级别的能力
从技术的角度来看,影响软件可靠性的主要因素如下:
运行剖面(环境);软件规模;软件内部结构;软件的开发方法和开发环境;软件的可靠性投入
【问题2】
失效概率:软件从运行开始,到某一个时刻为止,出现失效的概率
可靠度:是软件系统在规定的条件下,规定的时间内不发生失效的概率
平均无失效时间(MTTF):是软件运行后,到下一次出现失效的平均时间。通常平均无失效时间更能直观地表明一个软件的可靠程度
【问题3】
不符合设计要求,题干中要求无1000小时无失效概率为99.99%。依据公式R(t)=1-F(t)可以得出实际的R(t)=1-0.0012=99.88% < 99.99%
第15题:
以下关于软件可靠性测试的说法中.正确的是
A.软件可靠性测试总是能比白盒测试发现更多的错误
B.软件可靠性测试总是能比黑盒测试发现更多的错误
C.软件可靠性测试不关注与软件性能有关的软件故障
D.软件可靠性测试度量出来的软件可靠性特定于所定义的软件运行剖面
第16题:
软件可靠性测试的目的是______。
A) 发现软件缺陷
B) 预测软件正式运行中的可靠性
C) 控制测试过程
D) 修改软件缺陷
A.
B.
C.
D.
第17题:
对软件可靠性的理解,正确的是(45)。
①软件可靠性是指在指定条件下使用时,软件产品维持规定的性能级别的能力
②软件可靠性的种种局限是由于随着时间的推移,软件需求和使用方式发生了变化
③软件可靠性包括成熟性、有效性、容错性、易恢复性等质量子特性
④针对软件可靠性中的容错性子特性应测试软件失效防护能力
A.①③
B.②③
C.①④
D.①②③④
第18题:
软件可靠性管理把软件可靠性活动贯穿于软件开发的全过程,成为软件工程管理的一部分.确定软件的可靠性目标在 ( ) 阶段。
A.需求分析 B.概要设计 C.详细设计 D.软件测试
第19题:
在软件可靠性测试时,人们关注的核心是______。
A.软件错误
B.软件缺陷
C.软件失效
D.软件故障
第20题:
以下关于软件可靠性测试的说法中,正确的是______。
A.软件运行剖面的定义需要符合软件的实际运行情况
B.测试用例的生成必须采用白盒测试方法
C.软件可靠性测试通常能够比黑盒测试发现更多的错误
D.软件可靠性测试必须在集成测试中实施
第21题:
关于软件可靠性测试,说法不正确的是______。
A.若对软件可靠性要求很高,那么必须执行软件可靠性测试
B.软件可靠性测试的目标是预测软件在正式运行中的可靠性
C.由于软件可靠性的预测依赖于出错数据的统计,软件在可靠性测试中的运行情况必须完全符合软件的实际运行情况
D.在实施可靠性测试之前必须保证软件已经进行严格的测试
第22题:
第23题: