第5章 软件工程
题库 9 · 章节 73 · 共 70 题
1. 以下关于软件工程标准化的叙述中,不正确的是______。
- A. 可以提高开发人员之间的沟通效率
- B. 有助于提高管理水平
- C. 有助于提高软件产品质量
- D. 可以提高每一位开发人员的开发技能
答案:B
解析:
软件工程的目的是改善软件开发的组织,降低开发成本,缩短开发时间,提高工作效率,提高软件质量。与管理没关系。
难度 2 · 作答 1984 次 · 正确率 31.8%
2. 软件文档在软件生存期中起着重要的作用,其作用不包括______。
- A. 提高软件运行效率
- B. 作为开发过程的阶段工作成果和结束标记
- C. 提高开发过程的能见度
- D. 提高开发效率
答案:A
解析:
文档是软件开发使用和维护中的必备资料。文档能提高软件开发的效率,保证软件的质量,而且在软件的使用过程中有指导、帮助、解惑的作用,尤其在维护工作中,文档是不可或缺的资料。文档不仅包括软件开发过程中产生的文档,还包括硬件采购和网络设计中形成的文档;不仅包括有一定格式要求的规范文档,也包括系统建设过程中的各种往来文件、会议纪要、会计单据等资料形成的不规范文档。
难度 2 · 作答 1858 次 · 正确率 87.7%
3. 以下关于文档的叙述中,不正确的是______。
- A. 文档仅描述和规定了软件的使用范围及相关的操作命令
- B. 文档也是软件产品的一部分,没有文档的软件不能称为软件
- C. 软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量
- D. 高质量文档对于发挥软件产品的效益有着重要的意义
答案:A
解析:
本题考查软件开发文档。 文档是软件开发使用和维护中的必备资料。文档能提高软件开发的效率,保证软件的质量,而且在软件的使用过程中有指导、帮助、解惑的作用,尤其在维护工作中,文档是不可或缺的资料。文档不仅包括软件开发过程中产生的文档,还包括硬件采购和网络设计中形成的文档;不仅包括有一定格式要求的规范文档,也包括系统建设过程中的各种往来文件、会议纪要、会计单据等资料形成的不规范文档。
难度 2 · 作答 1713 次 · 正确率 76.3%
4. ______是软件生命周期中时间最长的阶段。
- A. 需求分析阶段
- B. 软件维护阶段
- C. 软件设计阶段
- D. 软件系统实施阶段
答案:B
解析:
本题考查软件生命周期及其生命周期阶段的主要特点。 软件生命周期是软件开发的全过程,这个过程由诸多阶段构成,包括需求分析、软件设计、编码及单元测试、集成及系统测试、安装、实施与维护等阶段,在由这些阶段所构成的软件生命周期全过程中软件维护阶段是软件生命周期中时间最长的阶段。因为在软件开发完投入使用后,由于多方面的原因,软件不能继续适应用户的要求,要延续软件的使用寿命,就必须对软件进行维护,所以从软件开发投入使用到软件被淘汰的整个过程都属于软件维护阶段,因此不难想象这个阶段的时长最长。
难度 2 · 作答 1777 次 · 正确率 88.1%
5. CMM将软件过程的成熟度分为5个等级。以下关于CMM各级别特征的描述中,不正确的是______。
- A. 处于初始级的软件过程可能是混乱的,项目成功往往依赖于个人
- B. 管理级的最大特征是软件过程和产品质量有详细的度量标准
- C. 定义级的最大特征软件过程文档化,并能持续地进行过程改进
- D. 可重复级能实现对成本、进度和功能特性的跟踪
答案:C
解析:
本题考查CMM软件能力成熟度模型。 CMM模型将软件过程的成熟度分为5个等级。 (1)初始级软件过程的特点是无秩序的,有时甚至是混乱的。软件过程定义几乎处于无章法和步骤可循的状态,软件产品所取得的成功往往依赖极个别人的努力和机遇。初始级的软件过程是未加定义的随意过程,项目的执行是随意甚至是混乱的。也许,有些企业制订了一些软件工程规范,但若这些规范未能覆盖基本的关键过程要求,且执行没有政策、资源等方面的保证,那么仍然被视为初始级。 (2)可重复级已经建立了基本的项目管理过程,可用于对成本、进度和功能特性进行跟踪。对类似的应用项目,有章可循并能重复以往所取得的成功。焦点集中在软件管理过程上。一个可管理的过程则是一个可重复的过程,一个可重复的过程则能逐渐演化和成熟。从管理角度可以看到一个按计划执行的、阶段可控的软件开发过程。 (3)定义级用于管理和工程的软件过程均已文档化、标准化,并形成整个软件组织的标准软件过程。全部项目均采用与实际情况相吻合的、适当修改后的标准软件过程来进行操作。要求制定企业范围的工程化标准,而且无论是管理还是工程开发都需要一套文档化的标准,并将这些标准集成到企业软件开发标准过程中去。所有开发的项目需根据这个标准过程,剪裁出与项目适宜的过程,并执行这些过程。过程的剪裁不是随意的,在使用前需经过企业有关人员的批准。 (4)管理级软件过程和产品质量有详细的度量标准。软件过程和产品质量得到了定量的认识和控制。 (5)优化级通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续地进行过程改进。
难度 2 · 作答 1776 次 · 正确率 45.4%
6. 瀑布模型的主要特点是______。
- A. 用户容易参与到开发活动中
- B. 易于处理可变需求
- C. 缺乏灵活性
- D. 用户与开发者沟通容易
答案:C
解析:
瀑布模型的主要特点是缺乏灵活性。瀑布模型将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。 其优点是为项目提供了按阶段划分的检查点,每个阶段完成后只需要关注后续阶段。但它的缺点也很明显,包括: 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。 早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。
难度 2 · 作答 1684 次 · 正确率 72.8%
7. 信息系统项目生命周期模型中的______适用于需求明确或团队具备行业经验,并开发过类似产品的项目。
- A. 瀑布模型
- B. V模型
- C. 螺旋模型
- D. 迭代模型
答案:A
解析:
本题考查软件开发模型。 ①瀑布模型,瀑布模型是一个特别经典,甚至有点老套的周期模型,一般情况下将其分为计划、需求分析、概要设计、详细设计、编码以及单元测试、测试、运行维护等几个阶段。瀑布模型的周期是环环相扣的。每个周期中交互点都是一个里程碑,上一个周期的结束需要输出本次活动的工作结果,本次的活动的工作结果将会作为下一个周期的输入。这样,当某一个阶段出现了不可控的问题的时候,就会导致返工,返回到上一个阶段,甚至会延迟下一个阶段。需求明确,人力资源合理的情况首选瀑布模型。 ②螺旋模型,螺旋模型,尤其重视风险分析阶段,特别适用于庞大并且复杂,非常高风险的项目。通常螺旋模型由四个阶段组成:制定计划、风险分析、实施工程和客户评估。螺旋模型中,发布的第一个模型甚至可能是没有任何产出的,可能仅仅是纸上谈兵的一个目标,但是随着一次次的交付,每一个版本都会朝着固定的目标迈进,最终得到一个更加完善的版本。 ③原型化模型,原型化模型第一步就是创建一个快速原型,能够满足项目干系人与未来的用户可以与原型进行交互,再通过与相关干系人进行充分的讨论和分析,最终弄清楚当前系统的需求,进行了充分的了解之后,在原型的基础上开发出用户满意的产品。在实际的项目过程中,借助于组织过程资产以及快速模型软件,一般在需求分析的时候,就可以建立一些简单的原型,例如在第一家YH公司中,因为是"行业软件提供商",所以拥有各个地域的行业解决软件方案,惯用的伎俩就是将其他地市的项目拿到本次项目实施地,作为原型化模型。原型化模型是极具意义的项目实践。 ④V模型,V模型从整体上看起来,就是一个v字型的结构,由左右两边组成。左边的下划线分别代表了需求分析、概要设计、详细设计、编码。右边的上划线代表了单元测试、集成测试、系统测试与验收测试。看起来V模型就是一个对称的结构,它的重要意义在于,非常明确的表明了测试过程中存在的不同的级别,并且非常清晰的描述了这些测试阶段和开发阶段的对应关系。 ⑤迭代模型,迭代模型,摒弃了传统的需求分析,设计,编码,测试的流程,而是将整个生命周期变成若干个冲刺阶段,而每一个阶段都是由以上若干或者全部传统的流程组成,在每一个阶段中,都会包含下面四个阶段:初始阶段,细化阶段,构建阶段,交付阶段。在初始阶段中,确认本次冲刺的范围,边界,系统选择的架构,计划,以及所需要的资源等信息。在细化阶段中,对问题进行建域,创建开发案例,创建模板以及准备工具等。在构建阶段的主要任务就是完成构建的开发并且进行测试,将完成的构建集成为产品,并且测试所有的功能。在交付阶段,主要是完成本次冲刺,将软件产品交付给相关的干系人。
难度 2 · 作答 1695 次 · 正确率 67.7%
8. 统一过程模型的四个阶段中,在______阶段进行需求分析和架构演进。
- A. 移交
- B. 精化
- C. 构建
- D. 起始
答案:B
解析:
统一过程模型是一种"用例和风险驱动,以架构为中心,迭代并增量"的开发过程,由方法和工具支持。统一过程定义了四个技术阶段及其主要工作产品: (1)起始阶段:专注项目的初创活动,主要工作产品有构想文档、初始用例模型、初始项目术语表、初始业务用例、初始风险评估、项目计划、业务模型及多个原型(需要时)。 (2)精化阶段:主要工作产品有用例模型、补充需求、分析模型、整体体系结构描述、可执行的软件体系结构原型、初步设计模型、修订的风险列表、项目计划及初始用户手册。 (3)构建阶段:关注系统的构建,产生实现模型,主要工作产品有设计模型、软件构件、集成软件增量、测试计划及步骤、测试用例及支持文档(用户手册、安装手册等)。 (4)移交阶段:关注软件提交方面的工作,产生软件增量,主要工作产品有提交的软件增量、测试报告和综合用户反馈。
难度 2 · 作答 1815 次 · 正确率 36.6%
9. 以下关于统一过程(UP)的叙述中,不正确的是______。
- A. UP是以用例和风险为驱动,以架构为中心,迭代且增量的开发过程
- B. UP定义了四个阶段,即起始、精化、构建和确认
- C. 每次迭代都包含计划、分析、设计、构造、集成、测试及内部和外部发布
- D. 每个迭代都有五个核心工作流
答案:B
解析:
本题考查统一过程(UP)。 统一过程(UP)的基本特征是以用例和风险驱动,以架构为中心,受控的迭代式的增量开发。UP定义了四个阶段: 起始阶段(Inception):该阶段的主要目的是建立项目的范围和版本,确定项目目标的可行性和稳定性,提交结果包括需求和用例。 精化阶段(Elaboration):该阶段的目的是对问题域进行分析,建立系统需求和架构,确定实现目标的可行性和稳定性,提交结果包括系统架构、问题领域、修改后的需求及项目开发计划等相关文档。 构建阶段(Construction):增量式开发可以交付给用户的软件产品。 移交阶段(Transition):该阶段的目的是将软件产品交付给用户。
难度 2 · 作答 1772 次 · 正确率 51.5%
10. 以下关于基于构件的开发模型的叙述中,不正确的是______。
- A. 本质上是演化模型,以迭代方式构建软件
- B. 必须采用面向对象开发技术
- C. 采用预先打包的软件构件构造软件
- D. 构件可以是组织内部开发的,也可以是商品化成品软件构件
答案:B
解析:
基于构件的开发模型是指利用预先包装的构件来构造应用系统。构件可以是组织内部开发的构件,也可以是商品化成品软件构件。基于构建的开发模型具有许多螺旋模型的特点,它本质上是演化模型,需要以迭代方式构建软件。其不同之处在于基于构件的开发模型采用预先打包的软件构建开发应用系统。
难度 2 · 作答 1743 次 · 正确率 83.1%
11. 在敏捷过程的方法中______认为每一个不同的项目都需要一套不同的策略、约定和方法论。
- A. 极限编程(XP)
- B. 水晶法(Crystal)
- C. 并列争球法(Scrum)
- D. 自适应软件开发(ASD)
答案:B
解析:
本题考查敏捷方法的基础知识。 在20世纪90年代后期,一些开发人员抵制严格化软件开发过程,试图强调灵活性在快速有效的软件生产中的作用,提出了敏捷宣言,即个人和交互胜过过程和工具;可以运行的软件胜过面面俱到的文档;与客户合作胜过合同谈判;对变化的反应胜过遵循计划。基于这些基本思想,有很多敏捷过程的典型方法,其中: 极限编程XP是激发开发人员创造性、使得管理负担最小的一组技术。 水晶法Crystal认为每一个不同的项目都需要一套不同的策略、约定和方法论。 并列争球法(Scrum)使用迭代的方法,其中把每30天一次的迭代称为一个冲刺,并按需求的优先级来实现产品。多个自组织和自治小组并行地递增实现产品,协调是通过简短的日常情况会议进行。 自适应软件开发(ASD)有六个基本的原则: ①在自适应软件开发中,有一个使命作为指导,它设立了项目的目标,但并不描述如何达到这个目标; ②特征被视为客户键值的关键,因此,项目是围绕着构造的构件来组织并实现特征; ③过程中的迭代是很重要的,因此重做与做同样重要,变化也包含其中; ④变化不视为是一种更正,而是对软件开发实际情况的调整; ⑤确定的交付时间迫使开发人员认真考虑每一个生产版本的关键需求; ⑥风险也包含其中,它使开发人员首先跟踪最艰难的问题。
难度 2 · 作答 1742 次 · 正确率 48.7%
12. 下列关于敏捷方法的叙述中,错误的是______。
- A. 与传统方法相比,敏捷方法比较适合需求变化大或者开发前期对需求不是很清晰的项目
- B. 敏捷方法尤其适合于开发团队比较庞大的项目
- C. 敏捷方法的思想是适应性,而不是预设性
- D. 敏捷方法以原型开发思想为基础,采用迭代式增量开发
答案:B
解析:
本题考查敏捷方法的特点和适用环境。 敏捷方法适合于开发团队较小的项目。
难度 2 · 作答 1607 次 · 正确率 70.1%
13. 以下关于极限编程(XP)的最佳实践的叙述中,不正确的是______。
- A. 只处理当前的需求,使设计保持简单
- B. 编写完程序之后编写测试代码
- C. 可以按日甚至按小时为客户提供可运行的版本
- D. 系统最终用户代表应该全程配合XP团队
答案:B
解析:
本题考查软件开发方法的基础知识。 敏捷方法是重要的一类软件开发方法。要求考生掌握极限编程(XP)和Scrum的基本概念和特点。XP的十二个最佳实践是XP的重要特点,包括简单设计、测试优先、持续集成、集体所有权和现场客户等。
难度 2 · 作答 1632 次 · 正确率 49.6%
14. 某企业财务系统的需求中,属于功能需求的是______。
- A. 每个月特定的时间发放员工工资
- B. 系统的响应时间不超过3秒
- C. 系统的计算精度符合财务规则的要求
- D. 系统可以允许100个用户同时查询自己的工资
答案:A
解析:
本题考查软件需求的功能需求。 功能需求即软件必须完成哪些事,必须实现哪些功能。选项B、C、D属于性能需求。
难度 2 · 作答 1596 次 · 正确率 71.9%
15. 确定软件的模块划分及模块之间的调用关系是______阶段的任务。
- A. 需求分析
- B. 概要设计
- C. 详细设计
- D. 编码
答案:B
解析:
本题考查软件生命周期各阶段的任务。 需求分析阶段的任务主要是要解决系统做什么的问题,即弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。 概要设计的主要任务是把需求分析得到的结果转换为软件结构和数据结构,即将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面、确定数据的结构特性、以及数据库的设计等。 详细设计是在概要设计的基础上更细致的设计,它包括具体的业务对象设计、功能逻辑设计、界面设计等工作。详细设计是系统实现的依据,需要更多地考虑设计细节。 编码即编写程序代码,具体实现系统。
难度 2 · 作答 1663 次 · 正确率 64.8%
16. 在规划分模块时,一个模块的作用范围应该在其控制范围之内,若发现其作用范围不在其控制范围内,则______不是适当的处理方法。
- A. 将判定所在模块合并到父模块中,使判定处于较高层次
- B. 将受判定影响的模块下移到控制范围内
- C. 将判定上移到层次较高的位置
- D. 将父模块下移,使该判定处于较高层次
答案:D
解析:
本题考查模块划分的相关概念。 一个模块的作用范围(又称影响范围)是指受该模块内一个判定影响的所有模块的集合。一个模块的控制范围是指模块本身及其所有下属模块(直接或间接从属于它的模块)的集合。一个模块的作用范围应在其控制范围之内,而且判定所在的模块应和其影响的模块在层次上尽量靠近。如果在设计过程中,发现模块的作用范围不在其控制范围之内,可以用"上移判点"或"下移受判断影响的模块,将它下移到判断所在模块的控制范围内"的方法加以改进。
难度 2 · 作答 1717 次 · 正确率 60.3%
17. 以下关于测试的叙述中,正确的是______。
- A. 实际上,可以采用穷举测试来发现软件中的所有错误
- B. 错误很多的程序段在修改后错误一般会非常少
- C. 测试可以用来证明软件没有错误
- D. 白盒测试技术中,路径覆盖法往往能比语句覆盖法发现更多的错误
答案:D
解析:
本题考查软件测试的基本内容。 软件测试是软件开发过程的重要阶段,在软件需求分析阶段就开始了,一直到软件废弃之前,都有测试活动。软件测试的目的是为了发现软件中存在的错误,而不是为了证明软件是正确的。另外,由于穷举测试是不可能的,因此即使对软件进行充分的测试,软件中的错误仍然存在。而且据统计,在软件测试过程中,错误很多的程序段在修改之后往往会引入新的错误,因此通常还是错误非常多的程序段。白盒测试是一类常用的测试技术,包含许多具体的方法,如语句覆盖、判定覆盖、路径覆盖等,其中路径覆盖是最强的覆盖,而语句覆盖是最弱的覆盖,路径覆盖往往比语句覆盖能发现程序中更多的问题。
难度 2 · 作答 1492 次 · 正确率 82.6%
18. 以下关于测试原则的叙述中,不正确的是______。
- A. 充分注意测试中的群集现象
- B. 设计测试用例时,应包括合理的输入条件和不合理的输入条件
- C. 应该由程序员测试自己编写的程序
- D. 严格执行测试计划,避免测试的随意性
答案:C
解析:
软件测试准则: ●应该尽早地、不断的进行测试,软件测试贯穿于开发过程的始终。 ●所有测试都应该能追溯到用户需求。 ●应该从小规模测试开始,并逐步进行大规模测试。 ●应该远在测试之前就制定出测试计划。 ●80%的错误可能出现在20%的程序模块中, ●应该由独立的第三方从事测试工作。 ●对非法和非预期的输入数据也要像合法数据一样编写测试用例。 ●检查软件是否做了应该做的事仅是成功一半,另一半是看软件是否做了不该做的事。 ●在规划测试时不要设想程序中不会查出错误。 ●测试只能证明软件中有错误,不能证明软件中没有错误。
难度 2 · 作答 1425 次 · 正确率 96.1%
19. 软件测试过程中的系统测试主要是为了发现______阶段的问题。
- A. 软件实现
- B. 概要设计
- C. 详细设计
- D. 需求分析
答案:D
解析:
2014、2021年上半年上午题的原题。系统测试是将已经确认的软件、硬件、外设、网络等其他因素结合在一起,进行各种集成测试和确认测试。目的是通过与系统的需求(SRS)进行比较,发现所开发的系统与用户需求不符或矛盾的地方。主要包括恢复测试、安全性测试、压力测试、性能测试、部署测试。
难度 2 · 作答 1596 次 · 正确率 37.9%
20. 以下关于白盒测试原则的叙述中,不正确的是______。
- A. 在所有的逻辑判断中,取"真"和取"假"的两种情况至少都能执行一次
- B. 程序模块中的所有独立路径至少执行一次
- C. 每个循环都应在边界条件和一般条件下各执行一次
- D. 在输入条件规定的取值范围的情况下,合理的输入和不合理的输入至少都能执行一次
答案:D
解析:
白盒测试的原则如下。 (1)程序模块中的所有独立路径至少执行一次。 (2)在所有的逻辑判断中,取"真"和取"假"的两种情况至少都能执行一次。 (3)每个循环都应在边界条件和一般条件下各执行一次。 (4)测试程序内部数据结构的有效性等。
难度 2 · 作答 1537 次 · 正确率 41.6%
21. 下列测试方法中,______程度最高。
- A. 语句覆盖
- B. 判定覆盖
- C. 路径覆盖
- D. 条件覆盖
答案:C
解析:
常用的白盒测试用例设计方法有语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、条件组合覆盖、路径覆盖等,发现错误的能力呈由弱至强的变化。 语句覆盖每条语句至少执行一次。判定覆盖每个判定的每个分支至少执行一次。 条件覆盖每个判定的每个条件应取到各种可能的值。判定/条件覆盖同时满足判定覆盖条件覆盖。 条件组合覆盖每个判定中各条件的每一种组合至少出现一次。路径覆盖使程序中每一条可能的路径至少执行一次。
难度 2 · 作答 1488 次 · 正确率 79.3%
22. 关于白盒测试的测试用例设计方法中,正确的是______。
- A. 完成SC(语句覆盖)所需的测试用例数目一定多于完成DC(判定覆盖)所需的测试用例数目
- B. 达到100%CC(条件覆盖)要求就一定能够满足100%SC的要求
- C. 达到100%CDC(条件/判定覆盖)要求就一定能够满足100%CC的要求
- D. 任何情况下,都可以达到100%路径覆盖的要求
答案:C
解析:
本题考查白盒测试中的逻辑覆盖。 即考查用测试数据运行被测程序时对程序逻辑的覆盖程度。主要的覆盖标准有六种:语句覆盖(SC)、判定覆盖(DC)、条件覆盖(CC)、判定/条件覆盖(CDC)、组合条件覆盖(MCC)和路径覆盖。 (1)语句覆盖是指选择足够多的测试用例,使得运行这些测试用例时,被测程序的每个语句至少执行一次。显然,语句覆盖是一种很弱的覆盖标准。 (2)判定覆盖又称分支覆盖,它的含义是不仅每个语句至少执行一次,而且每个判定的每种可能的结果(分支)都至少执行一次。判定覆盖比语句覆盖强。 (3)条件覆盖的含义是不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。因此条件覆盖不一定包含判定覆盖、判定覆盖也不一定包含条件覆盖。 (4)判定/条件覆盖就是同时满足判定覆盖和条件覆盖的逻辑覆盖。它的含义是,选取足够的测试用例,使得判定表达式中每个条件的所有可能结果至少出现一次,而且每个判定本身的所有可能结果也至少出现一次。 (5)条件组合覆盖的含义是,选取足够的测试用例,使得每个判定表达式中条件结果的所有可能组合至少出现一次。因此,满足条件组合覆盖的测试用例,也一定满足判定/条件覆盖。 (6)路径覆盖的含义是,选取足够的测试用例,使得程序的每条可能执行到的路径都至少经过一次(如果程序中有环路,则要求每条环路至少经过一次)。 路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,因此是一种较强的覆盖标准。但路径覆盖并未考虑判定中的条件结果的组合,并不能代替条件覆盖和条件组合覆盖。
难度 2 · 作答 1471 次 · 正确率 64.5%
23. (复合题 1/2)(1)正确的选项是?
共用题干: 用白盒测试技术对下面流程图进行测试,设计的测试用例如下表所示。至少采用测试用例(1)才可以实现语句覆盖;至少采用(2)才可以实现路径覆盖。
测试用例表 编号 A B x ① 2 0 4 ② 1 1 1 ③ 2 1 1 ④ 4 0 2
- A. ①
- B. ②
- C. ③
- D. ④
答案:A
解析:
本题考查软件测试和软件复杂性度量。 语句覆盖是指选择足够多的测试用例,使得运行这些测试用例时,被测试程序的每个语句至少执行一次。显然,语句覆盖是一种很弱的覆盖。 将测试用例①代入流程图中,流程图的每一条语句都被执行,所以用例①可以实现语句覆盖,而其他测试用例都无法实现每一条语句都覆盖。 路径覆盖是指选取足够的测试用例,使得程序的每条可能执行到的路径都至少经过一次(如果程序中有环路,则要求每条环路至少经过一次)。路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,因此是一种较强的覆盖标准。但路径覆盖并未考虑判定中的条件结果的组合,并不能代替条件覆盖和条件组合覆盖。 流程图中共有四条路径abd、acbd、acbed、abed,而测试用例①②③④正好满足流程图中的这四条路径,因此①②③④都要采用才可实现路径覆盖。
难度 2 · 作答 1707 次 · 正确率 82.9%
24. (复合题 2/2)(2)正确的选项是?
共用题干: 用白盒测试技术对下面流程图进行测试,设计的测试用例如下表所示。至少采用测试用例(1)才可以实现语句覆盖;至少采用(2)才可以实现路径覆盖。
测试用例表 编号 A B x ① 2 0 4 ② 1 1 1 ③ 2 1 1 ④ 4 0 2
- A. ①
- B. ②
- C. ③④
- D. ①②③④
答案:D
解析:
本题考查软件测试和软件复杂性度量。 语句覆盖是指选择足够多的测试用例,使得运行这些测试用例时,被测试程序的每个语句至少执行一次。显然,语句覆盖是一种很弱的覆盖。 将测试用例①代入流程图中,流程图的每一条语句都被执行,所以用例①可以实现语句覆盖,而其他测试用例都无法实现每一条语句都覆盖。 路径覆盖是指选取足够的测试用例,使得程序的每条可能执行到的路径都至少经过一次(如果程序中有环路,则要求每条环路至少经过一次)。路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,因此是一种较强的覆盖标准。但路径覆盖并未考虑判定中的条件结果的组合,并不能代替条件覆盖和条件组合覆盖。 流程图中共有四条路径abd、acbd、acbed、abed,而测试用例①②③④正好满足流程图中的这四条路径,因此①②③④都要采用才可实现路径覆盖。
难度 2 · 作答 1697 次 · 正确率 81.2%
25. 如果两个小组地独立地测试同一个程序,第一组发现60个错误,第二组发现50个错误,在两个小组发现的错误中有30个是共同的,那么可以估计程序中的错误总数是______个。
- A. 50
- B. 60
- C. 100
- D. 120
答案:C
解析:
本题考查软件测试策略。 对于这类题的求解,我们首先要求解出每组发现错误的效率,然后用其发现的错误数除以效率,就可以估算出总的错误数。 对于第一组,发现了60个错误,这其中30个是与第二组共同的,而第二组发现的50个错误中,第一组还有20个没有发现,所以其发现错误的效率为30/50=60%,因此可以估算出程序中错误总数为60/60%=100。 同样的道理,通过计算第二个小组的效率也可以估算出程序中总的错误数为100。 另外,由于两个小组是独立进行测试的,所以可以估计:程序中的错误总数为100个。
难度 2 · 作答 1666 次 · 正确率 65.2%
26. 招聘系统要求求职的人年龄在20岁到60岁之间(含),学历为本科、硕士或者博士,专业为计算机科学与技术、通信工程或者电子工程。其中______不是好的测试用例。
- A. (20, 本科, 电子工程)
- B. (18, 本科, 通信工程)
- C. (18, 大专, 电子工程)
- D. (25, 硕士, 生物学)
答案:C
解析:
本题考查软件测试的测试用例基本知识。 测试用例是软件测试的重要概念,是指为某个特殊 目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。好的测试用例应该是能够定位软件错误的测试用例。在本题的四个选项中,选项A为符合规格说明的测试用例,选项B和D是一个条件不符合规格说明的测试用例,而选项C是两个条件不符合规格说明的测试用例,不是好的测试用例。
难度 2 · 作答 1601 次 · 正确率 76.7%
27. 对采用面向对象方法开发的系统进行测试时,通常从不同层次进行测试,对类中定义的每个方法进行测试属于______层。
- A. 模板
- B. 系统
- C. 算法
- D. 类
答案:C
解析:
面向对象测试可以分为四个层次: (1)算法层。用于测试类中定义的每个方法,基本上相当于传统软件测试中的单元测试。 (2)类层。用于测试封装在同一个类中的所有方法与属性之间的相互作用。在面向对象软件中,类是基本模块,因此可以认为这是面向对象测试中所特有的模块测试。 (3)模板层。用于测试一组协同工作的类之间的相互作用。大体上相当于传统软件测试中的集成测试,但是也有面向对象软件的特点,如对象之间通过发送消息相互作用。 (4)系统层。把各个子系统组装成完整的面向对象软件系统,在组装过程中同时进行测试。
难度 2 · 作答 1527 次 · 正确率 51.0%
28. 软件交付之后,由于软硬件环境发生变化而对软件进行修改的行为属于______维护。
- A. 改善性
- B. 适应性
- C. 预防性
- D. 改正性
答案:B
解析:
系统维护主要包括硬件维护、软件维护和数据维护。软件维护的内容:
(1)正确性维护:改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。占整个维护工作量的17%21%。修正BUG、错误。
(2)适应性维护:使应用软件适应信息技术变化和管理需求变化而进行的修改。占整个维护工作量的18%25%。应变。例如操作系统版本的更新、硬件设备的更换等。
(3)完善性维护:为扩充功能和改善性能而进行的修改。占整个维护工作的50%~60%。新需求。
(4)预防性维护:为改进应用软件的可靠性和可维护性,为适应未来的软/硬环境的变化,应主动增加预防性的新功能,以使应用系统适应各类变化而不被淘汰。占整个维护工作量的4%左右。针对未来。
难度 2 · 作答 1551 次 · 正确率 87.2%
29. 系统交付用户使用后,为了改进系统的图形输出而对系统进行修改的维护行为属于______维护。
- A. 改正性
- B. 适应性
- C. 改善性
- D. 预防性
答案:C
解析:
本题考查软件的维护内容。 软件的维护内容主要有以下四个方面: ①改正性维护是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。 ②适应性维护是指使应用软件适应信息技术变化和管理需求变化而进行的修改。 ③完善性维护是指为了扩充功能和改善性能而进行的修改,主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。 ④预防性维护是指为了改进应用软件的可靠性和可维护性,为了适应未来的软件、硬件环境的变化,应主动增加预防性的新功能,以使应用系统可以适应各类变化而不被淘汰。
难度 2 · 作答 1444 次 · 正确率 87.5%
30. 软件公司经常通过发布更新补丁的方式,对已有软件产品进行维护,并在潜在错误成为实际错误前,监测并更正他们,这种方式属于______维护。
- A. 更正性
- B. 适应性
- C. 完善性
- D. 预防性
答案:D
解析:
本题考查软件维护的类型。 软件维护指在软件运行/维护阶段对软件产品所进行的修改。要求进行软件维护的原因可归纳为3种类型: ①改正在特定的使用条件下暴露出来的一些潜在程序错误或设计缺陷。 ②因在软件使用过程中数据环境发生变化或处理环境发生变化,对软件进行的修改。 ③用户和数据处理人员在使用时常提出改进现有功能、增加新的功能,以及改善总体性能的要求,为了满足这些要求需要进行软件修改。 与上述原因相对应,可将维护活动归纳为:改正性维护、适应性维护和完善性维护。 除了上述3类维护外,还有一类维护活动叫预防性维护。 ④预防性维护是为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础的维护活动。预防性维护可定义为:"把今天的方法用于昨天的系统以满足明天的需要"。即本题中的方式属于预防性维护。
难度 2 · 作答 1521 次 · 正确率 70.0%
31. 某企业根据业务需要,希望软件系统能提供柱状图的报表,这时对该软件系统进行的维护属于______维护。
- A. 正确性
- B. 完善性
- C. 适应性
- D. 预防性
答案:B
解析:
本题考查软件维护的分类。 根据引起软件维护的原因不同,软件维护通常可分为以下四种类型: 改正性维护:在软件交付使用后,必然会有一部分隐藏的错误被带到运行阶段来。这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。为了纠正这些错误而对软件进行的维护工作就是改正性维护。该类维护一般占总维护工作量的25%。 适应性维护:随着计算机的飞速发展,外部环境(新的硬、软件配置)或数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)或应用环境可能发生变化,为了使软件适应这种变化,而去修改软件的过程就叫做适应性维护。该类维护一般占总维护工作量的20%。 完善性维护:在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。该类维护一般占总维护工作量的50%。 预防性维护:为了提高软件的可维护性、可靠性等而提出的一种维护类型,它为以后进一步改进软件打下良好基础。通常,预防性维护定义为"把今天的方法学用于昨天的系统以满足明天的需要"。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。该类维护一般占总维护工作量的4%。 在本题中,是要添加新的报表功能,因此这类维护属于完善性维护,因此本题的正确答案应选B。
难度 2 · 作答 1452 次 · 正确率 83.5%
32. 在新旧系统转换的过程中,在新系统全部正式运行前,一部分一部分地替代旧系统的策略称为______。
- A. 位置转换
- B. 直接转换
- C. 并行转换
- D. 分段转换
答案:D
解析:
本题主要考查系统转换的概念。 新老系统之间的转换有三种方式直接转换、并行转换和分段转换。下面详细介绍这三种转换各自的特点。 直接转换就是在确定新系统运行无误时,立刻启用新系统,终止老系统运行。这种方式对人员、设备费用很节省,一般适用于处理过程不太复杂、数据不很重要的场合。 并行转换是让新老系统并行一段时间,经过一段时间的考验以后,新系统正式替代老系统。对于较复杂的大型系统,它提供了一个与老系统运行结果进行比较的机会,可以对新老两个系统并行工作,消除了尚未认识新系统时的紧张和不安。在银行、财务和一些企业的核心系统中,这是一种经常使用的转换方式。它的主要特点是安全、可靠,但费用和工作量都很大,因为在相当的长时间内系统要两套班子并行工作。 分段转换又称逐步转换、向导转换、试点过渡法等。这种转换方式实际上是以上两种转换方式的结合。在新系统全部正式运行前,一部分一部分地代替老系统。那些在转换过程中还没有正式运行的部分,可以在一个模拟环境中继续试运行。这种方式既保证了可靠性,又不至于费用太大。但是这种分段转换要求子系统之间有一定的独立性,对系统的设计和实现都有一定的要求,否则就无法实现分段转换的设想。 由此可以看出题目所说的"在新系统全部正式运行前,一部分一部分地代替旧系统的策略"是分段转换。
难度 2 · 作答 1376 次 · 正确率 82.3%
33. 在下列说法中,______是造成软件危机的主要原因。 ①用户使用不当 ②软件本身特点 ③硬件不可靠 ④对软件的错误认识 ⑤缺乏好的开发方法和手段 ⑥开发效率低
- A. ①③⑥
- B. ①②④
- C. ③⑤⑥
- D. ②⑤⑥
答案:D
解析:
本题考查软件危机的主要表现。 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要表现在:软件需求的增长得不到满足,软件生产成本高、价格昂贵,软件生产进度无法控制,软件需求定义不够准确,软件质量不易保证,软件可维护性差。归纳起来,产生软件危机的内在原因可归结为两个重要方面:一方面是由于软件生产本身存在着复杂性;另一方面是与软件开发所使用的方法和技术有关。
难度 2 · 作答 1553 次 · 正确率 55.6%
34. 某个软件,不符合公司的战略决策,属于______风险。
- A. 商业风险
- B. 项目风险
- C. 开发风险
- D. 人员风险
答案:A
解析:
商业风险威胁到要开发软件的生存能力,且常常会危害到项目或产品。5个主要的商业风险如下。 (1)市场风险。开发了一个没有人真正需要的优良产品或系统。 (2)策略风险。开发的产品不再符合公司的整体商业策略。 (3)销售风险。开发了一个销售部门不知道如何去销售的产品。 (4)管理风险。由于重点的转移或人员的变动而失去了高级管理层的支持。 (5)预算风险。没有得到预算或人员的保证。
难度 2 · 作答 1448 次 · 正确率 74.8%
35. 项目复杂性、规模和结构的不确定性属于______风险。
- A. 项目
- B. 技术
- C. 经济
- D. 商业
答案:A
解析:
本题考查项目风险的基本概念。 项目风险是指可能导致项目损失的不确定性。美国项目管理大师马克思·怀德曼将其定义为某一事件发生给项目目标带来不利影响的可能性。
难度 2 · 作答 1473 次 · 正确率 75.2%
36. 风险预测从两个方面评估风险,即风险发生的可能性以及______。
- A. 风险产生的原因
- B. 风险监控技术
- C. 风险能否消除
- D. 风险发生所产生的后果
答案:D
解析:
本题考查风险预测知识。 风险预测从风险发生的可能性大小以及风险发生所产生的后果是否严重两个方面评估风险。
难度 2 · 作答 1403 次 · 正确率 84.5%
37. (复合题 1/2)(1)正确的选项是?
共用题干: 下图是一个软件项目的活动图,其中顶点表示里程碑,连接顶点的边表示包含的活动,则一共有 (1) 条关键路径,关键路径的长度为 (2) 。
- A. 2
- B. 4
- C. 3
- D. 1
答案:B
解析:
考察项目管理关键路径。如上图可以发现,关键路径为最长的一条路线。关键路径有4条,分别为:ABEHJK、ABEFIJK、ACEHJK、ACEFIJK,总长度为55。
难度 2 · 作答 1570 次 · 正确率 54.8%
38. (复合题 2/2)(2)正确的选项是?
共用题干: 下图是一个软件项目的活动图,其中顶点表示里程碑,连接顶点的边表示包含的活动,则一共有 (1) 条关键路径,关键路径的长度为 (2) 。
- A. 48
- B. 55
- C. 30
- D. 46
答案:B
解析:
考察项目管理关键路径。如上图可以发现,关键路径为最长的一条路线。关键路径有4条,分别为:ABEHJK、ABEFIJK、ACEHJK、ACEFIJK,总长度为55。
难度 2 · 作答 1473 次 · 正确率 92.6%
39. (复合题 1/2)(1)正确的选项是?
共用题干: 某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续时间(天)。完成该项目的最少时间为(1)天。由于某种原因,现在需要同一个开发人员完成BC和BD,则完成该项目的最少时间为(2)天。
- A. 11
- B. 18
- C. 20
- D. 21
答案:B
解析:
本题考查软件项目的活动图。 活动图是描述一个项目中各个工作任务相互依赖关系的一种模型,项目的很多重要特性可以通过分析活动图得到,如估算项目完成时间,计算关键路径和关键活动等。 根据上图计算出关键路径为A-B-C-E-F-J和A-B-D-G-F-J,其长度为18。 活动BC和BD由一个工作人员完成,而这两个活动都在关键路径上,松弛时间为0。若先完成活动BC,则活动BD要晚3天才能开始,完成该项目的最少时间是18+3=21天;若先完成活动BD,则活动BC要晚2天才能开始,完成该项目的最少时间为18+2=20天。因此选择先完成活动BD,再完成活动BC,此时完成项目的最少时间为20天。
难度 2 · 作答 1539 次 · 正确率 76.5%
40. (复合题 2/2)(2)正确的选项是?
共用题干: 某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续时间(天)。完成该项目的最少时间为(1)天。由于某种原因,现在需要同一个开发人员完成BC和BD,则完成该项目的最少时间为(2)天。
- A. 11
- B. 18
- C. 20
- D. 21
答案:C
解析:
本题考查软件项目的活动图。 活动图是描述一个项目中各个工作任务相互依赖关系的一种模型,项目的很多重要特性可以通过分析活动图得到,如估算项目完成时间,计算关键路径和关键活动等。 根据上图计算出关键路径为A-B-C-E-F-J和A-B-D-G-F-J,其长度为18。 活动BC和BD由一个工作人员完成,而这两个活动都在关键路径上,松弛时间为0。若先完成活动BC,则活动BD要晚3天才能开始,完成该项目的最少时间是18+3=21天;若先完成活动BD,则活动BC要晚2天才能开始,完成该项目的最少时间为18+2=20天。因此选择先完成活动BD,再完成活动BC,此时完成项目的最少时间为20天。
难度 2 · 作答 1582 次 · 正确率 62.0%
41. 以下关于 PERT 图的叙述中,不正确的是______。
- A. 易于看出每个子任务的持续时间
- B. 易于看出目前项目的实际进度情况
- C. 易于看出子任务之间的衔接关系
- D. 易于识别出关键的子任务
答案:B
解析:
软件项目的活动图(PERT图),顶点表示里程碑,连接顶点的边表示活动,边上的权重表示完成该活动所需要的时间(天)。看不出目前项目的实际进度情况,B错误。

