第一章
1.选择题
(1)下列说法中正确的是( B )
A.20世纪50年代提出了软件工程的概念
B.20世纪60年代提出了软件工程的概念
C.20世纪70年代出现了客户机/服务器技术
D.20世纪80年代软件工程学科达到成熟
(2)产生软件危机的主要原因是( D )
A.软件工具落后
B.软件生产能力不足
C.实施严格的版本控制
D.软件本身的特点及开发方法不满足
(3)软件工程的三要素是( C )
A.技术、方法和工具
B.方法、对象和类
C.方法、工具和过程
D.过程、模型和方法
(4)在下列选项中,(A)不属于软件工程学科所要研究的基本内容
A.软件工程材料
B.软件工程方法
C.软件工程原理
D.软件工程过程
2.判断题
×(1)软件就是程序,编写软件就是编写程序。
×(2)软件危机的主要表现是软件需求增加,软件价格上升。
√(3)软件工程学科出现的主要原因是软件危机出现。
×(4)软件工程工具的作用是为了延长软件产品的寿命。
3.填空题
(1)软件危机是指人们在 开发 和 维护 过程中遇到的一系列问题。
(2)忽略软件开发前期的 需求分析 是造成软件危机的一大原因。
(3)开发出来的软件产品不能满足用户的需求,即产品的功能或特性与 用户期望 并不符合
(4)软件工程分为工具层、方法层、过程层、质量层
(5)软件工程第一次提出在1968举办的学术会议上
第二章
1.选择题
(1)增量模型本质上是一种( C )。
A.线性顺序模型
B.整体开发模型
C.非整体开发模型
D.螺旋模型
(2)软件过程是( C )
A.特定的开发模型
B.一种软件求解的计算逻辑
C.软件开发活动的集合
D.软件生命周期模型
(3)软件生命周期模型不包括( B )。
A.瀑布模型
B.用例模型
C.增量模型
D.螺旋模型
(4)包含风险分析的软件过程模型是(A)。
A.螺旋模型
B.瀑布模型
C.增量模型
D.喷泉模型
(5)软件工程中描述生命周期的瀑布模型一般包括需求分析、设计、编码、( D )、维护等几个阶段
A.产品发布
B.版本更新
C.可行性分析
D.测试
(6)软件开发的瀑布模型中,一般认为可能占用开发人员最多的阶段是( C )
A.分析阶段
B.设计阶段
C.编码阶段
D.测试阶段
(7)螺旋模型综合了( B )的优点,并增加了风险分析。
A.增量模型和喷泉模型
B.瀑布模型和快速原型模型
C.瀑布模型和喷泉模型
D.快速原型模型和喷泉模型
2.判断题
×(1)瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
×(2)螺旋模型在瀑布模型和增量模型的基础上增加了风险分析。
×(3)软件工程过程应该以软件设计为中心,关键是编写程序。
×(4)极限编程属于增量模型。
3.填空题
(1)螺旋模型是瀑布模型和迭代模型的结合。
(2)基于组件的开发模型充分体现了软件复用的思想。
(3)统一软件开发过程模型是基于迭代与增量思想的软件开发模型。
(4)喷泉模型是典型的瀑布模型,具有较好的可移植性。
(5)采用RUP,可以从初始开始不断迭代,可以多次执行各个工作流程。
第三章
1.选择题
(1)可行性研究也称为( D )
A.技术可行性研究
B.操作可行性研究
C.经济可行性研究
D.项目论证
(2) (A)研究往往是系统开发过程中难度最大的工作,也是可行性研究的关键
A.技术可行性
B.操作可行性
C.经济可行性
D.风险可行性
(3)研究软硬件资源的有效性是进行(A)研究的一方面
A.技术可行性
B.经济可行性
C.社会可行性
D.操作可行性
(4)软件开发计划是软件工程中的一种( B )性文档
A.技术
B.管理
C.检索
D.文
2.判断题
×(1)软件开发计划是软件工程中的一种技术性文档。
√(2)可行性研究过程也称为项目论证过程。
×(3)投资回收期越长,获得利润就越快,项目就越值得开发。
√(4)代码行技术是成本估算技术的一种。
3.填空题
(1)可行性研究的结论有3种:可行、部分可行、不可行 。
(2)经济可行性研究主要研究开发和运行需要的成本和得到的收益
(3)计划可行性研究主要是估计项目完成所需要的_资源并评估项目预留的时间是否足够。
(4)可行性研究主要包括战略可行性、操作可行性、计划可行性、技术可行性、法律可行性、市场可行性、经济可行性、环境可行性 。
(5)需求研究研究是系统开发过程中难度最大的工作,也是可行性研究的关键。
(6)技术可行性研究主要关注待开发的系统的架构、性能和限制条件。
(7)成本效益分析的第一步是估算开发成本、运行费用和新系统带来的收益。
(8)任务分解技术最常用的方法是按功能划分任务。
(9)投资回报率是软件生命周期中软件系统的累计经济效益与投资之差。
第四章:
1.选择题
(1)在需求分析之前有必要进行( B )工作。
A.程序设计
B.可行性研究
C.E-R分析
D.行为建模
(2)需求分析是一个(D),它应该贯穿于系统的整个生命周期中,而不是仅仅属于软件生命周期早期的一项工作。
A.概念
B.工具
C.方法
D.过程
(3)软件需求规格说明书的内容不应该包括( B )
A.对重要功能的描述
B.对算法的详细过程描述
C.对数据的要求
D.软件的性能
(4)软件需求分析阶段的工作可以分为以下5个方面:对问题的识别、分析、综合、编写需求分析文档以及(C)。
A.总结
B.阶段性报告
C.需求分析评审
D.以上答案都不正确
(5)进行需求分析可使用多种工具,但(B)是不适用的。
A.数据流图
B. PAD
C.状态转换图
D.数据字典
(6)结构化分析方法的基本思想是( B )。
A.自底向上、逐步分解
B.自顶向下、逐步分解
C.自底向上、逐步抽象
D.自顶向下、逐步抽象
(7)在E-R图中,包含以下基本要素(D)。
A.数据、对象、实体
B.控制、关系、对象
C.实体、关系、控制
D.实体、属性、关系
2.判断题
√(1)用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性
X(2)需求分析是开发方的工作,用户的参与度不大。
X(3)需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性研究的依据。
X(4)需求分析的主要目的是制订软件开发的具体方案。
X(5)需求规格说明书描述了系统每个功能的具体实现。
V(6)非功能性需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。
×(7)需求分析阶段的成果主要是需求规格说明书,但该成果与软件设计、编码、测试以及维护关系不大
X(8)分层的DFD可以用于可行性研究阶段,描述系统的物理结构。
V(9)信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是VE-R图。
X(10)在需求分析阶段主要采用图形工具来描述的原因是图形的信息量大,便于描述规模大的软件系统。
V(11)设计数据流图时只需考虑系统必须完成的基本逻辑功能,完全不需考虑怎样具体地实现这些功能。
3.填空题
(1)需求分析的步骤为需求获取、分析建模、需求描述和需求验证
(2)需求可以分为两大类:功能需求 和 非功能需求
(3)需求管理是一种用于收集、记录、组织和跟踪系统需求变更的系统化方法
(4)功能分解方法将一个系统看成由若干功能模块组成
(5)面向对象的分析方法的关键是识别问题域内的对象
(6)数据流图主要分为逻辑数字流图和物理数字流图两种表示方法
(7)状态转换图是一种描述系统对内部或外部事件响应的行为模型
(8)结构化分析方法通常强调模块化逐层分解的方法
(9)分析模型应该包括功能模型、结构模型、行为模型
(10)低层数据流图是对顶层数据流图的细化
第五章
1.选择题
(1)面向数据流的软件设计方法可将( C )映射成软件结构。
A.控制结构
B.模块
C.数据流
D.事务流
(2)模块的独立性是由内聚性和耦合性来度量的,其中内聚性表示的是(C)
A.模块间的联系程度
B.信息隐藏程度
C.模块的功能强度
D.接口的复杂程度
(3)Jackson方法根据(C)来导出程序结构
A.数据流图
B.数据间的控制结构
C.数据结构
D.IPO图
(4)为了提高模块的独立性,模块之间最好是( C )
A.公共耦合
B.控制耦合
C.数据耦合
D.特征耦合
(5)在面向数据流的软件设计方法中,一般将信息流分为(D)
A.数据流和控制流
B.变换流和控制流
C.事务流和控制流
D.变换流和事务流
(6)总体设计(概要设计)不包括(A)。
A.体系结构设计
B.接口设计
C.数据设计
D.数据结构设计
(7)一个模块把一个数值作为参数传递给另一个模块,这两个模块之间的耦合是(B)
A.公共耦合
B.数据耦合
C.控制耦合
D.内容耦合
(8)划分模块时,一个模块的(A)
A.作用范围应在其作用范围内
B.控制范围应在其作用范围内
C.作用范围和控制范围互不包含
D.作用范围和控制范围不受任何限制
(9)详细设计的任务是定义每个模块的(B)
A.外部特征
B.内部特征
C.算法和数据格式
D.功能和输入输出数据
(10)下面不是结构化方法的基本原理的是( B )
A.自底向上功能分解
B.数据抽象
C.功能抽象
D.模块化
2.判断题
√(1)判定表的优点是容易转换为计算机实现,缺点是不能描述组合条件
√(2)面向数据结构的设计方法一般都包括下列任务:确定数据结构特征;用顺序型、选择型和循环型3种基本形式表示数据
×(3)模块独立性要求高耦合、低内聚。
√(4)软件设计说明书是软件概要设计的主要成果。
√(5)软件设计中设计详审和设计本身一样重要,其主要作用是避免后期付出高昂的代价。
×(6)划分模块可以降低软件的复杂度和工作量,所以应该将模块分的越小越好
×(7)结构化设计方法是一种面向数据结构的设计方法,强调程序结构与问题结构相对应。
×(8)所有的数据流图都可以看作变换型数据流图。
√(9)数据耦合是高耦合。
×(10)文件一般用于长期存储,数据库一般用于临时存储。
3.填空题
(1)模块化的基本原则是高内聚、低耦合
(2)模块结构图之中如果两个模块之间有直线连接,表示它们之间存在控制关系。
(3)变换型DFD由功能、数据流、数据存储组成。
(4)程序控制分为顺序、选择、循环3种基本结构。
(5)伪代码的优点是不仅可以作为设计工具,还可以作为 沟通 工具。
(6)流程图是对过程、算法、逻辑的一种图形表示。
(7)数据设计包括程序级的逻辑设计、应用级的物理设计两个方面。
第六章
1.选择题
(1)面向对象技术中,对象是类的实例。类有3种成分:( A )、属性和方法(或操作)。
A.标识
B.继承
C.封装
D.消息
(2)汽车有一个发动机,那么汽车与发动机之间的关系是( B )关系。
A.组装
B.整体-部分
C.分类
D.一般-具体
(3)( D )是把对象的属性与操作结合在一起,构成一个独立的对象,其内部信息对外界是隐藏的,外界只能通过有限的接口与对象发生联系。
A.多态
B.继承
C.消息
D.封装
(4)关联是建立( B )之间关系的一种手段。
A.操作
B.类
C.功能
D.属性
(5)面向对象软件技术的许多强有力的功能和突出的优点都来源于把类组织成一个层次结构的系统。一个类的上层可以有父类,下层可以有子类。这种层次结构系统的一个重要性质是( B ),一个子类可以获得其父类的全部描述(数据和操作)。
A.兼容性
B.继承性
C.复用性
D.多态性
(6)所有的对象都可以成为各种对象类,每个对象类都定义了一组( D )。
A.说明
B.类型
C.过程
D.方法
(7)UML是软件开发中的一个重要工具,它主要应用于( D )。
A.基于螺旋模型的结构化方法
B.基于需求动态定义的原型化方法
C.基于数据的数据流开发方法
D.基于对象的面向对象的方法
(8)( C )是从用户使用系统的角度来描述系统功能的图形表达方法。
A.类图
B.活动图
C.用例图
D.状态图
(9)(B)描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
A.类图
B.顺序图
C.状态图
D.协作图
2.判断题
×(1)UML是一种建模语言,是一种标准的表示,是一种方法
×(2)类图用来表示系统中类与类之间的关系,它是对系统动态结构的描述
×(3)在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板
√(4)顺序图用于描述对象是如何交互的且将重点放在消息序列上
×(5)继承性是父类与子类之间共享数据结构和消息的机制,这是类之间的一种关系
×(6)多态性增强了软件的灵活性和复用性,允许用更为明确、易懂的方式去建立通用软件,多态性和继承性相结合使软件具有更广泛的复用性和可扩充性
×(7)类封装比对象封装更具体、更细致
×(8)用例之间有扩展、使用、组合等几种关系
×(9)活动图显示动作及其结果,着重描述操作实现中所完成的工作,以及用例实例或类中的活动
×(10)UML支持面向对象的主要概念,并与具体的开发过程相关
√(11)部署图用于描述系统硬件的物理拓扑结构以及在此结构上执行的软件
3.填空题
(1)对象是客观实体的抽象表示,由状态和行为两部分组成。
(2)类是对具有相同属性和行为的一组对象的抽象描述。因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的实例。
(3)UML的静态建模机制包括用例图、类图、对象图、包图。
(4)在UML中,泳道把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履行该组所包括的活动。
(5)时序图是用来反映若干个对象之间动态协作关系的一种交互图。它主要反映对象之间已发送消息的先后次序和对象之间的交互过程。
(6)用例图是从用户使用系统的角度来描述系统功能的图形表达方法。
(7) 部署图就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。
(8)类图是面向对象设计的核心,是建立状态图、协作图和其他图的基础
第七章
1.选择题
(1)面向对象模型主要由以下哪些模型组成?
A.对象模型、动态模型、功能模型
B.对象模型、数据模型、功能模型
C.数据模型、动态模型、功能模型
D.对象模型、动态模型、数据模型
(2)面向对象分析的首要工作是建立(D)
A.系统的动态模型
B.系统的功能模型
C.基本的E-R图
D.问题的对象模型
(3)面向对象分析阶段建立的3个模型中,核心的模型是(C)模型
A.功能
B.动态
C.对象
D.分析
(4)面向对象的动态模型中,每张状态图表示(A)的动态行为。
A.某一个类
B.有关联的若干个类
C.一系列事件
D.一系列状态
(5)在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图;另一个是(B)
A.顺序图
B.状态图
C.系统结构图
D.数据流图
(6)对象模型的描述工具是(D)。
A.状态图
B.数据流图
C.结构图
D.类图
(7)功能模型中所有的(D)往往形成一个层次结构,在这个层次结构中一个数据流图的过程可以由下一层数据流图进行进一步的说明。
A.事件追踪图
B.物理模型图
C.状态转换图
D.数据流图
(8)在面向对象软件开发方法中,类与类之间主要有(A)结构关系。
A.继承和聚合
B.一般和特殊
C.聚合和消息传递
D.继承和方法调用
(9)下面正确的说法是(A)。
A.对象表示客观中存在的实物
B.类是对象的实例
C.类是具有相同属性和操作的对象的集合
D.对象也就是类
2.判断题
√(1)模型是对现实的简化,建模是为了更好地理解所开发的系统。
×(2)在面向对象的需求分析方法中,建立动态模型是最主要的任务。
×(3)面向对象分析阶段建立的3个模型中,核心的模型是功能模型。
×(4)对象模型的描述工具是状态图。
×(5)两个对象之间的关联关系只能有一个。
3.填空题
(1)面向对象分析的首要工作是建立问题的对象模型
(2)大型系统的对象模型通常由5个层次构成,分别是主题层、类与对象层、结构层、属性层、服务层
(3)数据流图中的处理对应于状态图中的 状态或动作,数据流对应于类图的属性或方法
(4)功能模型中包含两类数据存储,分别 实体存储、关系存储
(5)对象或类之间的关系有泛化、实现、关联、聚合、组合、依赖
(6)对象模型由问题域中的对象及其类组成。
(7)对象模型的描述工具是UML
第八章
1.选择题
(1)面向对象设计阶段的主要任务是系统设计和(D)。
A.结构化设计
B.数据设计
C.面向对象程序设计
D.对象
(2) (B)是表达系统类及其相互联系的图示,它是面向对象设计的核心,是建立状态图、协作图和其他图的基础。
A.部署图
B.类图
C.组件图
D.配置图
(3)下面所列的性质中,(D)不属于面向对象设计的特性。
A.继承性
B.复用性
C.封装性
D.可视化
(4)下列是面向对象设计方法中有关对象的叙述,其中(B)是正确的。
A.对象在内存中没有它的存储区
B.对象的属性集合是它的特征表示
C.对象的定义与程序中类型的概念相当
D.对象之间不能相互通信
(5)面向对象设计中,基于父类创建的子类具有父类的所有特性(属性和方法),这一特点称为类的(C)。
A.多态性
B.封装性
C.继承性
D.复用性
(6)下列哪项不是面向对象设计的启发规则(C)
A.设计结果应该清晰易懂
B.类等级深度应该适当
C.尽量添加设计的变动
D.使用简单的协议
(7)下面哪项不是系统分解的好处?(D
A.降低设计的难度
B.有利于软件开发人员分工协作
C.有利于维护人员理解并维护系统
D.有利于增加系统依赖性
(8)不属于任务管理子系统的是(A)。
A.人机交互所需输入
B.任务的定义
C.任务的通信
D.硬件分配
(9)以下哪个是人机交互子系统设计的原因?(C)
A.系统与外界的接口是容易变动的
B.系统的服务容易变动
C.鉴别、定界、追踪和评估变动产生的影响
D.强调人如何命令系统
(10)在软件系统中,由于需求的变化,一些对象的实现可能会发生变化。为了应对这种“易变对象”的变化,人们提出了(C)。
A.工厂模式
B.外观模式
C.观察者模式
D.以上都不是
2.判断题
√(1)在面向对象的设计中,应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有信息隐藏
√(2)面向对象分析和设计活动是一个多次反复迭代的过程
×(3)关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据库中的表。
√(4)面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型。
√(5)常见的任务有事件驱动型任务、时钟驱动型任务、优先任务、关键任务和协调任务等。
×(6)设计任务管理子系统时,当系统中存在3个或3个以上的任务时,就应该增加一个任务,用它作为协调任务
√(7)用指针可以方便地实现单向关联。
×(8)如果某个关联包含链属性,不同关联重数的实现方法相同
×(9)不可以用独立的关联对象实现双向关联。
×(10)增加冗余关联可以提高访问效率。
×(11)在面向对象分析过程中,可以忽略对象模型中存在的冗余关联。
√(12)设计模式是从大量或成功实践中总结出来并被公认的实践和知识。
3.填空题
(1)数据管理子系统包括永久数据的存取,它隔离了物理的持久性存储。
(2)存储服务用来协调每个需永久保存的数据的存储。
(3)问题域子系统也称领域模型。
(4)在问题域子系统中,稳定性是在类似系统中重用分析、设计和编程结果的关键因素。
(5)系统需求最易变动的就是加工和逻辑。
(6)在设计问题域子系统的时候,对于调整需求,通常首先简单修改面向对象分析模型。
(7)面向对象技术的基本特征主要为抽象性、封装性、继承性和多态性。
(8)在调整继承层次时,使用一种只有单继承和无继承的编程语言时,需要将多继承转换为组合。
(9)在优化对象设计时,提高效率的技术有增加冗余关联、调整查询次序和保留缓存属性。
(10)软件设计模式一般分为创建型模式、结构型模式和行为型模式
第九章
1.选择题
(1)软件实现是软件产品由概念到实体的一个关键过程,它将( B )的结果翻译成用某种程序设计语言编写的且最终可以运行的程序代码。虽然软件的质量取决于软件设计,但是规范的程序设计风格将会给后期的软件维护带来不可忽视的影响。
A.软件设计
B.详细设计
C.架构设计
D.总体设计
(2)(C )是一种纯面向对象语言。
A.C
B. Pascal
C. Eiffel
D. LISP
(3)第一个体现结构化编程思想的程序设计语言是( C )。
A. FORTRAN
B.C
C. Pascal
D. COBOL
(4)面向对象设计的结果,实现时( D )。
A.只能使用面向对象语言
B.只能使用非面向对象语言
C.可以使用第四代语言
D.既可使用面向对象语言,也可使用非面向对象语言
2.判断题
×(1)C语言是一种纯面向对象语言
√(2)进行程序设计语言的选择时,首先考虑的是应用领域
√(3)良好的个人编码风格是一个优秀的程序员所应具备的素质
√(4)项目的应用领域是选择程序设计语言的关键因素
√(5)FORTRAN、Pascal、C语言和汇编语言都是科学计算中可选用的语言
3.填空题
(1)机器语言采用 0和1 为指令代码来编写程序。
(2)汇编语言采用一组助记符来代替机器语言中晦涩、难懂的二进制代码。
(3)开发软件时,应该根据待开发软件的特征及开发团队的情况考虑使用合适的编程语言。
(4)编码风格是指源程序的编写习惯,例如变量的命名规则、代码的注释方法、缩进等。
(5)注释可以分为序言注释和行内注释。
(6)注释的位置应与被描述的代码相邻,注释可以放在代码的上方或右方,不可放在下方
(7)比较知名的命名规则有微软公司的匈牙利法。
(8)标识符的长度应当符合最小长度与最大信息量原则。
(9)命名规则尽量与采用的操作系统或开发工具的风格一致。
(10)效率是对计算机资源利用率的度量。
第十章
1.选择题
(1)软件测试的目的是( B )
A.证明软件是正确的
B.发现软件的错误
C.找出软件中的所有错误
D.评价软件的质量
(2)白盒测试法又称为逻辑覆盖法,主要用于(D)
A.确认测试
B.系统测试
C. α测试
D.单元测试
(3)在软件工程中,白盒测试方法可用于测试程序的内部结构,此方法将程序作为(B)
A.循环的集合
B.路径的集合
C.目标的集合
D.地址的集合
(4)成功的测试是指运行测试用例后(A)
A.发现了程序错误
B.未发现程序错误
C.证明程序正确
D.改正了程序错误
(5)白盒测试是根据程序的(B)来设计测试用例的方法。
A.输出数据
B.内部逻辑
C.功能
D.输入数据
(6)在软件测试中,逻辑覆盖法属于(B)。
A.黑盒测试方法
B.白盒测试方法
C.灰盒测试方法
D.软件验收方法
(7)黑盒测试是从(B)角度进行的测试,白盒测试是从()角度进行的测试。
A.开发人员、管理人员
B.用户、开发人员
C.用户、管理人员
D.开发人员、用户
(8)软件测试可能发现软件中的(D),但不能证明软件()。
A.所有错误、没有错误
B.设计错误、没有错误
C.逻辑错误、没有错误
D.错误、没有错误
(9)使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。
A.程序的内部逻辑
B.程序的复杂程度
C.程序的难易程度
D.程序的功能
(10)黑盒测试方法根据( B)设计测试用例。
A.程序的调用规则
B.软件要完成的功能
C.模块间的逻辑关系
D.程序的数据结构
(11)集成测试的主要方法有两个:一个是(C);另一个是()。
A.白盒测试方法、黑盒测试方法
B.等价类划分法、边界值分析法
C.增量式测试方法、非增量式测试方法
D.因果图法、错误推测法
(12)软件测试的目的是尽可能发现软件中的错误,通常(D)是代码编写阶段可进行的测试,它是整个测试工作的基础。
A.集成测试
B.系统测试
C.验收测试
D.单元测试
(13)单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是(A)
A.系统功能
B.局部数据结构
C.重要的执行路径
D.错误处理
(14)软件维护的副作用,是指(C)。
A.运行时误操作
B.隐含的错误
C.因修改软件而造成的错误
D.开发时的错误
(15)影响软件可维护性的主要因素不包括(C)。
A.可修改性
B.可测试性
C.可用性
D.可理解性
2.判断题
√(1)软件测试是对软件需求规格说明、软件设计和编码的最全面也是最后的审查
×(2)如果通过软件测试没有发现错误,则说明软件是正确的
×(3)白盒测试无须考虑模块内部的执行过程和程序结构,只需了解模块的功能即可
√(4)软件测试的目的是尽可能多地发现软件中存在的错误,并将它作为纠错的依据
√(5)测试用例由输入数据和预期的输出结果两部分组成
√(6)白盒测试是结构测试,主要以程序的内部逻辑为基础设计测试用例。
×(7)软件测试的目的是证明软件是正确的
√(8)单元测试通常应该先进行“人工走查”,再以白盒测试为主,辅以黑盒测试进行动态测试
×(9)白盒测试是一种静态测试方法,主要用于模块测试
×(10)在等价类划分法中,为了提高测试效率,一个测试用例可以覆盖多个无效等价类
√(11)功能测试是系统测试的主要内容,用于检查系统的功能、性能是否与需求规格说明相同
×(12)适应性维护是在软件使用过程中,用户对软件提出新的功能和性能要求,为了满足这些新的要求而对软件进行修改,使之在功能和性能上得到完善和增强的活动
3.填空题
(1)在软件测试工作中,存在二八定律,即约80%的错误会集中存在于约20%的代码中。
(2)软件测试模型是指软件测试全部过程、活动或任务的结构框架。
(3)软件测试按照是否运行程序可分为静态测试和动态测试。
(4)通过描述每个经过用例的可能路径,可以确定不同的用例场景,这个流经路径要从用例
开始到结束,遍历其中所有基本流和备选流。
(5)一般在软件测试过程中,既要用到黑盒测试,又要用到白盒测试。大的功能模块采用黑盒测试,小的组件采用白盒测试。
(6)在确认测试的过程中仅使用黑盒测试技术。
(7)在进行单元测试时,被测试的单元本身不是独立的程序,需要为其开发驱动模块和桩模块。
(8)集成测试一般由测试人员和开发人员完成。
(9)功能测试是系统测试中最基本的测试,它不管软件内部是如何实现的。
(10)系统测试中,稳健性测试包含容错性测试和恢复测试。
(11)β测试由最终用户实施,通常开发组织对其的管理很少或不管理。
(12)软件维护可分为纠错性维护、适应性维护、完善性维护、预防性维护 4类。
(13)简单地说,软件部署就是将开发的软件拿给用户使用,给用户配置环境(包括硬件、软件的安装以及环境变量的设置等),使开发的软件能被用户正常使用的过程。
(14)软件再工程是一类工程活动,它将逆向工程、重构和正向工程组合起来,将现存系统重新构造为新的形式