当前位置:文档之家› 软件工程试题及答案-3

软件工程试题及答案-3

软件工程一.判断题(正确打√,错误打╳,每题1分,10题共10分)1.软件维护不同于硬件维修()2.软件就是程序()3.现在,软件投资的费用比硬件高()4.软件的可靠性往往随其规模的增长而增长()5.软件是逻辑产品而不是物理产品()6.结构化设计是属于面向过程的设计()7.软件工具是帮助开发软件的硬件产品()8.软件工程对开发规模小的软件没有多少用处()9.数据流图的英文缩写是DFD ()10.软件中的错误发现纠正得越早,所付出的代价也就越大()二.单选题(每题1分,20题共20分)1.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了()A、软件危机B、软件工程C、程序设计革命D、结构化程序设计2.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出下列回答()A、确定B、行或不行C、正确D、无二义3.设计良好的软件通常具有()结构()A. 上三角形B.下三角形C.瓮形D. 一字形4.在需求分析之前有必要进行的工作是 ( )A.程序设计 B.模块分析 C.ER分析 D.可行性分析5.在软件开发中,为保证软件的开发质量,每个阶段都应当进行()A、设计评审B、模块化C、主程序员制D、进度控制6.数据流图的类型有两种,一种是变换型结构的,另一种的结构是()A、事务B、映射C、结构化D、层次7.需求分析最终结果是产生()A、项目开发计划B、需求规格说明书C、设计说明书D、可行性分析报告8.软件测试是质量保证的重要阶段,测试有许多特性,其中的一个是()A、严格性B、计划性C、挑剔性D、彻底性9.对数据流图中的成分进行定义是()A. 模块结构图B. 加工说明C. 数据处理D. 数据字典10.在软件的设计过程中,模块设计必须遵循的原则是()A. 可适应性B.抽象C.可移植性D.可维护性11.模块之间的耦合有几种,下面哪个不是的()A. 逻辑耦合B. 特征耦合C. 内容耦合D. 公共耦合12.模块内聚度越高,说明模块内各成分彼此结合的程度()A.越松散 B.越紧密 C.无法判断 D.相等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.单独测试模块时,有时需要一个替身来替代上层模块,此替身被称作是()A.理解模块 B.管理模块 C.驱动模块 D.传递模块19.软件维护有四种,下面哪一个不是的()A. 完善性维护B. 适应性维护C. 预防性维护D. 测试性维护20.以下哪一项不是面向对象的特征()A、多态性B、继承性C、封装性D、过程调用三.填空题(每空2分,12空共24分)1.在模块结构图中,常用扇入数、扇出数来评价模块结构图,直接调用某一模块的其他模块数称为该模块的(【1】)。

2.结构化分析方法中,数据流图的四种基本成分为:加工、源点或终点、文件和(【2】)。

3.按数据流的类型,结构化设计方法有两种设计策略,它们是变换分析设计和(【3】)。

4.定性度量模块独立性的两个标准是内聚性和(【4】),内聚程度最高的是(【5】),最低是(【6】)5.如果按用户要求增加新功能或修改已有的功能而进行的维护工作,称为(【7】)。

6.由底向上渐增式是在测试层次结构的大型软件时常用的一种方法。

用由底向上渐增式方法对软件进行测试时,需要为每个模块准备一个(【8】),它的作用是调用被测的模块。

7.软件测试的步骤主要包括(【9】)、集成测试、(【10】)和系统测试。

8.下图是模块结构图,其宽度是(【11】),A模块的扇入是(【12】)四.名词解释(每个3分,6个共18分)1.白盒法答:2.静态测试答:3.模块答:4.路径覆盖答:5.模块的耦合性答:6.等价分类法答:五.分析回答题(每题4分,2题共8分)1.下面是某程序流程图,图中数字表示路径。

A、B、Y均需输入,试阐述什么是语句覆盖标准并设计测试用例,用语句覆盖标准覆盖下面程序流程图并指出执行路径答:2.按瀑布模型,软件开发可以分为8个阶段,试问是哪8个阶段,按先后顺写出,然后回答需求分析、概要设计和编码阶段的主要任务是什么。

答:1.什么是传统的“瀑布模型”?“瀑布模型”的主要缺陷是什么?试说明造成缺陷的原因。

2.什么是黑盒法?有那些测试方法?各是什么含义特点?3.什么是集成测试?集成测试中的自顶向下策略是什么含义?它又可以分为哪两种实施步骤、各是什么含义?4.软件测试目的是什么?测试有哪些特征?试阐述之软件工程A卷答案三.填空题(每空2分,12空共24分)四.名词解释(每个3分,6个共18分)7.白盒法答:该方法把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检查内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。

