1、软件工程练习测试题库一、单项选择题1. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( )A.软件工程 B.软件周期C.软件危机 D.软件产生2. 研究开发所需要的成本和资源是属于可行性研究中的( )研究的一方面。A.技术可行性 B.经济可行性C.社会可行性 D.法律可行性3. IDEF0 图不反映出系统( )A.系统做什么 B.系统功能如何实现C.系统由谁来做 D.系统实现的约束条件4. 模块的内聚性最高的是( )A.逻辑内聚 B.时间内聚C.偶然内聚 D.功能内聚5. 在 SD 方法中全面指导模块划分的最重要的原则是( )A.程序模块化 B.模块高内聚C.模块低耦合 D
2、.模块独立性6. 软件详细设计主要采用的方法是( )A.模块设计 B.结构化设计C.PDL 语言 D.结构化程序设计7. 下列关于 JSP 方法不正确的说法是( )A.JSP 方法主要用于规模不大的数据处理系统B.JSP 方法不明确的划分软件概要设计和详细设计的两个阶段C.JSP 方法适用于输入数据和输出数据之间有对应关系的问题求解D.JSP 方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。因此它只适用于详细设计阶段8. 不适合作为科学工程计算的语言是( )A. Pascal B. CC. Fortran D. Prolog9. 黑盒测试在设计测试用例时,主要需要研究( )A.
3、需求规格说明与概要设计说明 B.详细设计说明C.项目开发计划 D.概要设计说明与详细设计说明10. 若有一个计算类型的程序,它的输入量只有一个 X,其范围是-1.0,1.0 ,现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( )A.条件覆盖法 B.等价分类法C.边界值分析法 D.错误推测法11. 下列属于维护阶段的文档是( )A.软件规格说明 B.用户操作手册C.软件问题报告 D.软件测试分析报告12. 快速原型模型的主要特点之一是( )A.开发完毕才见到产品 B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件 D.及早提供工作软件
4、13. 因计算机硬件和软件环境的变化而做出的修改软件的过程称为( )A.较正性维护 B.适应性维护C.完善性维护 D.预防性维护14. 类库这种机制是( )级别的信息共享。A.同一类 B.不同类C.同一应用 D.不同应用15. 只有单重继承的类层次结构是( )层次结构。A.网状型 B.星型C.树型 D.环型16. 在屏蔽硬件错误的冗错技术中,冗余附加技术有( )A.三模冗余 B.信息冗余C.冗余备份程序的存储及调用 D.关键程序和数据的冗余存储和调用17. 软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( )A.可用性 B.可靠性C.正确性 D.完整性18.
5、下列文档与维护人员有关的有( )A.软件需求说明书 B.项目开发计划C.概要设计说明书 D.操作手册19. 采用 Gantt 图表示软件项目进度安排,下列说法中正确的是( )A.能够反映多个任务之间的复杂关系B.能够直观表示任务之间相互依赖制约关系C.能够表示哪些任务是关键任务D.能够表示子任务之间的并行和串行关系20. 下列模型属于成本估算方法的有( )A.COCOMO 模型 B.McCall 模型C.McCabe 度量法 D.时间估算法21. 瀑布模型的关键不足在于( ) A. 过于简单 B. 不能适应需求的动态变更C. 过于灵活 D. 各个阶段需要进行评审22. 在面向对象软件开发方法中
6、,类与类之间主要有以下结构关系( )A. 继承和聚集 B. 继承和一般C. 聚集和消息传递 D. 继承和方法调用23. 以下哪一项不是软件危机的表现形式( )A. 成本高 B. 生产率低C. 技术发展快 D. 质量得不到保证24. 以下哪一项不是面向对象的特征( )A. 多态性 B. 继承性C. 封装性 D. 过程调用25. 面向对象模型主要由以下哪些模型组成( )A. 对象模型、动态模型、功能模型 B. 对象模型、数据模型、功能模型C. 数据模型、动态模型、功能模型 D. 对象模型、动态模型、数据模型26. 软件可行性研究一般不考虑( )A. 是否有足够的人员和相关的技术来支持系统开发B.
7、是否有足够的工具和相关的技术来支持系统开发C. 待开发软件是否有市场、经济上是否合算D. 待开发的软件是否会有质量问题27. 软件维护的副作用主要有以下哪几种( )A. 编码副作用、数据副作用、测试副作用B. 编码副作用、数据副作用、测试副作用C. 编码副作用、数据副作用、文档副作用D. 编码副作用、文档副作用、测试副作用28. 软件项目计划一般不包括以下哪项内容( )A. 培训计划 B. 人员安排C. 进度安排 D. 软件开发标准的选择和制定29. 以下哪一项不属于面向对象的软件开发方法( )A. coad 方法 B. booch 方法C. jackson 方法 D. omt 方法30. 以
8、下哪种测试方法不属于白盒测试技术( )A. 基本路径测试 B. 边界值分析测试C. 循环覆盖测试 D. 逻辑覆盖测试31. 软件生命周期中所花费用最多的阶段是( )A. 详细设计 B. 软件编码C. 软件测试 D. 软件维护32. 在软件开发过程中,DFD 是面向( )分析方法的描述工具。A. 数据结构 B. 数据流C. 对象 D. 构件(component)33. 在画分层 DFD 时,应注意保持( )之间的平衡。A. 父图与子图 B. 同一父图的所有子图C. 不同父图的所有子图 D. 同一子图的所有直接父图34. DFD 中从系统的输入流到系统的输出流的一连串连续变换形成一种信息流,这种信
9、息流可分为( )两大类。A. 控制流和变换流 B. 变换流和事务流C. 事务流和事件流 D. 事件流和控制流35. 通常影响软件易维护性的因素有易理解性、易修改性和( ) 。A. 易使用性 B. 易恢复性C. 易替换性 D. 易测试性36. 在软件的开发过程中往往采取各种措施来提高软件的易维护性。如( )有助于提高软件的易修改性。A. 高效的算法 B. 信息隐蔽原则C. 增强健壮性 D. 身份认证37. 在软件质量特性中, ( )是指在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。A. 正确性 B. 准确性C. 可靠性 D. 易使用性38. 在软件质量特性中, ( )是指防
10、止对程序及数据的非授权访问的能力。A. 安全性 B. 适应性C. 灵活性 D. 容错性39. 软件设计中划分模块的一个准则是( ) 。A. 低内聚低耦合 B. 低内聚高耦合C. 高内聚低耦合 D. 高内聚高耦合40. 一个模块内部的内聚种类中( )内聚的内聚度最高。A. 偶然 B. 逻辑C. 功能 D. 过程41. OMT 是一种对象建模技术,它定义了三种模型,它们分别是( ) 。A. 对象模型、动态模型、功能模型 B. 静态模型、动态模型、功能模型C. 对象模型、时序模型、功能模型 D. 对象模型、动态模型、计算模型42. 对象建模技术中,表示瞬时行为上的系统的“控制”特征,通常可用( )来
11、表示。A. 类图 B. 状态图C. 对象图 D. 数据流图43. 为了提高软件的可移植性,应注意提高软件的( ) 。A. 使用方便性 B. 简洁性C. 可靠性 D. 设备不依赖性44. 可维护性通常包括( ) 。A. 可用性和可理解性 B. 可修改性、数据独立性和数据一致性C. 可测试性和稳定性 D. 可理解性、可修改性和可测试性45. ( )维护是为了补充软件的功能或提高原有软件的性能而进行的维护活动。A. 功能性 B. 扩展性C. 合法性 D. 完善性46. ( )是指系统万一遇到未预料的情况时,能够按照预定的方式做合适的处理。A. 可用性 B. 正确性C. 稳定性 D. 健壮性47. 在
12、设计测试用例时, ( )是用得最多的一种黑盒测试方法。A. 等价类划分 B. 边值分析C. 因果图 D. 判定表48. 在实际应用中,一旦纠正了程序中的错误后,还应选择部分或全部原先已测试过的测试用例,对修改后的程序重新测试,这种测试称为( ) 。A. 验收测试 B. 强度测试C. 系统测试 D. 回归测试49. 在软件工程的设计阶段中, ( )法只提供了重要的设计准则,没有规定出具体的工作步骤。A. SD B. JacksonC. Parnas D. 以上皆非50. 软件测试的目的是( ) 。A. 表明软件的正确性 B. 评价软件质量C. 尽可能发现软件中错误 D. 判定软件是否合格51.
13、通常, ( )是在代码编写阶段可进行的测试,它是整个测试工作的基础。A. 系统测试 B. 安装测试C. 验收测试 D. 单元测试52. 逻辑覆盖标准主要用于( ) 。A. 黑盒测试方法 B. 白盒测试方法C. 灰盒测试方法 D. 软件验证方法53. 逻辑覆盖中最强的覆盖标准是( ) 。A. 条件覆盖 B. 条件组合覆盖C. 判定覆盖 D. 语句覆盖54. 软件维护工作越来越收到重视,它的花费常常要占软件生存周期全部花费的( )左右。A. 1020 B. 2040C. 6080 D. 90 以上55. 为了减少维护工作的困难,可以考虑采取的措施是( ) 。A. 设法开发出无错的软件B. 增加维护
14、人员数量C. 切实加强维护管理,并在开发过程中就采取有利于未来维护的措施D. 限制修改的范围56. 软件测试是软件质量保证的主要手段之一。 “高产”的测试是指( ) 。A. 用适量的测试用例,说明被测试程序正确无误B. 用适量的测试用例,说明被测试程序符合相应的要求C. 用少量的测试用例,发现被测试程序尽可能多的错误D. 用少量的测试用例,纠正被测试程序尽可能多的错误57. Jackson 结构化程序设计方法主要适用于规模适中的( )系统的开发。A. 数据处理 B. 文字处理C. 实时控制 D. 科学计算58. 单元测试在试验阶段进行,它所依据的模块功能描述和内部细节以及测试方案应在( )阶段
15、完成,目的是发现编程错误。A. 需求分析 B. 概要设计C. 详细设计 D. 结构设计59. 使用白盒测试方法时,确定测试数据应根据( )和指定的覆盖标准。A. 程序的内部逻辑 B. 程序的复杂程度C. 使用说明书 D. 程序功能60. 软件的集成测试工作最好由( )承担,以提高集成测试的效果。A. 该软件的设计人员 B. 该软件开发组的负责人C. 该软件的编程人员 D. 不属于该软件开发组的软件设计人员二、名词解释1、 集成测试2、 CASE3、 SA4、 软件工程5、 可互操作性6、 法律可行性研究7、 数据流图8、 需求分析9、 过程抽象10、 模块独立性11、 数据性块间联系12、 判
16、定表13、 事务型数据流图14、 耦合性15、 面向数据设计16、 系统响应时间17、 判定-条件覆盖18、 路径覆盖19、 静态测试20、 测试三、判断题1、 螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。2、 数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。3、 软件是指用程序设计语言(如 PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。4、 软件模块之间的耦合性越弱越好。5、 过程描述语言可以用于描述软件的系统结构。6、 如果通过软件测试没有发现错误,则说明软件是正确的。7、 快速原型模型可以有效地适应
17、用户需求的动态变化。8、 模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。9、 软件概要设计包括软件系统结构设计以及数据结构和数据库设计。10、 软件定义的基本任务是确定软件系统的工程需求。11、 为支持软件开发、维护、管理而研制的计算机程序系统称为软件工具。12、 软件提交是指把软件提交给用户,必要时还应负责把软件安装到用户环境中。13、 系统规格说明评审完成以后,系统开发可以按照硬件工程、软件工程、数据库工程、人机工程等并行开展工作。14、 个模块内所有处理元素集中于相同的数据结构,其块内联系属功能性块内联系。15、 流程图不是结构化设计工具。16、 从
18、软件的生存期来看,软件测试只涉及编码阶段,即在编写出每个模块之后所进行的模块测试(又称单元测试) ,测试者应是该模块的作者。17、 好的测试用例应当是合理的输入条件。18、 软件测试中综合策略的通常做法是用白盒法设计基本的测试方案,再用黑盒法补充一些必要的测试方案。19、 一次性组装方式进行集成测试的思想和增殖式组装方式进行集成测试的思想是一致的。20、 人工测试中走查方法和代码评审方法是同一种方法。四、简答题1. 简述软件危机的表现。2. 软件开发模型可以分为那几类?3. 采用快速原型技术的步骤是什么?4. 数据字典的作用是什么?5软件工程的原则有哪些?6. 简述提高可维护性的方法。7. 在
19、软件工程实践中,形成组合模型的方式有那几种?8. 软件项目定义阶段的任务是什么?9. 为什么要采用实体关系图?10简述人机界面风格的演变。11设计规格说明包括什么内容?12可行性研究的任务是什么?13结构化分析方法通过那些步骤来实现?14写源程序时的原则是什么?15数据输入设计的指导原则是什么?16选择程序设计语言的依据是什么?17黑盒测试用于发现哪些类型的错误?18使用边界值分析方法选择测试用例的原则是什么?19简述软件重用的类型。20数据规格说明应该遵守的原则是什么。五、论述题1某旅馆的电话服务如下:可以拨分机号和外线号码。分机号是从 7201 至 7299。外线号码先拨 9,然后是市话号
20、码或长话号码。长话号码是以区号和市话号码组成。区号是从 100 到300 中任意的数字串。市话号码是以局号和分局号组成。局号可以是455,466,888,552 中任意一个号码。分局号是任意长度为 4 的数字串。要求:写出在数据字典中,电话号码的数据条目的定义(即组成) 。2某报表处理系统要求用户输入处理报表的日期,日期限制在 2003 年 1 月至 2008 年 12 月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的 6 位数字字符组成,前四位代表年,后两位代表月。现要求用黑盒测试法中的边界值法写出测试用例。3采用综合测试策略,对以下模
21、块进行测试。要求写出测试方法,列出所有的判定,并给出所选择的用例。模块功能为:使用直接插入法将10 个整数按递增次序排列。main( ) /* 使用直接插入法 int data =23,56,234,1,45,34,21,394,3,35;int i, j, temp;for(i=1;itemp j-; dataj+1=temp; /* 插入正确位置for(i=0;i10;i+)printf(”%d”,datai);printf(”n”);4某校教务系统具备以下功能,输入用户 ID 号及口令后,经验证进入教务管理系统,可进行如下功能的处理:查询成绩:查询成绩以及从名次表中得到名次信息。学籍管理
22、:根据学生总成绩排出名次信息。成绩处理:处理单科成绩并输入成绩表中。就以上系统功能画出 0 层,1 层的 DFD 图。 更多课程资料请到大学课程网 www.0206.cc 学习软件工程测试题库参考答案二、 单项选择题答案:1、 C2、 B3、 B4、 D5、 D6、 D7、 D8、 D9、 A10、 C11、 C12、 D13、 B14、 D15、 C16、 D17、 B18、 C19、 D20、 A21、 B22、 A23、 C24、 D25、 A26、 D27、 C28、 D29、 C30、 B31、 D32、 B33、 A34、 B35、 D36、 B37、 C38、 A39、 C40、
23、 C41、 A42、 B43、 D44、 D45、 D46、 D47、 B48、 D49、 C50、 C51、 D52、 B53、 B54、 C55、 C56、 C57、 A58、 C59、 A60、 D三、 名词解释答案:1、 集成测试也称组装测试或联合测试。是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。组装模块的方式有两种:渐增式测试和非渐增式测试。2、 CASE 是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发。CASE 把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的框架中,并且吸收了 CAD(计算机辅助设计) 、软件工程、
24、操作系统、数据库、网络和许多其他计算机领域的原理和技术。因而,CASE 领域是一个应用、继承和综合的领域。3、 结构化分析方法是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求分析。基本思想是采用自顶向下,逐步分解的方法分析整个系统,有效地控制系统开发的复杂性。4、 软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。它由方法、工具和过程三部分组成。5、 多个软件元素相互通信并协同完成任务的能力。为了实现可互操作性,软件开发通常要遵循某种标准,支持这种标准的环境将为软件元素之间的互操作提供便利。6、 计算机系统工程是指与构造基于计算机系统有关的过程、方法和技术。它是一种问题求解活动。7、 研究在系统开发过程中可能涉及的各种合同、侵权、责任以及各种与法律相抵触的问题。8、 数据流图就是用来刻画数据流和转换的信息系统建模技术。9、 需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,经用户非形式化的需求陈述转化为完整的需求定义,再由需求定义转化到相应的形式功能规约的过程。10、 过程抽象是一个命名的指令序列,它具有一个特定的和受限的功能。11、 每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。