1、软件水平考试(中级)软件设计师上午(基础知识)历年真题试卷汇编 11 及答案解析(总分:62.00,做题时间:90 分钟)一、选择题(总题数:30,分数:62.00)1.选择题()下列各题 A、B、C、D 四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。_2.在划分模块时,一个模块的作用范围应该在其控制范围之内。若发现其作用范围不在其控制范围内,则(16)不是适当的处理方法。(分数:2.00)A.将判定所在模块合并到父模块中,使判定处于较高层次B.将受判定影响的模块下移到控制范围内C.将判定上移到层次较高的位置D.将父模块下移,使该判定处于较高层次3.模块
2、 A 执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能,则该模块具有(16)内聚。(分数:2.00)A.顺序B.过程C.逻辑D.功能4.(18)最不适宜采用无主程序员组的开发人员组织形式。(分数:2.00)A.项目开发人数少(如 34 人)的项目B.采用新技术的项目C.大规模项目D.确定性较小的项目5.利用结构化分析模型进行接口设计时,应以(16)为依据。(分数:2.00)A.数据流图B.实体一关系图C.数据字典D.状态一迁移图6.在面向对象软件开发中,封装是一种一(42)技术,其目的是使对象的使用者和生产者分离。(分数:2.00)A.接口管理B.信息隐藏C.多态D.聚合7.模块 A
3、 直接访问模块 B 的内部数据,则模块 A 和模块 B 的耦合类型是为(16)(分数:2.00)A.数据耦合B.标记耦合C.公共耦合D.内容耦合8.软件设计时需要遵循抽象、模块化、信息隐蔽和模块独立原则。在划分软件系统模块时,应尽量做到(30)。(分数:2.00)A.高内聚高耦合B.高内聚低耦合C.低内聚高耦合D.低内聚低耦合9.某项目为了修正一个错误而进行了修改。错误修改后,还需要进行(19)以发现这一修改是否引起原本正确运行的代码出错。(分数:2.00)A.单眼测试B.接收测试C.安装测试D.回归测试10.在软件维护中,由于企业的外部市场环境和管理需求的变化而导致的维护工作,属于(32)维
4、护。(分数:2.00)A.正确性B.适应性C.完善性D.预防性11.在设计测试用例时,应遵循(35)原则。(分数:2.00)A.仅确定测试用例的输入数据,无需考虑输出结果B.只需检验程序是否执行应有的功能,不需要考虑程序是否做了多余的功能C.不仅要设计有效合理的输入,也要包含不合理、失效的输入D.测试用例应设计得尽可能复杂12.单元测试中,检验模块接口时,不需要考虑(36)。(分数:2.00)A.测试模块的输入参数和形式参数在个数、属性、单位上是否一致B.全局变量在各模块中的定义和用法是否一致C.输入是否改变了形式参数D.输入参数是否使用了尚未赋值或者尚未初始化的变最13.逆向工程从源代码或目
5、标代码中提取设计信息,通常在原软件生命周期的(34)阶段进行。(分数:2.00)A.需求分析B.软件设计C.软件实现D.软件维护14.一个程序根据输入的年份和月份计算该年中该月的天数,输入参数包括年份(正整数)、月份(用 112表示)。若用等价类划分测试方法进行测试,则(35)不是一个合适的测试用例(分号后表示测试的输出)。(分数:2.00)A.(2013,1;31)B.(0,1;错误)C.(0,13;错误)D.(2000,一 1;错误)15.(36)不是单元测试主要检查的内容。(分数:2.00)A.模块接口B.局部数据结构C.全局数据结构D.重要的执行路径16.由于信用卡公司升级了其信用卡支
6、付系统,导致超市的原有信息系统也需要做相应的修改工作,该类维护属于(34)。(分数:2.00)A.正确性维护B.适应性维护C.完善性维护D.预防性维护17.某企业由于外部市场环境和管理需求的变化对现有软件系统提出新的需求,则对该软件进行的维护属于(31)维护。(分数:2.00)A.正确性B.完善性C.适应性D.预防性18.针对应用在运行期的数据特点,修改其排序算法使其更高效,属于(33)维护。(分数:2.00)A.正确性B.适应性C.完善性D.预防性19.图 420 所示的逻辑流实现折半查找功能,最少需要(34)个测试用例可以覆盖所有的可能路径。(分数:2.00)A.1B.2C.3D.420.
7、在某班级管理系统中,班级的班委有班长、副班长、学习委员和生活委员,且学生年龄在 1525 岁。若用等价类划分来进行相关测试,则(35)不是好的测试用例。(分数:2.00)A.(队长,15)B.(班长,20)C.(班长,15)D.(队长,12)21.进行防错性程序设计,可以有效地控制(36)维护成本。(分数:2.00)A.正确性B.适应性C.完善性D.预防性22.在软件维护阶段,为软件的运行增加监控设施属于(34)维护。(分数:2.00)A.改正性B.适应性C.完善性D.预防性23.图 421 所示的逻辑流,最少需要(35)个测试用例可实现语句覆盖。 (分数:2.00)A.1B.2C.3D.52
8、4.在改正当前故障的同时可能会引入新的故障,这时需要进行(36)(分数:2.00)A.功能测试B.性能测试C.回归测试D.验收测试25.以下关于软件系统文档的叙述中,错误的是(34)。(分数:2.00)A.软件系统文档既包括有一定格式要求的规范文档,又包括系统建设过程中的各种来往文件、会议纪要、会计单据等资料形成的不规范文档B.软件系统文档可以提高软件开发的可见度C.软件系统文档不能提高软件开发效率D.软件系统文档便于用户理解软件的功能、性能等各项指标26.不属于黑盒测试技术的是(36)。(分数:2.00)A.错误猜测B.逻辑覆盖C.边界值分析D.等价类划分27.使用白盒测试方法时,应根据(1
9、7)和指定的覆盖标准确定测试数据。(分数:2.00)A.程序的内部逻辑B.程序结构的复杂性C.使用说明书D.程序的功能28.一个功能模块 M1 中的函数 F1 有一个参数需要接收指向整型的指针,但是在功能模块 M2 中调用 F1 时传递了一个整型值,在软件测试中,(35)最可能测出这一问题。(分数:2.00)A.M1 的单元测试B.M2 的单元测试C.M1 和 M2 的集成测试D.确认测试用白盒测试方法对图 418 所示的程序进行测试,设计了 4 个测试用例:(x=0,y=3),(x=1,y=2),(x=1,y=2),(x=3,y=1)。测试用例实现了(35)覆盖;若要完成路径覆盖,则可用测试
10、用例(36)。 (分数:4.00)(1).(35)(分数:2.00)A.语句B.条件C.判定D.路径(2).(36)(分数:2.00)A.B.C.D.在白盒测试法中,(34)是最弱的覆盖准则。图 4 一 19 至少需要(35)个测试用例才可以完成路径覆盖,语句组 2 不对变量 i 进行操作。 (分数:4.00)(1).(34)(分数:2.00)A.语句B.条件C.判定D.路径(2).(35)(分数:2.00)A.1B.2C.3D.4软件水平考试(中级)软件设计师上午(基础知识)历年真题试卷汇编 11 答案解析(总分:62.00,做题时间:90 分钟)一、选择题(总题数:30,分数:62.00)
11、1.选择题()下列各题 A、B、C、D 四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。_解析:2.在划分模块时,一个模块的作用范围应该在其控制范围之内。若发现其作用范围不在其控制范围内,则(16)不是适当的处理方法。(分数:2.00)A.将判定所在模块合并到父模块中,使判定处于较高层次B.将受判定影响的模块下移到控制范围内C.将判定上移到层次较高的位置D.将父模块下移,使该判定处于较高层次 解析:解析:模块的控制范围包括该模块本身及所有的下属模块的集合。控制范围完全取决于系统的结构,当影响范围超出控制范围时,通常采用向上移动判断点的位置,将受判定影响的模
12、块下移到控制范围内。所以本题答案选 D。3.模块 A 执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能,则该模块具有(16)内聚。(分数:2.00)A.顺序B.过程C.逻辑 D.功能解析:解析:内聚有偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚和功能内聚。逻辑内聚指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。顺序内聚指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。功能内聚是指模块内所有元素共同完成一个功能,缺一不可,是最强的内聚。4.(18)最不适宜采用无主程序员组的开发人员组织形式。(分数:2.00)A
13、.项目开发人数少(如 34 人)的项目B.采用新技术的项目C.大规模项目 D.确定性较小的项目解析:解析:无主程序员组中的成员相互平等,工作目标和决策都由全体成员民主讨论。这种组有利于发挥每个人的积极性,但往往职责不明,出了问题谁也不负责,而且不利于与外界的联系。很显然,大规模的项目不适合采用这种人员组织形式。5.利用结构化分析模型进行接口设计时,应以(16)为依据。(分数:2.00)A.数据流图 B.实体一关系图C.数据字典D.状态一迁移图解析:解析:接口设计是在结构化设计进行的。结构化设计是以结构化分析产生的数据流图为基础,按一定的方法转换为软件结构。6.在面向对象软件开发中,封装是一种一
14、(42)技术,其目的是使对象的使用者和生产者分离。(分数:2.00)A.接口管理B.信息隐藏 C.多态D.聚合解析:解析:封装是面向对象的三大要素之一。面向对象软件开发中,通过类将数据(属性)和函数(行为)封装在一起,在类中通过设定访问权限,实现对信息的隐藏或公开,隐藏类的内部实现,留下一些接口与外界进行信息交换。7.模块 A 直接访问模块 B 的内部数据,则模块 A 和模块 B 的耦合类型是为(16)(分数:2.00)A.数据耦合B.标记耦合C.公共耦合D.内容耦合 解析:解析:一般可将耦合度从弱到强分为以下六级:无直接耦合:指两个模块没有直接的联系,相互之间不传递任何信息。数据耦合:指两个
15、模块间只是通过参数表传递简单的数据值。标记耦合:指两个模块都与同一个数据结构有关。控制耦合:指两个模块间传递的信息中含有控制信息。公共耦合:指两个或多个模块通过引用一个公共区的数据而发生相互作用。内容耦合:最高耦合度的是内容耦合,出现内容耦合的情形包括,当一个模块使用另一模块内部的控制和控制信息;一个模块直接转移到另一模块内部等等。题目中,模块 A 直接访问模块 B 的内部数据,很明显,耦合类型为内容8.软件设计时需要遵循抽象、模块化、信息隐蔽和模块独立原则。在划分软件系统模块时,应尽量做到(30)。(分数:2.00)A.高内聚高耦合B.高内聚低耦合 C.低内聚高耦合D.低内聚低耦合解析:解析
16、:耦合性和内聚性是模块独立性的两个定性标准,在划分软件系统模块时,尽量做到高内聚、低耦合,提高模块的独立性。9.某项目为了修正一个错误而进行了修改。错误修改后,还需要进行(19)以发现这一修改是否引起原本正确运行的代码出错。(分数:2.00)A.单眼测试B.接收测试C.安装测试D.回归测试 解析:解析:回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。10.在软件维护中,由于企业的外部市场环境和管理需求的变化而导致的维护工作,属于(32)维护。(分数:2.00)A.正确性B.适应性 C.完善性D.预防性解析:解析:软件维护包括:改正性维护,是指改正在系统
17、开发阶段已发生而系统测试阶段尚未发现的错误。适应性维护,是指使用软件适应信息技术变化和管理需求变化而进行的修改。完善性维护,这是为扩充功能和改善性能而进行的修改,主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。预防性维护为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。显然该题中的情况属于适应性维护。11.在设计测试用例时,应遵循(35)原则。(分数:2.00)A.仅确定测试用例的输入数据,无需考虑输出结果B.只需检验程序是否执行应有的功能,不需要考虑程序是否做了多余的功能C.不仅
18、要设计有效合理的输入,也要包含不合理、失效的输入 D.测试用例应设计得尽可能复杂解析:解析:测试用例要包括欲测试的功能、应输入的数据和预期的输出结果。测试数据应该选用少量、高效的测试数据进行尽可能完备的测试;基本目标是:设计一组发现某个错误或某类错误的测试数据。测试用例应覆盖有效合理的输入,也要包括不合理,失效的输入。12.单元测试中,检验模块接口时,不需要考虑(36)。(分数:2.00)A.测试模块的输入参数和形式参数在个数、属性、单位上是否一致B.全局变量在各模块中的定义和用法是否一致C.输入是否改变了形式参数D.输入参数是否使用了尚未赋值或者尚未初始化的变最 解析:解析:在单元测试的任务
19、中,检查模块接口时,需要考虑:输入的实际参数与形式参数是否一致。调用其他模块的实际参数与被调模块的形参是否一致。全程变量的定义在各模块是否一致。外部输入、输出等等。因此 D 选项不在考虑范围之内。13.逆向工程从源代码或目标代码中提取设计信息,通常在原软件生命周期的(34)阶段进行。(分数:2.00)A.需求分析B.软件设计C.软件实现D.软件维护 解析:解析:逆向工程是根据已有的东西和结果,通过分析来推导出具体的实现方法。逆向软件工程的目的是使软件得以维护。14.一个程序根据输入的年份和月份计算该年中该月的天数,输入参数包括年份(正整数)、月份(用 112表示)。若用等价类划分测试方法进行测
20、试,则(35)不是一个合适的测试用例(分号后表示测试的输出)。(分数:2.00)A.(2013,1;31)B.(0,1;错误)C.(0,13;错误) D.(2000,一 1;错误)解析:解析:等价类划分测试方法是把所有可能输入的数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的、常用的黑盒测试用例设计方法。答案 C 不是一个合格的测试用例。15.(36)不是单元测试主要检查的内容。(分数:2.00)A.模块接口B.局部数据结构C.全局数据结构 D.重要的执行路径解析:解析:单元测试主要检查的内容包括:边界测试、错误处理测试、路
21、径测试、局部数据结构测试、模块接口测试。所以答案选 C。16.由于信用卡公司升级了其信用卡支付系统,导致超市的原有信息系统也需要做相应的修改工作,该类维护属于(34)。(分数:2.00)A.正确性维护B.适应性维护 C.完善性维护D.预防性维护解析:解析:正确性维护是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误;适应性维护是指应用软件适应信息技术变化和管理需求变化而进行的修改;完善性维护是为扩充功能和改善性能而进行的修改,主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能和性能特征。预防性维护是指为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,应
22、主动增加预防性的新功能,以使应用系统适应各种变化而不被淘汰。本例的系统是适应信用卡支付系统的升级而做出的修改,属于适应性维护。17.某企业由于外部市场环境和管理需求的变化对现有软件系统提出新的需求,则对该软件进行的维护属于(31)维护。(分数:2.00)A.正确性B.完善性C.适应性 D.预防性解析:解析:适应性维护是指应用软件适应信息技术变化和管理需求变化而进行的修改。如改善系统硬件环境而产生系统更新换代的需求,企业由于外部市场环境和管理需求的变化对现有软件系统提出新的需求等。正确性维护是指改正系统开发阶段已发生而系统测试阶段尚未发现的错误。完善性维护主要是指对已有的软件系统增加一些在系统分
23、析和设计阶段中都没有规定的功能和性能特征。预防性维护则是为了适应未来的软硬件环境的变化,主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。18.针对应用在运行期的数据特点,修改其排序算法使其更高效,属于(33)维护。(分数:2.00)A.正确性B.适应性C.完善性 D.预防性解析:解析:软件维护一般分为正确性维护、适应性维护、完善性维护和预防性维护。完善性维护是对软件功能的扩展和对性能的改善。题目中“修改其排序算法使其更高效”很明显是对性能的改善,属于完善性维护。19.图 420 所示的逻辑流实现折半查找功能,最少需要(34)个测试用例可以覆盖所有的可能路径。(分数:2.00)A.
24、1B.2 C.3D.4解析:解析:对于折半查找,有两种结果,要么查找到,要么没有查找到,这两种结果是互斥的,因此至少需要 2 个测试用例可以覆盖所有的可能路径。20.在某班级管理系统中,班级的班委有班长、副班长、学习委员和生活委员,且学生年龄在 1525 岁。若用等价类划分来进行相关测试,则(35)不是好的测试用例。(分数:2.00)A.(队长,15)B.(班长,20)C.(班长,15)D.(队长,12) 解析:解析:等价类划分法选择适当的数据子集来代表整个数据集,通过降低测试的数目实现“合理的”覆盖,覆盖了更多的可能数据,以发现更多的软件缺陷。在设计测试用例的时候要考虑有效等价类和无效等价类
25、。有效等价类:是指输入完全满足程序输入的规格说明,有效、有意义的输入数据所构成的集合。利用有效等价类可以检验程序是否满足规格说明所规定的功能和性能。无效等价类:和有效等价类相反,即不满足程序输入要求或者无效的输入数据构成的集合。使用无效等价类,可以鉴别程序异常情况的处理。本题中,(队长,15)和(队长,12)都是无效等价类的测试用21.进行防错性程序设计,可以有效地控制(36)维护成本。(分数:2.00)A.正确性 B.适应性C.完善性D.预防性解析:解析:正确性维护是改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。进行防错性程序设计,可以有效地控制正确性维护成本。22.在软件维护阶段,
26、为软件的运行增加监控设施属于(34)维护。(分数:2.00)A.改正性B.适应性C.完善性 D.预防性解析:解析:完善性维护主要是指,对已有的软件系统添加一些在系统分析和设计阶段中没有规定的功能与性能特征。为软件的运行增加监控设施是新增的功能,属于完善性维护。23.图 421 所示的逻辑流,最少需要(35)个测试用例可实现语句覆盖。 (分数:2.00)A.1 B.2C.3D.5解析:解析:语句覆盖是指选择足够的测试数据,使被测试程序中的每条语句至少执行一次。本题是冒泡排序算法的逻辑流,最少需要 1 个测试用例可实现语句覆盖,用例数组可以选为 a=3,4,2,5,l。24.在改正当前故障的同时可
27、能会引入新的故障,这时需要进行(36)(分数:2.00)A.功能测试B.性能测试C.回归测试 D.验收测试解析:解析:回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。性能测试是指检查系统是否满足系统设计方案说明书对性能的要求。验收测试是以用户为主的测试,主要根据测试计划和结果对系统进行钡 9 试和接收。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。功能测试也称为黑盒测试,在完全不考虑软件的内部结构和特性的情况下,根据功能测试用例,逐项测试,检查系统是否达到用户要求的功能。25.以下关于软件系统文档的叙述中,错误的
28、是(34)。(分数:2.00)A.软件系统文档既包括有一定格式要求的规范文档,又包括系统建设过程中的各种来往文件、会议纪要、会计单据等资料形成的不规范文档B.软件系统文档可以提高软件开发的可见度C.软件系统文档不能提高软件开发效率 D.软件系统文档便于用户理解软件的功能、性能等各项指标解析:解析:软件系统的文档主要包括用户文档和系统文档。用户文档主要描述系统功能和使用方法,用户可以通过用户文档理解软件的功能、性能等各项指标。系统文档描述系统设计、实现和测试等各方面的内容。软件系统文档还包括在软件开发过程中,由软件开发人员制定提交的一些工作计划或工作报告,使管理人员能够通过这些文档了解软件开发项
29、目安排、进度、资源使用和成果等。可见,软件系统文档可以提高软件开发的可见度和开发效率。26.不属于黑盒测试技术的是(36)。(分数:2.00)A.错误猜测B.逻辑覆盖 C.边界值分析D.等价类划分解析:解析:黑盒测试也称为功能测试,在完全不考虑软件的内部结构和特性的情况下,测试软件的外部特性。常用的黑盒测试技术有等价类划分、边界值分析、错误推测和因果图等。逻辑覆盖是白盒测试中用到的方法。27.使用白盒测试方法时,应根据(17)和指定的覆盖标准确定测试数据。(分数:2.00)A.程序的内部逻辑 B.程序结构的复杂性C.使用说明书D.程序的功能解析:解析:白盒测试也称为结构测试,根据程序的内部结构
30、和逻辑来设计测试用例,对程序的执行路径和过程进行测试,检查是否满足设计的需要。白盒测试常用的技术涉及不同覆盖标准,在测试时需根据制定的覆盖标准确定测试数据。28.一个功能模块 M1 中的函数 F1 有一个参数需要接收指向整型的指针,但是在功能模块 M2 中调用 F1 时传递了一个整型值,在软件测试中,(35)最可能测出这一问题。(分数:2.00)A.M1 的单元测试B.M2 的单元测试C.M1 和 M2 的集成测试 D.确认测试解析:解析:单元测试侧重于模块中的内部处理逻辑和数据结构,所有模块都通过了测试之后,把模块集成起来仍可能会出现穿越模块的数据丢失、模块之间的相互影响等问题,因此,需要模
31、块按系统设计说明书的要求组合起来进行测试,即集成测试,以发现模块之间协作的问题。一个功能模块 Ml 中的函数 F1 有一个参数需要接收指向整型的指针,但是在功能模块 M2 中调用 F1 时传递了一个整型值,这种模块之间传递参数的错误,在集成测试中最可能测试出来。用白盒测试方法对图 418 所示的程序进行测试,设计了 4 个测试用例:(x=0,y=3),(x=1,y=2),(x=1,y=2),(x=3,y=1)。测试用例实现了(35)覆盖;若要完成路径覆盖,则可用测试用例(36)。 (分数:4.00)(1).(35)(分数:2.00)A.语句 B.条件C.判定D.路径解析:(2).(36)(分数
32、:2.00)A.B.C. D.解析:解析:白盒测试也称为结构测试,根据程序的内部结构和逻辑来设计测试用例,对程序的路径和过程进行测试,检查是否满足设计的需要。语句覆盖是指选择足够的测试数据,使被测试程序中每条语句至少执行一次。(x=0,y=3)的测试用例使得语句 A 被执行,(x=1,y=2)的测试用例使得语句 B 被执行。因此,测试用例实现了语句覆盖。路径覆盖是指覆盖被测试程序中所有可能的路径。上图中包含 4 条路径,覆盖了最左边的路径,覆盖了第二和最右边的两条路径,覆盖了使(x在白盒测试法中,(34)是最弱的覆盖准则。图 4 一 19 至少需要(35)个测试用例才可以完成路径覆盖,语句组
33、2 不对变量 i 进行操作。 (分数:4.00)(1).(34)(分数:2.00)A.语句 B.条件C.判定D.路径解析:(2).(35)(分数:2.00)A.1B.2C.3 D.4解析:解析:从覆盖源程序语句的详尽程度分析,逻辑覆盖标准包括以下不同的覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定条件组合覆盖、条件组合覆盖和路径覆盖。语句覆盖的含义是:选择足够多的测试数据,使被测程序中每条语句至少执行一次。语句覆盖是很弱的逻辑覆盖。路径覆盖要求设计足够的测试用例,覆盖程序中所有可能的路径。路径覆盖是最强的逻辑覆盖。对于比较简单的小程序来说,实现路径覆盖是可能的,但是如果程序中出现了多个判断和多个循环,可能的路径数目将会急剧增长,以致实现路径覆盖是几乎:不可能的。所有我们需要路径分析,计算程序中的