难度 2 · 作答 1521 次 · 正确率 51.4%
42. 以下关于甘特图的叙述中,不正确的是______。
- A. 一种进度管理的工具
- B. 易于看出每个子任务的持续时间
- C. 易于看出目前项目的实际进度情况
- D. 易于看出子任务之间的衔接关系
答案:D
解析:
看不出子任务之间的衔接关系。

难度 2 · 作答 1562 次 · 正确率 70.3%
43. 以下关于进度管理工具甘特图的叙述中,不正确的是______。
- A. 能清晰地表达每个任务的开始时间、结束时间和持续时间
- B. 能清晰地表达任务之间的并行关系
- C. 不能清晰地确定任务之间的依赖关系
- D. 能清晰地确定影响进度的关键任务
答案:D
解析:
本题考查进度管理工具甘特图。 甘特图内在思想简单,即以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间。甘特图基本上是一条形图,横轴表示时间,纵轴表示活动(项目),条形表 示在整个期间计划和实际活动的完成情况。它直观地表明任务计划在什么时候进行,以及实际进展 与计划要求的对比。管理者由此可以便利地弄清一项任务(项目)还剩下哪些工作要做,并可以评 估工作进度。 优点:能清晰地描述每个任务从何时开始、到何时结束及各个任务之间的并行性。 缺点:不能清晰地反映出每个任务之间的依赖关系,难以确定整个项目的关键所在,也不能反 映计划中有潜力的部分。
难度 2 · 作答 1677 次 · 正确率 62.5%
44. 在项目开发过程中,______不属于项目估算的主要因素。
- A. 类型
- B. 规模
- C. 成本
- D. 工作量
答案:A
解析:
项目估算一般需要考虑规模、复杂度、成本等因素;但一般与项目类型无关。
难度 2 · 作答 1420 次 · 正确率 84.2%
45. 配置管理贯穿软件开发的整个过程。以下内容中,不属于配置管理的是______。
- A. 版本控制
- B. 风险管理
- C. 变更管理
- D. 配置状态报告
答案:B
解析:
本题考查软件配置管理的内容。 配置管理是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的目标是记录软件产品的演化过程,确保软件开发者在软件生命周期中的各个阶段 都能得到精确的产品配置。 配置管理的活动包括制定配置管理计划、配置库管理、配置控制、配置状态报告、配置审计、发布管理和交付。风险管理是与配置管理并列的项目管理过程。
难度 2 · 作答 1516 次 · 正确率 62.5%
46. 以下哪个活动可以提高软件质量______。
- A. 需求分析
- B. 软件开发
- C. 软件测试
- D. 技术评审
答案:D
解析:
软件质量是指反映软件系统或软件产品满足规定或隐含需求的能力的特征和特性全体。

