1、软件工程基础练习试卷 4及答案与解析 1 选择一个适当的测试用例,用以测试图 7-3的程序,能达到判定覆盖的是_。 2 对程序进行白盒测试时,可采用 _法设计测试用例。 ( A)等价类划分 ( B)边界值分析 ( C)逻辑覆盖 ( D)因果图 3 黑盒测试也称为功能测试。黑盒测试不能发现 _。 ( A)终止性错误 ( B)输入是否正确接收 ( C)界面是否有误 ( D)是否存在冗余代码 4 对于如图 7-4所示的程序流程,若采用语句覆盖法设计测试用例 (使每条语句都至少执行 1次 ),则至少需要设计 _个测试用例。( A) 1 ( B) 2 ( C) 3 ( D) 4 5 源程序清单是在软件生
2、存周期的 _阶段产生的文档。 ( A)软件概要设计 ( B)编码 ( C)软件详细设计 ( D)测试 6 系统的硬件环境、软件环境和数据环境发生变化时需要对系统进行维护,这种维护属于 _。 ( A)改正性维护 ( B)适应性维护 ( C)完善性维护 ( D)预防性维护 7 软件维护可分为改正性维护、适应性维护、完善性维护和预防性维护。在软件的整个维护活动中, _维护所占比重最大。 ( A)改正性 ( B)适应性 ( C)完善性 ( D)预防性 8 在软件的使用过程中,用户往往会对软件提出新的功能要求与性能要求。为了满足这些要求而进行的维护属于 _维护。 ( A)改正性 ( B)适应性 ( C)
3、完善性 ( D)预防性 9 为了改善系统硬件环境和运行环境而产生的系统更新换代需求而导致的软件维护属于 _。 ( A)适应性 ( B)正确性 ( C)完善性 ( D)预防性 10 程序中将多处使用的同一个常数定义为常量,其目的是为了 _。 ( A)提高程序的运行速度 ( B)提高程序的可读性以及可维护性 ( C)缩短源程序代码长度 ( D)便于进行程序测试 11 下列选项中不属于软件生命周期开发阶段任务的是 _。 ( A)软件测试 ( B)概要设计 ( C)软件维护 ( D)详细设计 12 下列叙述中正确的是 _。 ( A)软件测试应该由程序开发者来完成 ( B)程序经调试后一般不需要再测试
4、( C)软件维护只包括对程序代码的维护 ( D)以上三种说法都不对 13 关于软件文档的叙述, _是错误 的。 ( A)文档就是软件的操作说明书 ( B)文档是软件产品的一部分,没有文档的软件就不成为软件 ( C)高质量软件对于软件开发、维护和使用有重要的意义 ( D)测试用例也是重要的软件文档 14 _是关于质量管理体系的一系列标准,有助于企业交付符合用户质量要求的产品。 ( A) ISO9000 ( B) CMM ( C) ISO1400 ( D) SW-CMM 15 ISO/IEC9126软件质量模型中第一层定义了六个质量特性,并为各质量特性定义了相应的质量子特性。其中易替换性子特性属于
5、软件的 _质量特性。 ( A)可靠性 ( B)可移植性 ( C)效率 ( D)可维护性 16 按照 ISO/IEC9126软件质量模型的规定,软件的适应性是指 _。 ( A)软件运行于不同环境中的故障率 ( B)软件运行于不同环境中的安全等级 ( C)将一个系统耦合到另一个系统所需的工作量 ( D)软件运行于不同环境中的能力 17 ISO 9000系列标准和软件成熟度模型 CMM都着眼于质量和过程管理。ISO9000系列标准的主导思想是: 强调质量 (1); 使影响产品质量的全部因 素始终处于 (2)状态; 要求证实企业具有持续提供符合要求产品的 (3); 强调质量管理必须坚持进行质量 (4)
6、,而 CMM则强调持续的 (5)。 ( A)形成于软件需求 ( B)形成于软件设计 ( C)形成于软件实现 ( D)形成于生产的全过程 ( A)可观察 ( B)可控制 ( C)可度量 ( D)可跟踪 ( A)能力 ( B)条件 ( C)工具 ( D)环境 ( A)度量 ( B)跟踪 ( C)改进 ( D)保证 ( A)质量度量 ( B)质量改进 ( C)过程改进 ( D)过程度量 22 在软件开发中使用函数库可 _。 ( A)提高软件的执行速度 ( B)降低系统负载 ( C)提高软件各部分之间的耦合度 ( D)提高软件的可重用性 23 某软件在应用初期,运行在 Windows NT环境中。现因
7、某种原因,该软件需要在 UNIX环境中运行,而且必须完成相同的功能。为适应这个要求,软件本身需要进行修改,而所需修改的工作量取决于该软件的 _。 ( A)可扩充性 ( B)可靠性 ( C)复用性 ( D)可移植性 24 软件的易使用性反映了用户学习、使用该软件以及为程序准备输入和解 释输出所需的工作量。按照 ISO/IEC9126软件质量度量模型定义,一个软件的易使用性不包括 _。 ( A)易理解性 ( B)易操作性 ( C)易改变性 ( D)易学性 ( A)可靠性 ( B)可移植性 ( C)可重用性 ( D)正确性 26 程序中的局部数据结构测试通常在 (1)阶段进行,而全局数据结构测试通常
8、在 (2)阶段进行。 ( A)单元测试 ( B)集成测试 ( C)确认测试 ( D)系统测试 ( A)单元测试 ( B)集成测试 ( C)确认测试 ( D)系统测试 28 某村领导需要估 计该村某池塘中鱼的大致数量。技术人员想出了一个办法:先从池塘中捕出 30条鱼,在每条鱼身上做一记号后,又放回池塘。几天后,再从该池塘中捕出 40条鱼,发现其中有 2条是有记号的。因此,他估计该池塘大致有 (1)条鱼。 估计某程序中所含的错误个数,程序员 A对该程序进行测试时发现了 5个错误,程序员 B独立对该程序进行测试时发现了 8个错误,但其中 2个错误是程序员 A已经发现的。因此,人们可以估计,该程序中大
9、致含有 (2)个错误。 ( A) 300 ( B) 400 ( C) 600 ( D) 1200 ( A) 12 ( B) 15 ( C) 16 ( D) 20 30 _是关于质量管理体系的一系列标准,有助于企业交付符合用户质量要求的产品。 ( A) ISO9000 ( B) CMM ( C) ISO1400 ( D) SW-CMM 31 将软件从一种计算机环境转换到另一种环境运行的难易程度是指软件的 (1)。在规定的条件下和规定的时间间隔内,按设计要求,软件成功运行的特性称为 (2)。 ( A)可靠性 ( B)可移植性 ( C)可使用性 ( D)灵活性 32 图 7-5所示的流程图描述了对
10、8位二进制整数求补的算法。该算法的计算 过程如下:从二进制数的低位 (最右位 )开始,依次向高位逐位查看,直到首次遇到 “1”时,停止查看。然后,对该 “1”位左面的更高位 (如果有的话 ),逐位求反,所得的结果就是对原二进制数求补的结果。 例如:对二进制整数 10101000求补的结果是01011000。 设 8位二进制整数中的各位,从低位到高位,依次存放在整型数组BIT的 BIT1 BIT8中。例如,二进制整数 10101000存放在数组 BIT后,就有BIT1=0, BIT2=0, , BIT7=0, BIT8=1 。若流程图中存在空操作 ,则用 NOP表示。 流程图中 (1)处按 “循
11、环变量名:循环初值,增量,循环终值 ”格式描述。 解析 本题考查求补运算。求补运算是对一个数的各二进制位按位求反后再加 1。例如:二进制 10101000按位求反后得到的二进制是 01010111,加 1后为 01011000。也可以这样来看,原二进制从最右边开始到遇到的第 1个 1为止都不变,而后面剩下的位按位求反即可。 本题流程图采用的是后一种思路,首先设置一个标志 sw的值为 0,从最右边一位开始往左循环遍历整个二进制数,到遇到第 1个 1后将标志位置 1。由此可见,循环要进行 8次,循环变量值依次从 1递增到 8。根据题目要求按 “循环变量名:循环初值,增量,循环终值 ”格式描述循环,
12、而循环开始下面一条判断是 “BITi=1?”,所以循环变量是 i,第 1空应填 i:1,1,8。 如果当前遍历的二进制位 BITi是 1,且标志 sw为0时,则证明是第 1次遇到 1,所以直接设置 sw为 1即可,故第 2空应填 1sw 。 如果当前遍历的二进制位 BITi是 1,且标志 sw为 1时,说明已经不是第 1次遇到 1了,所以直接设置当前二进制位为 0即可,故第 3空应填 0BITi 。 如果当前遍历的二进制位 BITi是 0,且标志 sw为 0时,则证明还没有遇到过一次 1,所以该步什么都不用做,故第 4空应填 NOP。 如果当前遍历的二进制位 BITi是0,且标志 sw为 1时
13、,说明已经遇到过 1了,所以该步需将当前的二进制位求反,故第 5空应填 1BITi 。 软件工程基础练习试卷 4答案与解析 1 【正确答案】 C 【试题解析】 判定覆盖又称为分支覆盖,它要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即程序中的每个分支至少执行一次。每个判断的取真、取假至少执行一次。选项 C和选项 D都满足上述要求 。但是,判定覆盖也有其缺点,往往大部分判定语句是由多个逻辑条件组合而成 (如判定语句中包含 AND、 OR、 CASE),若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。往往大部分的判定语句是由多个逻辑条件组合
14、而成 (如判定语句中包含 AND、 OR、 CASE),若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。综上所述,选项C是满足判定覆盖的适当测试用例。 【知识模块】 软件工程基础 2 【正确答案】 C 【试题解析】 白盒测试适用于已知软件的内部工 作过程和实现细节的情况,可采用逻辑覆盖法、基本路径测试等技术设计测试用例。选项 C为正确答案。 【知识模块】 软件工程基础 3 【正确答案】 D 【试题解析】 黑盒测试又称为功能测试,即将软件看成黑盒子,在完全不考虑软件内部结构和特性的情况下,测试软件的外部特性。黑盒测试主要发现如下错误:是否有功能错误或遗漏;界面是否有误
15、,是否正确接收输入,输出是否正确;数据结构或外部数据库访问是否有错;是否能接受性能;是否有初始化和终止性错误。黑盒测试不可能发现是否存在冗余代码。本题的正确答案是选项 D。 【知识模块】 软件工程基础 4 【正确答案】 B 【试题解析】 语句覆盖要求每条语句至少执行一次。 设计第一个测试用例,使得 x 0, y 0,比如: x=1, y=1 那么,就会执行语句序列: x 0y=y -xy 0x=1 设计第 2个测试用例,使得 x 0, y 0,比如: x=-1, y=-1 那么,就会执行语句序列: x 0y=y+xy 0 上述两个测试用例,便将每条语句都覆盖到。所以,至少设计 2个测试用例。本
16、题正确答案为选项 B。 【知识模块】 软件工程基础 5 【正确答案】 B 【试题解析】 软件生存周期分为以下 6个阶段: 制定计划。确定待开发软件系统的总目标,对其进行可行性分析,并对资源分配。 需求分析。确定待开发软件系统的功能、性能、数据、界面等要求,从而确定系统的逻辑模型。 设计。软件设计是软件工程的技术核心。软件设计又分为概要设计和详细设计。 编码。编码的任务是用某种程序语言为每个模块编写程序。所以,源程序清单是该阶段产生的文档。选项 B正确。 测试。测试是保证软件质量的 重要手段,其主要方式是在设计测试用例的基础上检验软件的各个组成部分。 运行维护。以交付的软件投入正式使用,便进入运
17、行阶段。 【知识模块】 软件工程基础 6 【正确答案】 B 【试题解析】 软件维护包括:正确性维护 (改正性维护 )、适应性维护、完善性维护和预防性维护。 正确性维护是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。 适应性维护是指使应用软件适应信息技术变化和管理需求变化而进行的修改。选项 B正确。 完善性维护是为扩充功能和改善性能而进行的修改,主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。 预防性维护是为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。 【知识模块】 软
18、件工程基础 7 【正确答案】 C 【试题解析】 软件维护包括:正确性维护 (改正性维护 )、适应性维护、完善性维护和预防性维护。 正确性维护的工作量占整个维护工作量的 17% 21%。 适应性维护的工作量占整个维护工作量的 18% 25%。 完善性维护的工作量占整个维护工作量的 50% 60%。 预防性维护的工作量占整个维护工作量的 4%左右。 综上所述,本题正确答案为选项 C。 【知识模块】 软件工程基础 8 【正确答案】 C 【试题解析】 完善性维护是为扩充功能和改善性能而进行的修改,主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。本题正确答案为选项 C。
19、【知识模块】 软件工程基础 9 【正确答案】 A 【试题解析】 适应性维护是指使应用软件适应信息技术变化和管理需求变化而进行的修改。由于目前计算机硬件价格不断下降,各类软件层出不穷,人们常常为改善系统硬件环境和运行环境而产生系统更新换代的需求,企业外部市场环境和管理需求的不断变化,也使得各级管理人员不断提出新的信息需求,这些都导致适应性维护工作的产生。本题正确答案为选项 A。 【知识模块】 软件工程基础 10 【正确答案】 B 【试题解析】 常量是对程序运行过程中不能修改的值所起的一个名字。它能在编码时,让人一目了然,提高了程序的可读性。而 且,当需要修改常量的值时,只需要修改常量的定义即可。
20、所以它还提高了可维护性。所以,选项 B的说法正确。 【知识模块】 软件工程基础 11 【正确答案】 C 【试题解析】 软件生命周期由软件定义、软件开发和软件维护三个时期组成,每个时期又进一步划分为若干个阶段。软件定义时期的基本任务是确定软件系统的工程需求。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发时期是具体设计和实现在前一时期定义的软件,它通常由下面五个阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。软件维护时 期的主要任务是使软件持久的满足用户的需要。即当软件在使用过程中发现错误时应加以改正;当环境改变时应该修改软件,以适应新的环境;当用户有新要求时应该及时改
21、进软件,以满足用户的新要求。根据上述对软件生命周期的介绍,可知选项 C中的软件维护不是软件生命周期开发阶段的任务。因此,本题的正确答案是 C。 【知识模块】 软件工程基础 12 【正确答案】 D 【试题解析】 本题考核软件测试、软件调试和软件维护的概念。软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。软件测试 具有挑剔性,测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷,就是说,测试是程序执行的过程,目的在于发现错误;一个好的测试在于能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误。由于测试
22、的这一特征,一般应当避免由开发者测试自己的程序。所以,选项 A的说法错误。调试也称排错,目的是发现错误的位置,并改正错误,经测试发现错误后,可以立即进行调试并改正错误;经过调试后的程序还需进行回归测试,以检查调试的效果,同时也可防止在调试过程中引进新的错误。所以, 选项 B的说法错误。软件维护通常有 4类:为纠正使用中出现的错误而进行的改正性维护;为适应环境变化而进行的适应性维护;为改进原有软件而进行的完善性维护;为将来的可维护和可靠而进行的预防性维护。软件维护不仅包括程序代码的维护,还包括文档的维护。文档可以分为用户文档和系统文档两类。但无论是哪类文档,都必须与程序代码同时维护。只有与程序代
23、码完全一致的文档才有意义和价值。所以,选项 C的说法错误。综上所述,选项 A、 B、 C的说法都错误,所以,选项 D为正确答案。 【知识模块】 软件工程基础 13 【正确答案】 A 【试题解析】 文档是指某种数据媒体和其中所记录的数据。它具有永久性,并可以由人或机器阅读,通常仅用于描述人工可读的东西。在软件工程中,文档常常用来表示对活动、需求、过程或结果进行描述、定义、规定、报告或认证的任何书面或图示的信息。它们描述和规定了软件设计和实现的细节,说明使用软件的操作命令。文档也是软件产品的一部分,没有文档的软件就不称其为软件。软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量。高质量、
24、高效率地开发、分发、管理和维护文档对于转让、变更、修正、扩充和使用文档,对于充分发挥软件 产品的效益有着重要的意义。综上所述,选项 A的说法错误,为本题正确答案。 【知识模块】 软件工程基础 14 【正确答案】 A 【试题解析】 ISO9000系列标准是第一套管理性质的国际标准。它是各国质量管理与标准化专家在先进的国际标准的基础上,对科学管理实践的总结和提高,它既系统、全面、完善,又简洁、扼要。所以,本题应该选择 A。 【知识模块】 软件工程基础 15 【正确答案】 B 【试题解析】 ISO/IEC 9126软件质量模型包括三个层次:第 1层是质量特性;第 2层是质量子特 性;第 3层是度量指
25、标。质量特性包括:功能性、可靠性、易使用性、效率、可维护性和可移植性。其中,可移植性是指软件从一种运行环境转移到另一种环境中的容易程度,它包括易安装性、易替换性、适应性和一致性 4个子特性。本题正确答案为选项 B。 【知识模块】 软件工程基础 16 【正确答案】 D 【试题解析】 按照 ISO/IEC9126软件质量模型的规定,软件的适应性是指软件运行于不同环境中的能力。选项 D为正确答案。 【知识模块】 软件工程基础 17 【正确答案】 D 【知识模块】 软件工程 基础 18 【正确答案】 B 【知识模块】 软件工程基础 19 【正确答案】 A 【知识模块】 软件工程基础 20 【正确答案】
26、 C 【知识模块】 软件工程基础 21 【正确答案】 C 【试题解析】 ISO9000系列标准的主导思想是: 强调质量形成于生产的全过程; 使影响产品质量的全部因素始终处于可控制状态; 要求证实企业具有持续提供符合要求产品的能力; 强调质量管理必须坚持进行质量改进。 CMM则强调持续的过程改进。 【知识模块】 软件工程基础 22 【正 确答案】 D 【试题解析】 目前绝大多数程序设计语言都支持函数机制,例如 C语言提供了基本的 I/O操作、数学运算等函数,并将这些常用函数以函数库形式提供给软件开发者。在应用软件开发中也可以将系统常用操作定义为函数,并打包成函数库,这样做的目的主要是为提高软件的
27、可重用性,并降低程序各部分之间的耦合度,从而使得这些函数库可在多个软件中重复使用。所以,选项 D为正确答案。 【知识模块】 软件工程基础 23 【正确答案】 D 【试题解析】 对于选项 A,可扩充性是软件的体系结构、数据设计和过程设计的可扩充的程度。对于选项 B,可靠性是软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度。可靠性取决于软件的安全性、一致性、容错性以及准确性。对于选项 C,一个软件 (或软件的部件 )能再次用于其他应用 (该应用的功能与此软件或软件部件的所完成的功能有联系 )的程度。复用性取决于软件的模块独立性、通用性和数据共享性。对于选项 D,可移植性是将一个软件系统
28、从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需工作量的大小。本题正确答案为选项 D。 【知识模块】 软件工程基础 24 【正确答案】 C 【试题解析】 易使用性包括如下属性: 易理解性:与用户为理解逻辑概念及其应用所付出的劳动有关的软件属性。 易学性:与用户为学习其应用 (例如操作控制、输入、输出 )所付出的努力相关的软件属性。 易操作性:与用户为进行操作和操作控制所付出的努力有关的软件属性。 综上所述,软件的易使用性不包括易改变性,本题正确答案为选项 C。 【知识模块】 软件工程基础 25 【正确答案】 A 【试题解析】 可移植性指将软件从一种运行环境 (包括软件、硬件环境
29、)移植到另外一种运行环境 时需要的工作量和难易程度,该特性对于软件可靠性和执行效率存在一定影响。所以,第 1空的正确答案为选项 B。软件可靠性指按照设计要求,软件在规定时间间隔内和条件下,能够成功运行的程度,软件可靠性常使用平均失效等待时间和平均失效间隔时间进行定量度量。所以,第 2空的正确答案为选项 A。 【知识模块】 软件工程基础 26 【正确答案】 A 【知识模块】 软件工程基础 27 【正确答案】 B 【试题解析】 软件测试分为单元测试、继承测试、确认测试和系统测试。其中,单元测试也称为模块测试,主要检查模 块接口、局部数据结构、重要的执行路径、出错处理和边界条件;集成测试也称为组装测
30、试,主要检查多个模块继承在一起后,模块之间的相互配合是否满足设计要求,以及全局数据结构。 【知识模块】 软件工程基础 28 【正确答案】 C 【知识模块】 软件工程基础 29 【正确答案】 D 【试题解析】 首先,假设池塘中有 X条鱼,根据题意,其中做记号的鱼的比例为 30/X,后来取出 40条鱼中有两条有记号,那么说明, 2/40=30/X, X=600条。第 1空的正确答案为选项 C。假设程序中大致有 X个错误,那么 ,程序员 A发现了 5个错误,说明他发现错误的概率是 5/X。程序员 B发现了 8个错误,其中有 2个是 A发现的,可以说明 A发现错误的概率是 2/8=5/X。 X为 20
31、。第 2空的正确答案为选项 D。 【知识模块】 软件工程基础 30 【正确答案】 A 【试题解析】 ISO9000系列标准的主导思想是: 强调质量形成于生产的全过程。 使影响产品质量的全部因素始终处于可控制状态。 要求证实企业具有持续提供符合要求产品的能力。 强调质量管理必须坚持进行质量改进。 CMM则强调持续的过程 改进。 选项 A为正确答案。 【知识模块】 软件工程基础 31 【正确答案】 B 【知识模块】 软件工程基础 32 【正确答案】 (1)i:1,1,898. (2)1sw98. (3)0BITi98. (4)NOP98. (5)1BITi 【试题解析】 本题考查求补运算。求补运算是对一个数的各二进制位按位求反后再加 1。例如:二进制 10101000按位求反后得到的二进制是 01010111,加 1后为01011000。也可以这样来看,原二进制从最右边开始到遇到的第 1个 1为止都不变,而后面剩下的位按位求反即可。 【知识模块】 软件工程基础