白盒法不可能进行穷举测试。

8.静态测试答:指被测试程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。

9.模块答:模块在程序重视数据说明、可执行语句等程序对象的集合,或者是单独命名和编址的元素,如高级语言中的过程、函数、子程序等等。

10.路径覆盖答:指设计足够的测试用例,覆盖被测程序中所有可能的路径。

11.模块的耦合性答:是对软件内部模块间连续程度的度量12.等价分类法答:把输入数据的可能值划分为若干等价类,使每类中的任何一个测试用例,都能代表同一类中的其他测试用例。

五.分析回答题(每题4分,2题共8分)1.答:语句覆盖:使被测程序中每个语句至少执行一次 (2分)测试用例:(2分)(1)A=1,B>=10,Y>=A ;或者:B=0,A>10,Y>=A 执行路径:1-3-4-5-7-8(2) A≠1,B≠0,Y<1(或A+B<1=0),执行路径:1-2-5-62.答:可以分为问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试、运行维护共8个阶段。

(1分)(1)需求分析的主要任务是:主要是确定目标系统必须具备的功能。

准确地回答“为了解决这个问题,目标系统必须做什么”(1分)(2)概要设计阶段的主要任务是:这个阶段必须回答的是“概括地说,应该如何解决这个问题”。

概要设计的目标是将需求分析阶段定义的系统模型转换成相应的软件结构,以规定软件的形态及各成分间的层次关系、界面及接口要求。

(1分)(3)编码阶段的主要任务是:这个阶段的任务,是根据详细设计的结果,选择一种适合的程序设计语言(必要时可采用汇编语言),把详细设计的结果翻译成程序的源代码。

(1分)六.简答题(每题5分,4题共20分)5.什么是传统的“瀑布模型”?“瀑布模型”的主要缺陷是什么?试说明造成缺陷的原因。

答:(1)什么是传统的“瀑布模型”?线性顺序模型或生存周期模型就是瀑布模型,各个开发阶段顺序展开,犹如奔流不息的瀑布(1分)(2)传统"“瀑布模型”的主要缺陷:由于瀑布模型的特点,早期的错误直到开发晚期才能被发现,开发的风险较大。

(2分)(3)造成缺陷的原因:在项目的早期,用户常常很难清楚地给出所有需求,瀑布模型却要求如此。

(2分)6.什么是黑盒法?有那些测试方法?各是什么含义特点?答:(1)什么是黑盒法?将程序当成是黑盒子以设计中的功能为标准在程序的接口出进行的测试,看它能否达到功能要求(2分)(2)有那些测试方法?A.等价类划分:把输入数据的可能值划分为若干等价类,使每类中的任何一个测试用例,都能代表同一类中的其他测试用例。

(1分)B.边界值分析:选择测试用例,使得被测程序能在边界值及其附近运行。

(1分)C.错误推测等:猜测被测程序在哪些地方容易出错,然后针对可能的薄弱环节来设计测试用例。

(1分)。

7.什么是集成测试?集成测试中的自顶向下策略是什么含义?它又可以分为哪两种实施步骤、各是什么含义?答:(1)什么是集成测试?将模块组合起来成为一个完整的系统对其进行测试就是集成测试。

(1分)(2)自顶向下策略从主控制模块(“主程序”)开始,沿着软件的控制层次向下移动,从而逐渐把各个模块结合起来。

(1分)(3)两种实施步骤两种实施步骤是:先广后深(宽度优先)和先深后广(深度优先)(1分)●先广后深(宽度优先)的结合方法,是沿软件结构水平地移动,把处于同一个控制层次上的所有模块组装起来(1分)●先深后广(深度优先)的结合方法,是先组装在软件结构的一条主控制通路上的所有模块。

(1分)8.软件测试目的是什么?测试有哪些特征?试阐述之答:(1)测试,目的是什么(2分)测试是为了发现程序中的错误而执行程序的过程;(2)测试的特征(3分,答出3个即可)●挑剔性任何程序都存在错误,测试是为了发现错误,而不是为了证明程序没有错误。

因此,对于被测的程序就是要“鸡蛋里面挑骨头”。

●复杂性测试需要周密的计划,需要考虑各种可能性。

●测试是不完全的(测试不完全)测试不能发现程序中的所有错误,即测试是不完全的(不彻底)●经济性因为穷尽测试是不可能的,因此在实际测试中,只能选择一组有代表性的典型的测试用例进行有限的测试。

通常称这种测试为选择测试(Selective testing)。

理想的选择,应该足以尽可能少的测试用例,去发现尽可能多的错误。

为了降低成本,选择测试时要遵守“经济性”原则。

相关主题