难度 2 · 作答 1486 次 · 正确率 47.9%
47. ______不属于软件质量特性中的可移植性。
- A. 适应性
- B. 易安装性
- C. 易替换性
- D. 易理解性
答案:D
解析:
本题考查软件质量的基础知识。 ISO/IEC软件质量模型定义了六个软件质量特性,即功能性、可靠性、易使用性、效率、可维护性和可移植性。对每个质量特性定义其子特性。其中可移植性包括子特性:适应性、易安装性、一致性和易替换性。
难度 2 · 作答 1286 次 · 正确率 76.8%
48. 正式技术评审的目标是______。
- A. 允许高级技术人员修改错误
- B. 评价程序员的工作效率
- C. 发现软件中的错误
- D. 记录程序员的错误情况并与绩效挂钩
答案:C
解析:
本题考查软件评审的基础知识。 软件评审的内容包括设计质量评审、程序质量评审和与运行环境接口的评审。评审的主要目标是为了发现软件中的错误。
难度 2 · 作答 1611 次 · 正确率 70.6%
49. 根据McCabe度量法,以下程序图的复杂性度量值为______。 
- A. 4
- B. 5
- C. 6
- D. 7
答案:A
解析:
本题考查软件复杂性度量。
常见的程序复杂性度量法主要有McCabe度量法和代码行度量法。其中 度量法是一种基于程序控制流的环路复杂性度量方法,以图论为工具,先画出程序图(退化的程序流程图),然后用该图的环路数作为程序复杂性的度量值。
在一个强连通的有向图中
中,环的个数
由以下公式给出:
其中,
是有向图
中的环路数,
是图
中弧的个数,
是图
中的结点数,
是
中的强连通分量个数。
在本题中,
的值应该是9,
的值是7,
的值是1。所以根据公式最后计算的结果为4。
难度 2 · 作答 1464 次 · 正确率 76.6%
50. (复合题 1/2)(1)正确的选项是?
共用题干: 对以下的程序伪代码(用缩进表示程序块)进行路径覆盖测试,至少需要(1)个测试用例。采用McCabe度量法计算其环路复杂度为(2) 。 输入x,y,z 语句1 If x > 0 语句2 If y > 0 语句3 Else 语句4 Else 语句5 If z > 0 语句6 Else 语句7 输出语句
- A. 2
- B. 4
- C. 6
- D. 8
答案:B
解析:
本题考查软件测试和软件复杂性度量。
要求考生能够熟练掌握典型的白盒测试和黑盒测试方法。路径覆盖就是设计若干个测试用例,运行被测程序,使得程序中每条路径至少运行一次。画出上述伪代码的流程图如下:
图中很容易看出有四条路径:
路径1:输入x,y→语句1→判断x>0→语句2→判断y>0→语句3→输出;
路径2:输入x,y→语句1→判断x>0→语句2→判断y>0→语句4→输出;
路径3:输入x,y→语句1→判断x>0→语句5→判断z>0→语句6→输出;
路径4:输入x,y→语句1→判断x>0→语句5→判断z>0→语句7→输出。
因此设计4个测试用例分别运行上述四个路径即可满足路径覆盖。
McCabe度量法是一种基于程序控制流的复杂性度量方法,环路复杂性为V(G)=m-n+2,图中m=14,n=12,V(G)=14-12+2=4。
难度 2 · 作答 1547 次 · 正确率 71.0%
51. (复合题 2/2)(2)正确的选项是?
共用题干: 对以下的程序伪代码(用缩进表示程序块)进行路径覆盖测试,至少需要(1)个测试用例。采用McCabe度量法计算其环路复杂度为(2) 。 输入x,y,z 语句1 If x > 0 语句2 If y > 0 语句3 Else 语句4 Else 语句5 If z > 0 语句6 Else 语句7 输出语句
- A. 2
- B. 3
- C. 4
- D. 5
答案:C
解析:
本题考查软件测试和软件复杂性度量。
要求考生能够熟练掌握典型的白盒测试和黑盒测试方法。路径覆盖就是设计若干个测试用例,运行被测程序,使得程序中每条路径至少运行一次。画出上述伪代码的流程图如下:
图中很容易看出有四条路径:
路径1:输入x,y→语句1→判断x>0→语句2→判断y>0→语句3→输出;
路径2:输入x,y→语句1→判断x>0→语句2→判断y>0→语句4→输出;
路径3:输入x,y→语句1→判断x>0→语句5→判断z>0→语句6→输出;
路径4:输入x,y→语句1→判断x>0→语句5→判断z>0→语句7→输出。
因此设计4个测试用例分别运行上述四个路径即可满足路径覆盖。
McCabe度量法是一种基于程序控制流的复杂性度量方法,环路复杂性为V(G)=m-n+2,图中m=14,n=12,V(G)=14-12+2=4。
难度 2 · 作答 1522 次 · 正确率 69.6%
52. (202505)软件开发过程中, 不属于软件配置管理范畴。
- A. 项目计划
- B. 配置审计
- C. 变更控制
- D. 版本控制
答案:A
解析:
软件配置管理(SCM)用于整个软件工程,主要目标是识别变更、控制变更、确保变更正确实现、报告有关变更。 (1)基线。基线即软件生存周期中各个开发阶段的一个特定点,作用是将各阶段的工作划分更加正确。 (2)软件配置项。软件配置项(SCI)是配置管理的基本单位,对已经成为基线的SCI,虽然可以修改,但必须按照一个特殊的、正式的过程进行评估,确认每一处修改。配置审计是指定期检查配置项是否符合规范。答案B正确。 (3)版本控制。版本控制实际上是一个动态的概念,一方面随着软件生存周期向前推进,SCI的数量在不断增加,一些文档经过转换生成另一些文档,并产生一些信息;另一方面又随时会有新的变更出现,形成新的版本。答案D正确。 (4)变更控制。对软件配置的变更加以控制和管理。是一项最重要的软件配置任务。答案C正确。
难度 1 · 作答 952 次 · 正确率 76.5%
53. (202505)银行要开发一个核心交易系统,需严格遵循监管审计且需求变更极少,最适合的开发模型是 。
- A. 瀑布模型
- B. 增量模型
- C. 统一过程(UP)
- D. 敏捷开发
答案:A
解析:
瀑布模型将软件生命周期中的各个活动规定为依据线性顺序连接的若干阶段的模型,以项目的阶段性评审和文档控制为手段有效地对整个开发过程进行指导,所以它是以文档作为驱动、适合软件需求很明确的软件项目的开发。答案选A。 增量模型将需求分段为一系列增量产品,每一个增量可以分别开发,第一个可交付的版本成本和时间很少。 统一过程模型(UP)是一种“用例和风险驱动,以架构为中心,迭代并增量”的开发过程,由方法和工具支持。 敏捷方法的总体目标是通过“尽可能早地、持续地对有价值的软件进行交付”使客户满意。
难度 1 · 作答 957 次 · 正确率 79.4%
54. (202505)某软件系统在测试过程中, 最适合发现模块之间的接口问题。
- A. 单元测试
- B. 集成测试
- C. 系统测试
- D. 验收测试
答案:B
解析:
单元测试也称模块测试,在模块编写完成且编译无误后进行,侧重于模块中的内部处理逻辑和数据结构。 集成测试就是把模块按系统设计说明书的要求组合起来进行测试。 系统测试是将已经确认的软件、硬件、外设、网络等其他因素结合在一起,进行各种集成测试和确认测试。目的是通过与系统的需求(SRS)进行比较,发现所开发的系统与用户需求不符或矛盾的地方。 当为客户开发软件时,执行一系列验收测试能使客户确认所有的需求,验收测试是由用户而不是软件工程师进行的。 α测试:最终用户在开发者的场所进行测试。 β测试:在一个或多个最终用户场所执行,与α测试不同,开发者通常不在场。
难度 1 · 作答 904 次 · 正确率 78.0%
55. (202505)登录时设置手机号正确/手机号错误/邮箱号正确/邮箱号错误,是什么测试 。
- A. 等价类划分
- B. 边界测试
- C. 路径测试
- D. 条件覆盖
答案:A
解析:
等价类划分:将程序的输入域划分为若干等价类,然后从每个等价类中选取一个代表性数据作为测试用例。等价类划分有两种:有效等价类(对于需求规格来说合理的数据集合)和无效等价类(对于需求规格来说异常的数据集合)。这里的手机号正确(有效等价类)和错误(无效等价类),邮箱号正确(有效等价类)和错误(无效等价类)分别对应输入条件的分类测试,符合等价类划分的核心逻辑。 其他的,边界测试。题目未涉及输入边界值(如长度、数值极限),仅关注输入内容的正确性,与边界测试无关。 路径覆盖。路径覆盖属于白盒测试,需覆盖代码中所有执行路径(如if-else分支),而题目描述的是输入条件的组合,而非代码路径。 条件覆盖。条件覆盖是白盒测试技术,要求每个逻辑条件(如手机正确|邮箱正确)的真/假均被覆盖,但题目中的测试用例独立验证手机和邮箱的输入有效性,未强制组合条件(如同时验证手机和邮箱的真假组合)。
难度 1 · 作答 1144 次 · 正确率 42.3%
56. (202505)ISO/IEC 25010:2023标准中, 不属于可维护性的子特性。
- A. 容错性
- B. 可修改性
- C. 可模块性
- D. 可分析性
答案:A
解析:
超纲题。在ISO/IEC 9126中,软件质量模型由三个层次组成,第一层为质量特性,第二层为质量子特性,第三层为度量指标,如下图所示。
从以上可以看出,可维护性包括易分析性(可分析性)、易改变性(可修改性)、稳定性和易测试性。
而在新修订的ISO/IEC 25010:2023中,提供一个全面的框架来评估和改进软件产品的质量,包含了质量模型的九大特性和38个子特性。
质量特性
子特性
描述
功能适用性
功能完整性、功能正确性、功能适当性
覆盖用户需求的完整程度、输出结果的准确性,以及功能设计是否简化用户操作。
性能效率
时间行为、资源利用率、容量
响应速度、资源消耗优化(如CPU、内存)、系统最大承载能力(如并发用户数)。
兼容性
共存性、互操作性
与其他系统共享资源时的稳定性、数据交换与接口兼容性(如API标准化)。
可用性
易理解性、易学性、易用性、用户错误保护、用户界面美观、可接近性
界面直观性、用户学习成本、操作便捷性、误操作预防(如二次确认)、无障碍设计(如屏幕阅读器支持)。
可靠性
成熟性、可用性、容错性、可恢复性
长期稳定运行能力(MTBF)、异常输入容错(如参数校验)、故障恢复速度(如数据库回滚)。
安全性
机密性、完整性、不可抵赖性、责任性、可审计性
数据加率、防篡改(如区块链校验)、操作日志可追溯性身份认证(如多因素认证)。
可维护性
可分析性、可修改性、可测试性、可重用性、可模块性
低耦合架构设计、日志与监控工具支持故障定位、代码可读性与重构灵活性。
灵活性
适应性、可扩展性、易安装性、易替换性
跨平台兼容性(如Docker容器化)、组件无缝替换(如微服务架构)、横向/纵向扩展能力。
无害性
(新增特性)
操作限制、风险识别、故障安全、危险警告、安全集成
安全边界设置(如工业机器人动作限制)、异常状态预警(如医疗设备报警)、与外部安全系统联动。
难度 1 · 作答 938 次 · 正确率 51.5%
57. (202505)某电商平台“将订单处理、支付网关集成、物流跟踪等功能拆分为独立服务。每个服务通过API通信”,这是采用了 。
- A. 分层架构
- B. 事件驱动架构
- C. 面向对象架构
- D. 微服务架构
答案:D
解析:
微服务架构的核心特征是将系统拆分为独立部署的小型服务,各服务通过轻量级通信机制(API)协作,与题目描述的“功能拆分为独立的服务”一致。 A.分层架构,强调按技术层次划分(如表现层、业务层、数据层),而非按业务功能拆分为独立服务,与题意不符。 B.事件驱动架构,依赖事件发布/订阅机制(如消息队列),而非直接的API调用,题目未体现事件流驱动逻辑。 C.面向对象架构,指代码层面的封装、继承、多态等设计,属于编程范式,而非系统级服务拆分方式。 D.微服务架构,微服务架构将一个大型的单个应用或服务划分成一组微型、可独立部署的服务,微服务架构围绕业务领域将服务进行拆分,每个服务可以独立进行开发、管理和迭代,彼此之间使用统一接口进行交流,实现了在分散组件中的部署、管理与服务功能,使产品交付变得更加简单,从而达到有效拆分应用,实现敏捷开发与部署的目的。
难度 1 · 作答 990 次 · 正确率 64.8%
58. (202511)软件危机不包括 。
- A. 项目进度落后
- B. 难以满足用户需求
- C. 项目质量低下
- D. 硬件性能低下
答案:D
解析:
软件开发的实际成本和进度往往与预计的相差甚远,软件的质量得不到保证,开发出来的软件常常不能使用户满意。随着计算机应用需求的不断增长,软件的规模也越来越大,然而软件开发的生产率远远跟不上计算机应用的迅速增长。此外,由于软件开发时缺少好的方法指导和工具辅助,同时又缺少相关文档,使得大量已有的软件难以维护。上述这些问题严重地阻碍了软件的发展,20世纪60年代中期,人们把上述软件开发和维护过程中所遇到的各种问题称为“软件危机”。
难度 1 · 作答 414 次 · 正确率 79.5%
59. (202511)黑盒测试的主要依据是 。
- A. 代码复杂度
- B. 软件需求规格说明书
- C. 设计文档
- D. 程序内部逻辑
答案:B
解析:
黑盒测试,也称功能测试,在不考虑任何程序内部结构和特性的条件下,根据需求规格说明书设计测试用例,并检查程序的功能是否能够按照规范说明准确无误地运行。主要是对软件界面和软件功能进行测试。常用的黑盒测试技术有等价类划分、边界值分析、错误推测、因果图和判定表等。
难度 1 · 作答 428 次 · 正确率 75.7%
60. (202511) 是评估软件可维护性的关键度量。
- A. 用户数量
- B. 功能点数量
- C. 数据库容量
- D. 平均修复时间(MTTR)
答案:D
解析:
系统维护是在软件已经交付使用之后为了改正错误或满足新的需求而修改软件的过程。系统可维护性的评价指标有可理解性、可测试性和可修改性。 平均修复时间(MTTR):是指从出现故障到修复成功的时间。平均修复时间越小,可维护性越好。
难度 1 · 作答 389 次 · 正确率 89.5%
61. (202511)以下维护操作中,属于完善性维护的是 。
- A. 优化界面
- B. 修复漏洞
- C. 适应不同的操作系统
- D. 增加网络带宽
答案:A
解析:
系统维护主要包括硬件维护、软件维护和数据维护。软件维护的内容:
(1)正确性维护:改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。占整个维护工作量的17%21%。修正BUG、错误。
(2)适应性维护:使应用软件适应信息技术变化和管理需求变化而进行的修改。占整个维护工作量的18%25%。应变。
(3)完善性维护:为扩充功能和改善性能而进行的修改。占整个维护工作的50%~60%。新需求。
(4)预防性维护:为改进应用软件的可靠性和可维护性,为适应未来的软/硬环境的变化,应主动增加预防性的新功能,以使应用系统适应各类变化而不被淘汰。占整个维护工作量的4%左右。针对未来。
优化界面:完善性维护。修复漏洞:正确性维护。使用不同的操作系统:适应性维护。增加网络带宽:预防性维护。
难度 1 · 作答 549 次 · 正确率 63.8%
62. (202511)项目管理中,关键路径法(CPM,核心解决最短路径/最短工期问题)的核心是 。
- A. 找出最长活动链表(关键路径)
- B. 优先压缩最短活动工期
- C. 减少项目风险
- D. 优化资源分配效率
答案:A
解析:
关键路径:从开始顶点到结束顶点之间距离最长的一条路径。关键路径上的长度就是完成整个工程项目的最短工期。
难度 1 · 作答 456 次 · 正确率 88.6%
63. (202511)COCOMO模型用于 。
- A. 进度跟踪
- B. 风险评估
- C. 度量质量
- D. 成本估算
答案:D
解析:
COCOMO模型是一种精确的、易于使用的成本估算模型。
难度 1 · 作答 447 次 · 正确率 53.0%
64. (202511)软件再工程(Software Reengineering)的原因是 。
- A. 重新设计软硬件
- B. 重招开发人员
- C. 软件质量低下
- D. 修复程序BUG
答案:C
解析:
软件再工程(Software Reengineering)是一个涉及对现有软件进行分析、修改、重构或重新构建的过,旨在改善软件的性能、可维护性、可靠性或其他关键属性。包括逆向工程(Reverse Engineering,反向工程)、新需求的考虑(软件重构)和正向工程三个步骤。 软件再工程就是对现有系统进行逆向工程、重构和正向工程,以提升可维护性、可扩展性和整体质量,为后续演化或替换奠定基础,而非简单修bug或换硬件/人员。
难度 1 · 作答 402 次 · 正确率 63.9%
65. 2026上半年 以下流程图中,要进行语句覆盖和路径覆盖测试,则需要的最少测试用例数分别为 。 
- A. 2和6
- B. 2和8
- C. 4和8
- D. 4和6
答案:B
解析:
第一问:语句覆盖与路径覆盖。先列出所有路径:
路径
经过的节点
①
S1 → J1(Y) → S2 → J2(Y) → S4 → J3(Y) → S6 → S8
②
S1 → J1(Y) → S2 → J2(Y) → S4 → J3(N) → S8
③
S1 → J1(Y) → S2 → J2(N) → S5 → J4(Y) → S8
④
S1 → J1(Y) → S2 → J2(N) → S5 → J4(N) → S7 → S8
⑤
S1 → J1(N) → S3 → J2(Y) → S4 → J3(Y) → S6 → S8
⑥
S1 → J1(N) → S3 → J2(Y) → S4 → J3(N) → S8
⑦
S1 → J1(N) → S3 → J2(N) → S5 → J4(Y) → S8
⑧
S1 → J1(N) → S3 → J2(N) → S5 → J4(N) → S7 → S8
共8条路径(3个二分支判定:J1 × J2 × J3/J4 = 2 × 2 × 2 = 8)。
路径覆盖:需要覆盖所有 8 条路径 → 最少8个测试用例。
语句覆盖:需要覆盖所有语句(S1~S8),只需2个用例即可:
测试用例
路径
覆盖的语句
用例1
路径①
S1, S2, S4, S6, S8
用例2
路径⑧
S1, S3, S5, S7, S8
难度 1 · 作答 133 次 · 正确率 53.4%
66. 2026上半年 以下流程图中,要进行语句覆盖和路径覆盖测试,则需要的最少测试用例数分别为2和8;采用McCabe度量法计算该程序的环路复杂度为 。 
- A. 4
- B. 5
- C. 6
- D. 3
答案:B
解析:
McCabe环路复杂度=闭环区域数+1=4+1=5。
难度 1 · 作答 118 次 · 正确率 72.0%
67. 2026上半年 软件可维护性的主要影响因素不包括 。
- A. 文档完整性
- B. 代码行数
- C. 可理解性
- D. 可测试性
答案:B
解析:
系统维护是在软件已经交付使用之后为了改正错误或满足新的需求而修改软件的过程。系统可维护性的评价指标有可理解性、可测试性和可修改性。文档是软件可维护性的决定因素。
难度 1 · 作答 113 次 · 正确率 81.4%
68. 2026上半年 下图是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的权重表示活动的持续时间(天),则关键路径长度为 天。 
- A. 62
- B. 64
- C. 58
- D. 56
答案:B
解析:
列出所有路径:
A → B → E → H → L21+15+10+16=62
A → C → E → H → L18+14+10+16=58
A → C → F → H → L18+18+12+16=64
A → C → F → I → L18+18+10+10=56
A → D → F → H → L16+20+12+16=64
A → D → F → I → L16+20+10+10=56
A → D → G → J → K → L16+24+8+10+6=64
关键路径 = 最长路径,长度为64天,共有3条。
难度 1 · 作答 155 次 · 正确率 77.4%
69. 2026上半年 下图是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的权重表示活动的持续时间(天),则关键路径长度为64天。该活动图中,一共有 条关键路径。 
- A. 4
- B. 3
- C. 2
- D. 1
答案:B
解析:
列出所有路径:
A → B → E → H → L21+15+10+16=62
A → C → E → H → L18+14+10+16=58
A → C → F → H → L18+18+12+16=64
A → C → F → I → L18+18+10+10=56
A → D → F → H → L16+20+12+16=64
A → D → F → I → L16+20+10+10=56
A → D → G → J → K → L16+24+8+10+6=64
关键路径 = 最长路径,长度为64天,共有3条。
难度 1 · 作答 120 次 · 正确率 58.3%
70. 2026上半年 针对已识别的风险,采取“购买商业保险”或“签订固定价格合同”的措施属于风险控制中的 。
- A. 风险缓解
- B. 风险转移
- C. 风险接受
- D. 风险规避
答案:B
解析:
"购买商业保险"和"签订固定价格合同"的本质都是把风险的后果转嫁给第三方:
买保险→风险发生时由保险公司承担损失
固定价格合同 → 成本超支的风险由承包方承担
风险本身没有消失,只是承担者变了,这就是典型的风险转移。
四种风险控制策略速记:
策略
含义
示例
风险规避
彻底消除风险源,不做这件事
砍掉高风险功能模块
风险转移
风险转嫁给别人承担
买保险、外包、固定价格合同
风险缓解
降低风险发生的概率或影响
增加测试、技术预研、原型验证
风险接受
承认风险存在,不采取措施
预留应急储备金,风险发生时再处理
难度 1 · 作答 161 次 · 正确率 60.2%
测试用例表 编号 A B x ① 2 0 4 ② 1 1 1 ③ 2 1 1 ④ 4 0 2
