软件工程复习题-附加答案

判断题:

软件工程决定了软件的质量;商业模式决定了一个软件企业的成败 T

软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营 维护上的过程。T

软件开发流程的目的是为了提高软件开发、运营、维护的效率,并提高软件的质量、用户满意度、可靠性和软件的可维护性。T

软件是可以运行在计算机及电子设备中的指令和数据的集合。(程序)F

软件的行为和用户的期望值一致就叫做Bug(不一致)F

单元测试应该准确、快速地保证程序所有模块的正确性。F

单元测试必须由最熟悉代码的人(程序的作者)来写T

单元测试过后,机器状态应保持不变。T

单元测试要快,一个测试的运行时间应该是几秒钟而不是几分钟。T

单元测试应该覆盖所有代码路径,包括错误处理路径。T

单元测试应该自动化,这样每个人都能随时随地运行单元测试。T

一个模块的所有单元测试就是这个模块最初的功能基准线。T

在效能分析过程中通常先用代码注入的方法对特定的模块进行详细分析,然后用抽样的方法找到效能瓶颈所在。(先用抽样的方法找到效能瓶颈所在,然后对特定的模块用代码注入的方法进行详细分析。)F

在团队工作中,稳定、一致的交付时间是衡量一个员工能力的重要方面。T

代码风格的原则是:简明,易读,无二义性T

代码注释中应当尽量减少中文或其他特殊字符的使用,这是为了提高程序的可移植性。T

代码复审的过程就是确定代码是否在代码规范的框架内正确的解决了问题。T

结对编程中,程序各方面的质量取决于一对程序员中各方面水平比较低的那一位,就像是木桶原则一样。F

瀑布模型是一个单向,不可逆的生产流程T

RUP(统一软件过程)流程在大尺度上像迭代模型,在每个阶段内像瀑布模型。(反了,每个阶段有若干次迭代组成)F

敏捷开发的原则是尽早并持续的交付有价值的软件以满足客户需求T

敏捷开发的冲刺阶段是任务驱动的,任务完成就结束。(时间驱动)F

敏捷宣言表明的是一些优先级,不必当做圣旨或者教条来争论T

创新可以分为改良型的创新和颠覆型的创新T

PM(项目经理)最大、最独特的贡献是带领团队达成最重要的目标,并保持团队的平衡。T

典型用户及包含受欢迎的典型用户,同时还要包含不受欢迎的典型用户。T

软件工程说明书,主要用来说明软件的内部功能和用户的交互情况。F

软件技术说明书,主要用来说明软件内部的设计规范。T

在需求分析阶段,我们要搞清楚用户的需求是什么,软件如何解决用户的需求。T

在设计与实现阶段,我们要搞清楚软件是怎么解决这些需求的。T

在测试和发布阶段,我们要搞清楚软件真的解决了这些需求了么。T

好的设计应当让操作者不需要花费额外的注意力,也不需要经验与专业知识即可凭直觉完成正确的操作。T

用户体验设计的一个重要目的是降低用户的认知阻力。T

认知阻力是用户对于软件界面的认知和实际结果的差异。T

大多数用户的心理是以熟练掌握认知阻力大的工具而自豪的。(躲避认知阻力,大多数人不喜欢认知。)F

黑箱测试将软件系统看作一个黑箱,无法了解或使用系统的内部结构及知识。T

白箱测试中设计者可以看到软件系统的内部结构,并使用软件的内部结构和知识来选择测试数据及具体的测试方法。T

系统测试是在软件开发的一定阶段,对软件进行全面和系统的测试,以保证软件的各个模块都能共同工作,各方面均能满足用户的要求。T

效能测试要验证的问题是:软件在超过设计负载的情况下是否仍能返回正常结果,没有产生严重的副作用或崩溃。(压力测试)F

测试在项目的最后进行就可以了(全过程)F

测试就得根据规格说明书来测,是很机械的。F

测试人员当然也写代码,但是质量不一定要很高。F

测试的时候尽量用Debug版本,便于发现Bug(早期Debug 后期Release)F

测试设计说明书告诉测试人员要如何设计测试。T

一个功能的所有测试用例合称为这个功能的测试用例集。T

Alpha版本通常指集成了主要功能的第一个试用版本。T

Beta版本通常指功能完备,稳定性高,用户可以在实际工作中直接使用。F

项目接近尾声时,要确保修复的门槛越来越高,这样才能不断提升系统的稳定性。T

重构是在尽量保持原有界面的基础上优化部分代码。T

重写是重新实现原有功能,同时,要分清是全部重写原有功能,还是加上许多新的功能。T

软件工程师的行为应与公众利益一致。T

软件工程师应以其客户和雇主利益最大化的方式做事,与公众利益保持一致。T

软件工程师应当确保自己的产品以及相关的修改满足最高的专业标准。T

软件工程师应当具备完整且独立的专业判断。T

软件项目的经理和领导人应该提倡并亲自采用符合道德规范的方法来管理软件的开发与维护。T

在于公众利益一致的原则下,软件工程师应当保证其职业的诚信和信誉。T

软件工程师应当公平对待同侪,并予以支持和帮助T

软件工程师应当终生学习以提高自身的专业水平,并在工作实践中推动落实道德准则。T

单选题

1、下面关于软件和硬件的区别错误的是?

A. 软件不会磨损但是会退化

B. 软件是纯逻辑产品

C. 软件不是制造出来的,而是开发出来的

D. 软件无法像硬件一样进行测试

(记忆:软件和硬件一样可以测试)

2、根据基本的软件过程框架,"编写代码"属于下面哪个活动?

A. 软件需求分析

B. 软件体系结构设计

C. 软件构造

D. 软件部署

(记忆:编写代码-软件构造---》编造!)

3、CMMI(能力成熟度模型集成)阶段式模型中成熟度等级中最高的是哪一级?

A. 优化级

B. 定量管理级

C. 已定义级

D. 已管理级

(记忆:最高==优化)

4、下面哪一项关于敏捷开发原则的陈述是不正确的?

A. 个体和交互重于过程和工具

B. 可运行的软件重于全面的文档

C. 客户合作重于合同的协商

D. 按计划行事重于对变化的响应

5、下列哪一种UML图能够描述用况(use case)的步骤以及步骤之间的顺序?

A. UML类图

B. UML用况图

C. UML活动图

D. UML构件图

(记忆:活动图,步骤顺序----活动顺序!)

6、下面关于分层数据流图的说法中不正确的是?

A. 数据流图中所有的加工(processing)向下分解的层数都要一样

B. 分层数据流图中的父图和子图之间的数据流要保持平衡

C. 数据流可以从一个加工流向另一个加工

D. 顶层图只有代表整个软件系统的一个唯一的加工

(记忆:分层不分量,数量可以不一样)

7、下图中右侧的数据流图针对左侧的1层图中的加工3进行了精化,请问该图(右侧的图)中哪一个数据流不满足数据流模型中父图和子图平衡的要求?

A. 数据流c

B. 数据流g

C. 数据流e

D. 数据流h

(记忆:数据流c只有一个出口就是数据流e,不能是数据流h)

8、以下关于软件体系结构的定义中最准确的一项是?

A. 一组面向对象的类以及类之间的关系

B. 组成软件系统的一组部件(或称模块、子系统)、部件之间的关系以及各个部件的外部可见属性

C. 软件系统的硬件和网络拓扑结构

D. 实现软件系统功能的算法和数据结构

(记忆:体系-部件====部系,部队系)

9、以下各项中哪一个不是一种软件体系结构风格?

A. 层次式体系结构风格

B. 管道过滤器风格

C. 观察者模式和风格

D. 以数据为中心的风格

(记忆:观察者是看不到体系内部的结构的。)

10、下列哪种UML图能够建模软件系统在运行环境中的物理结构?

A. UML部署图

B. UML类图

C. UML顺序图

D. UML状态机图

(记忆:物理结构,部署图-就是搭积木。)

11、下列关于软件体系结构的说法不正确的是?

A. 软件系统的高层设计结构

B. 往往需要从动态、静态、部署结构等多个视图进行描述

C. 可以应用体系结构模式等设计经验

D. 主要关注于对于功能性需求的实现,无需关注于非功能性需求(质量需求)的实现

(记忆:体系内外都要关注!无论是功能和非功能)

12、以下关于软件构造的说法中哪一项不正确?

A. 单元测试一般属于软件构造过程的一部分

B. 编写代码是软件构造的唯一手段

C. 模块集成一般属于软件构造过程的一部分

D. 需要根据技术、人员等多方面因素选择编程语言

(记忆:构造方法不仅仅就只有一种手段。)

13、下列这些活动哪一项不属于软件构造过程?

A. 问题定义

B. 单元测试

C. 代码编写和调试

D. 模块集成

(记忆:构造关于代码层面!不是问题定义)

14、下列哪一种关系不会导致两个类A和B之间的耦合?

A. 类A中的方法m1调用类B中的方法m2

B. 类B中的方法m访问类A中的属性p

C. 类A中的方法m访问类A中的属性p

D. 类A和类B中的方法共享一个全局变量g

(记忆:内部关系的访问不会耦合!)

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. 预防性维护

(记忆:已发现的错误,纠错性维护===错误纠错。)

21、下面关于软件的说法正确的是?

A. 在得到可运行的软件代码之前我们没有任何办法发现需求和设计缺陷

B. 软件开发缺陷从引入到被发现并解决的潜伏时间越长消除缺陷的成本越高

C. 对于一个成功的软件开发项目,其唯一的可发布产品就是可运行的程序

D. 软件开发项目落后于原定计划时总是可以通过增加程序员来赶上进度

(记忆:潜伏越长成本越高)

22、下列关于"软件危机"的表现的说法中不正确的是?

A. 软件项目的失败率很高,经常发生延误

B. 软件项目难以维护和修改

C. 软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势

D. 人们不再需要计算机软件

(人们仍然需要计算机软件)

23、根据基本的软件过程框架,"用况分析"属于下面哪个开发活动?

A. 软件需求分析

B. 软件体系结构设计

C. 软件构造

D. 软件部署

(记忆:用况分析-需求i分析=分析分析)

24、下列哪种编程语言不是高级语言?

A. Java语言

B. 汇编语言

C. C++语言

D. C#语言

(记忆:汇编不高级)

25、下列哪一种软件开发过程模型是迭代的?

A. 瀑布模型

B. V-模型

C. 增量模型

D. 螺旋模型

(记忆:螺旋-迭代)

26、能力成熟度模型CMM是一种评价什么的成熟度模型?

A. 程序员的个人开发能力

B. 软件项目的管理能力

C. 软件机构的软件过程能力

D. 项目经理的个人能力

记忆:

27、下列关于敏捷(Agile)方法的说法不正确的是?

A. 不需要编写任何开发文档

B. 以几周到几个月的时间为周期不断进行迭代,尽快、不断地发布可运行软件

C. 欢迎变化的需求,即使该变化出现在开发的后期

D. 强调软件开发中人的作用和交流的作用

(记忆:敏捷还是需要适当的文档)

28、下列哪一种UML图最适合描述软件系统的外部行为?

A. UML类图

B. UML状态机图

C. UML活动图

D. UML构件图

记忆:

29、下图中右侧的数据流图针对左侧的1层图中的加工1进行了精化,请问图中哪一个数据流不满足数据流模型中父图和子图平衡的要求?

A. 数据流a

B. 数据流b

C. 数据流c

D. 数据流f

(记忆:1的出口是b和c,右图只有b没有c)

30、下列哪些属于可能的需求获取来源?

A. 客户和用户代表

B. 与待开发软件相似的其他软件系统

C. 与待开发软件业务领域相关的法律法规

D. 以上这些都是

(记忆:获取需求的来源是各方各面)

31、以下哪一项内容不属于软件体系结构设计?

A. 一个关键部件内部的核心算法设计

B. 将系统分解为多个部件(或子系统、模块)

C. 考虑部件间的接口设计

D. 明确每个部件的外部可见属性

(记忆:体系结构不涉及算法)

32、如下图所示的这种软件体系结构风格是?

A. 管道过滤器体系结构风格

B. 层次式体系结构风格

C. 以数据为中心的体系结构风格

D. 调用和返回体系结构风格

(记忆:中间的图形是数据库的图形)

33、下列关于面向对象设计的说法不正确的是?

A. 类是一组具有相同属性和相同操作的对象的集合

B. 为了开发和集成方便,每个类都应当将自身的大多数属性和方法对外开放

C. 对象间通过消息传递的方式进行通信

D. 类与类之间相对独立但又相互协作

(记忆:属性对内方法对外)

34、下列关于软件构造中的模块集成的说法不正确的是?

A. 集成过程往往伴随着集成测试

B. 应当等所有模块开发好之后一次性完成模块集成

C. 集成之前各个模块应当都通过单元测试

D. 集成过程基于软件的设计方案

(记忆:一次性集成就晚了!)

35、下列关于白盒测试的说法中不正确的是?

A. 测试人员根据程序内部的逻辑结构及有关信息设计测试用例

B. 可以保证100%覆盖程序执行的各种可能性

C. 主要用于模块级测试

D. 目的是检查程序中不同的逻辑路径是否都按预定的要求正确地工作

(记忆:白盒测试不能做到百分之百)

36、下列软件测试方法中哪一个不属于白盒测试方法?

A. 等价类划分方法

B. 条件组合覆盖方法

C. 基本路径覆盖测试

D. 数据流测试

37、在软件的模块化设计中,下列哪种内聚度是最高的?

A. 顺序内聚

B. 逻辑内聚

C. 过程内聚

D. 功能内聚

38、下列哪一种测试不属于系统测试?

A. 恢复测试(recovery testing)

B. 安全测试(security testing)

C. 压力测试(stress testing)

D. 集成测试(integration testing)

39、根据McCall软件质量模型,以下哪一项不属于软件运行方面的质量要素?

A. 可靠性(reliability)

B. 正确性(correctness)

C. 效率(efficiency)

D. 可移植性(portability)(转移方面的)

记忆:

40、通过修改代码消除一个所发现的错误属于哪一种软件维护类型?

A. 纠错性维护

B. 适应性维护

C. 改善性维护

D. 预防性维护

(记忆:错误-纠错。)

41、下面关于软件的说法错误的是?

A. 软件也可以像汽车一样通过构件组装的方式开发

B. 软件可以通过模拟运行环境的方式进行测试

C. 软件测试无法证明软件的正确性

D. 软件只能通过编写代码这一种方式进行构造

(记忆:构造很多种。)

42、下列关于"软件危机"的原因的说法中不正确的是?

A. 客户对软件需求的描述往往不够精确

B. 软件是不可见的逻辑产品,开发进度、成本难以估计

C. 社会经济发展对于计算机软件的需求度不高

D. 软件开发缺乏有力的方法学和工具的支持

(记忆:计算机软件的需求仍然很高)

43、下列哪一项任务属于部件级详细设计?

A. 局部的算法和数据结构设计

B. 软件总体体系结构设计

C. 软件的数据库设计

D. 编写代码实现给定的功能

(记忆:算法属于详细设计)

44、下列哪种编程语言不是面向对象编程语言?

A. C语言

B. Java语言

C. C++语言

D. C#语言

(记忆:c面向过程。process)

45、下面关于瀑布模型的缺点的说法中不正确的是?

A. 开发阶段之间缺乏反馈和迭代

B. 开发早期存在的问题往往要到交付使用时才发现,解决问题的代价较高

C. 缺乏灵活性,难以适应需求不明确或需求经常变化的软件开发

D. 需要的开发人员数量比较多、开发团队庞大

(记忆:瀑布的缺点不是人数)

46、能力成熟度模型CMM是一种评价什么的成熟度模型?

A. 程序员的个人开发能力

B. 软件项目的管理能力

C. 软件机构的软件过程能力

D. 项目经理的个人能力

(记忆:CMM是注重过程的)

47、敏捷(Agile)开发方法强调"可运行软件的价值高于详尽的文档"的主要原因是?

A. 编写文档会浪费时间

B. 能够尽早开展软件测试活动

C. 让客户和用户通过可运行的软件更好地了解当前的软件开发状况,从而从他们那里获得快速和有价值的反馈

D. 加快项目开发的进度

(记忆:敏捷的原因是客户。户敏-沪闵)

48、下列哪一种UML图能够反映对象间消息发送的先后顺序?

A. UML顺序图 B. UML类图 C. UML活动图 D. UML构件图

(记忆:顺序顺序)

49、按照下面的数据流图,哪些加工(processing)产生了加工4所需的输入数据流?

A. 加工5

B. 加工1和加工2

C. 加工3和加工5

D. 加工1、加工2和加工5

50、下列哪一项不属于一种需求获取方法?

A. 现场观察

B. 客户访谈

C. 调查问卷

D. 编写测试用例

(记忆:测试不获取需求)

51、下面这些关于软件设计模式的说法中不正确的是?

A. 设计模式代表着一种软件设计经验

B. 设计模式可以像软件构件一样通过接口调用的方式进行复用

C. 应用设计模式往往有利于软件设计的可扩展性和可维护性

D. 设计模式的描述一般包括所针对的问题、上下文、解决方案及其优缺点的描述等

(记忆:设计模式不是接口)

52、如下图所示的这种软件体系结构风格是?

A. 管道过滤器体系结构风格

B. 层次式体系结构风格

C. 以数据为中心的体系结构风格

D. 调用和返回体系结构风格

(记忆:**层)

53、软件设计中模块的内聚度是指?

A. 一个模块中的内部信息对外隐藏的程度

B. 一个模块内部的代码行数

C. 一个模块内部各个元素彼此结合、紧密相关的程度

D. 一个模块与其他模块之间的关联程度

(记忆:各元素)

54、下列这些活动哪一项不属于软件构造过程?

A. 问题定义

B. 单元测试

C. 代码编写和调试

D. 模块集成

55、在软件的模块化设计中,下列哪种耦合度是最高的?

A. 数据耦合

B. 内容耦合

C. 控制耦合

D. 公共耦合

记忆:

56、下列哪一种测试类型能够发现模块间的接口兼容性问题?

A. 集成测试

B. 回归测试

C. 单元测试

D. 白盒测试乳品

记忆:

57、下列关于黑盒测试的说法中不正确的是?

A. 测试人员根据程序内部的逻辑结构及有关信息设计测试用例

B. 可以检查软件的接口错误,如输入/输出参数的个数、类型等

C. 按照软件的需求规约检查程序的功能是否符合需求规约的要求

D. 等价类划分是一种黑盒测试方法

(记忆:黑盒测试和内部没有关系)

58、按照软件测试的V模型,下面哪一种测试与软件需求分析相对应?

A. 系统测试

B. 确认测试

C. 集成测试

D. 单元测试

记忆:

59、根据McCall软件质量模型,以下哪一项不属于软件修改(revision)方面的质量要素?

A. 效率(efficiency)(运行方面)

B. 可维护性(maintainability)

C. 灵活性(flexibility)

D. 可测试性(testability)

60、下列哪一种软件度量指标可以用于衡量软件项目的开发工作量?

A. 内聚度与耦合度

B. 功能点度量

C. 圈复杂度

D. 缺陷密度

61.下面关于软件的说法正确的是?

A.功能正确性是对软件产品唯一的质量要求

B.软件无法测试,只能在使用中发现问题

C.大规模、复杂软件系统的开发应当遵循工程化的软件开发过程

D.通过对软件进行完整、详细的测试可以证明软件的正确性

(记忆:大规模-工程化。)

62.下面哪一项活动不属于GB/T 8566-2007《软件生存周期过程》中的基本过程?

A.软件需求分析

B.软件体系结构设计

C.软件详细设计

D.技术评审

(记忆:生存周期要么分析要么设计。)

63.下面哪一种软件开发过程模型不属于演化模型?

A.增量模型

B.螺旋模型

C.瀑布模型

D.原型模型

记忆:

64.下面哪一种思想不属于面向对象开发方法所特有的(相对于结构化开发方法)?

A.继承

B.逐步精化

C.类和对象

D.封装

(记忆:面向对象的特点:类 继承和封装)

65.下列哪一种关系属于面向对象中类之间的继承关系?

A.汽车与交通工具

B.汽车与发动机

C.汽车与驾驶员

D.汽车与道路

66.下面哪一项属于"汽车"的对象属性(即每个对象所独立拥有的属性)?

A.牌照号

B.发动汽车

C.汽车总数量

D.刹车

67.面向对象开发方法中的多态性是指?

A.对象可以具有多种不同的状态

B.同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果

C.对象可以拥有多个不同的操作

D.一个类可以从多个类那里继承而来

(记忆:多态:一个方法,不同的参数)

68."响应时间不能超过1秒"属于下列哪一种需求?

A.功能性需求

B.性能需求

C.安全性需求

D.可靠性需求

(记忆:1秒性能)

69.下面哪一种图不能被用于描述软件需求?

A.UML用况图

B.UML活动图

C.UML构件图

D.数据流图

(记忆:构件图属于物理组件)

70.下列哪一种UML图可以描述一个用况中不同场景的执行路径?

A.活动图

B.用况图

C.类图

D.部署图

(记忆:活动图=数据流图。执行路径。)

71.下面哪一项不属于软件设计的目的?

A.建立将要实现的软件系统的总体蓝图

B.按照设计方案分解开发任务,从而分配给不同的开发者

C.明确软件的设计要求

D.定义各部分之间的约定和规范,保证各部分能顺利集成

(记忆:设计无法做到居无巨细的明确)

72.以下哪一项内容不属于软件体系结构设计?

A.一个关键部件内部的核心算法设计

B.将系统分解为多个部件(或子系统、模块)

C.考虑部件间的接口设计

D.明确每个部件的外部可见属性

(记忆:软件体系结构属于概要设计,不是详细设计。)

73.在文字编辑软件中记录并提供"最近使用过的文件"的功能遵循了以下哪一项用户界面设计原则?

A.减少用户的记忆负担

B.保持界面设计的一致性

C.允许用户交互随时被中断和撤销

D.允许用户对交互模式进行定制

(记忆:最近**减少记忆)

74.下面哪一项符合信息隐藏的设计准则?

A.使用模块间共享的全局变量

B.模块向外部开放所有内部数据结构

C.模块间完全独立、不进行任何通信

D.模块间通过受控的接口进行通信

(记忆:接口是隐藏的。)

75."重新执行已经进行过测试的子集以确保对程序的修改没有产生副作用"描述的以下哪一种软件测试类型?

A.集成测试

B.单元测试

C.回归测试

D.系统测试

(记忆:重新执行-回归测试:重新回归)

76."确定错误的原因和准确位置并加以纠正"是下列哪一项活动的目的?

A.白盒测试

B.黑盒测试

C.代码评审

D.调试

(记忆:调试debug)

77."等价类划分"属于以下哪种软件测试类型?

A.白盒测试

B.黑盒测试

C.单元测试

D.集成测试

78.修改软件使其能够在新的操作系统上运行属于哪一种软件维护类型?

A.纠错性维护

B.改善性维护

C.适应性维护

D.预防性维护

(记忆:适应新的操作系统)

79.以下哪一项不属于可复用软件构件的典型特征?

A.清晰的外部接口和良好的可组装性

B.良好的封装型、易于定制和组装

C.实现较为简单的功能

D.设计和实现具有较高的通用性

(记忆:既然可复用就要复杂,不要简单的功能)

80.下列哪一项不属于软件配置管理的任务?

A.版本控制

B.模块集成

C.变更控制

D.配置审计

(记忆:配置是做外围的工作)

81.下面关于软件的说法正确的是?

A.在软件能够完全运行起来之前我们没有办法对其质量进行评价

B.当软件开发项目落后于原定计划时,我们可以通过调入更多的程序员来赶上进度

C.一个成功的项目唯一的可发布产品就是可运行的程序

D.不管什么类型的软件都会在其生命周期内随着时间不断演化

82.以下哪一项不属于瀑布模型的基本假设

A.需求在实现之前是已知的

B.客户在每一个阶段都会提供反馈意见

C.需求与系统的所有主要涉众(stakeholder)的期望相符

D.需求不会有太大改变

83.下列关于敏捷软件开发的指导思想的描述中哪一项是不正确的?

A.高质量的文档是传达信息最高效的一种方法

B.即使在软件开发项目的后期,需求变更也是受欢迎的

C.可运行的软件是衡量软件开发项目进度的主要方法

D.应当尽早和持续地交付有价值的软件来满足客户

84.下列关于面向对象开发方法中的封装(encapsulation)思想的说法不正确的是?

A.封装是一种信息隐藏技术

B.对象的使用者只能看见对象封装界面上的信息,而其内部实现是不可见的

C.对象应该尽可能将其内部属性和操作对外开放

D.目的是使对象的使用者和生产者分离,使对象的定义和实现分开

85.下列哪一种关系属于面向对象中类之间的聚集关系?

A.汽车与交通工具

B.汽车与发动机

C.汽车与驾驶员

D.汽车与道路

86.类A访问了全局变量x,调用了类B的方法m1;类B访问了全局变量y,调用了类C的方法m2;类D访问了全局变量x,调用了类C的方法m2。根据以上描述,类A和哪些类存在耦合关系?

A.类B

B.类B、类D

C.类B、类C

D.类C、类D

87.下列关于面向对象分析中"出版物"、"图书"、"报纸"之间的关系的说法中不正确的是?

A."图书"是"出版物"的子类

B.可以将"出版物"定义为抽象类

C."图书"类具有"出版物"类的所有属性,并且不能定义其他新的属性

D."报纸"是"出版物"的子类

88."用户学习该软件用户界面使用方法的时间少于10分钟"属于下列哪一种需求?

A.易用性(usability)需求

B.性能(performance)需求

C.安全性(security)需求

D.可靠性(reliability)需求

89.下列关于数据流模型的说法中不正确的是?

A.可以描述各项功能之间的数据流向

B.支持层次化的分解和逐层精化

C.可以描述实体之间的继承关系

D.支持对数据流的结构化定义

90.下列哪种UML图可以描述一个软件系统在运行时所涉及的硬件结点以及各个结点上驻留的软件模块或部件?

A.活动图

B.顺序图

C.构件图

D.部署图

91.模块化设计中模块的功能独立性可以用模块的什么指标来衡量?

A.内聚度和耦合度

B.圈复杂度

C.代码长度

D.模块数量

92.以下关于模块化设计的说法中正确的是?

A.随着模块数量的增加,模块集成的成本会上升

B.模块数量越少越好

C.每个模块越小越好

D.模块数量越多越好

93.以下哪一项不属于详细设计的范畴?

A.细化的类和接口设计

B.模块内部数据结构设计

C.整体的体系结构风格设计

D.模块内部算法设计

94.下列哪一项不属于软件的可维护性的一部分?

A.可理解性(understandability)

B.可靠性(reliability)

C.可修改性(modifiability)

D.可移植性(portability)

95.按照软件测试的V模型,下列哪种测试类型与软件设计相对应?

A.单元测试

B.集成测试

C.确认测试

D.系统测试

96.下列软件测试方法或测试准则中哪一项不属于白盒测试?

A.逻辑覆盖测试

B.基本路径覆盖测试

C.数据流测试

D.等价类划分测试

97.下列关于软件测试的说法中不正确的是?

A.软件测试是为了在发布之前发现错误

B.测试不是唯一的软件质量保障手段

C.回归测试能够帮助开发人员确保不会因代码的修改而引入新的错误

D.集成测试只能在所有模块都完全集成在一起之后才能进行

98.以下哪一种活动能够在不改变软件的外部行为的情况下改善软件的设计?

A.软件重构

B.逐步求精

C.模块化设计

D.封装

99.根据McCall软件质量模型,以下哪一项属于软件运行方面的质量要素?

A.可靠性(reliability)

B.可维护性(maintainability)(修正方面的)

C.可复用性(reusability) (转移方面的)

D.可移植性(portability)(转移方面的)

100.下列哪一项不属于软件配置管理的目的?

A.预测变化

B.报告变化

C.识别变化

D.控制变化

多选题

  1. 软件工程的核心部分包括哪些软件开发活动?
  1. 构建管理

  2. 软件设计

  3. 软件测试

  4. 项目管理

  5. 软件工程包含以下哪些领域?

  1. 软件需求分析

  2. 软件构建

  3. 软件维护

  4. 软件测试

  5. 软件有各种形式,通常包含以下哪些?

  1. 系统软件

  2. 应用软件

  3. 恶意软件

  4. 杀毒软件

  5. Bug的多少通常可以用来评价软件的哪些特性?

  1. 用户满意度

  2. 可靠性

  3. 软件流程的质量

  4. 可维护性

  5. 软件工程的目标有哪些?

  1. 研发出符合用户需求的软件

  2. 通过一定的软件流程,在预计的时间内发布"足够好"的软件

  3. 能证明所开发的软件是可以维护和继续发展的

  4. 开发出一个没有bug的软件

  5. 针对一个Bug Fix,我们需要做Regression Test的原因是(回归测试)

  1. 验证新的代码的确改正了缺陷。

  2. 确保新的代码没有产生新的缺陷。

  3. 验证新的代码有没有破坏模块的现有功能。

  4. 确保新的代码产生了新的功能。

  5. 在VSTS中通常可以选择的分析方法有( Microsoft Visual Studio 2005 Team System )

  1. 抽样

  2. 抽象

  3. 代码注入

  4. 样本分析

  5. 卡内基梅隆大学用以衡量一个软件开发团队能力的模型是

  1. CMM(能力成熟度模型)

  2. CMU

  3. 演化 I(CMMI)

  4. PSP

  5. 初级软件工程师的成长方向包含哪些

  1. 积累软件开发相关的知识

  2. 积累问题领域的知识和经验

  3. 对通用的软件设计思想和软件工程思想的理解

  4. 提升职业技能

  5. 软件开发的工作量和质量怎么衡量

  1. 项目/人物有多大

  2. 花了多少时间

  3. 质量如何

  4. 是否按时交付

  5. 代码规范一般包含哪些部分

  1. 代码风格规范

  2. 代码设计规范

  3. 代码书写规范

  4. 代码结构规范

  5. 代码设计中对于类的约定俗成有哪些

  1. 使用类来封装面向对象的概念和多态

  2. 避免传递类型实体的值,应该用指针传递

  3. 对于有显式的构造和析构函数的类,不要建立全局的实体

  4. 仅在必要时,才使用"类"

  5. 代码复审的形式包含哪些

  1. 自我复审

  2. 同伴复审

  3. 团队复审

  4. 结对复审

  5. 代码复审的核查表通常包含哪些

  1. 概要部分

  2. 设计规范部分

  3. 具体代码部分

  4. 效能与可测试性

  5. 两人合作的不同阶段有哪些

  1. 萌芽阶段

  2. 磨合阶段

  3. 创造阶段

  4. 解体阶段

  5. 影响他人几种方式中,属于感性出发点的有哪些

  1. 断言 Assertion

  2. 桥梁 Bridge

  3. 说服 Persuasion

  4. 吸引 Attraction

  5. 团队的共同特点包括哪些

  1. 团队有一致的集体目标,团队要一起完成这目标

  2. 团队有不同的个人目标,人与人之间存在竞争关系

  3. 团队成员有各自的分工,互相依赖合作,共同完成任务

  4. 团队成员依据个人目标进行分工,相互合作与竞争,完成集体目标

  5. 软件团队模式中围绕核心人物组成的团队通常是哪几个

  1. 主治医师模式

  2. 明星模式

  3. 交响乐团模式

  4. 爵士乐模式

  5. 软件开发流程中主要的模式有哪些

  1. 瀑布模型及其变种

  2. RUP统一流程模型

  3. 老板驱动的流程模型

  4. 渐进交付式的流程MVP和MBP

  5. RUP通常包含哪几个阶段

  1. 初始阶段

  2. 细化阶段

  3. 构造阶段

  4. 交付阶段

  5. 迭代式开发流程中终止迭代的条件有哪些

  1. 时间到了

  2. 钱花光了

  3. 用户满意了

  4. 完成了计划的迭代次数

  5. 敏捷流程包含哪些步骤

  1. 找出完成产品需要做的事情

  2. 决定当前的冲刺需要解决的事情

  3. 冲刺

  4. 得到软件的一个增量版本,发布给用户。

  5. 敏捷对团队的要求包含哪些

  1. 自主管理

  2. 自我组织

  3. 多功能型

  4. 自适应型

  5. 敏捷的方法论有哪些

  1. FDD

  2. SCRUM

  3. 极限编程(XP)

  4. TDD

  5. 软件团队获得软件需求包含哪些步骤

  1. 获取和引导需求

  2. 分析和定义需求

  3. 验证需求

  4. 在软件产品的生命周期中管理需求

  5. 软件的需求包含哪些方面

  1. 对产品功能性的需求

  2. 对产品开发过程的需求

  3. 非功能性需求

  4. 综合需求

  5. 软件产品的利益相关者有哪些

  1. 用户

  2. 顾客

  3. 系统/应用集成商

  4. 软件工程师

  5. 用户调研采用的方式有哪些

  1. 焦点小组模式

  2. 卡片分类模式

  3. 用户调查问卷模式

  4. 用户日志研究模式

  5. 敏捷开发中常用的进度预估法有哪些

  1. 估计扑克牌

  2. 划拳估计法

  3. T恤尺寸法

  4. 掷骰子法

  5. 软件工程领域的PM通常指代以下哪些职位

  1. Product Manager(产品经理)

  2. Project Manager(项目经理)

  3. Program Manager(微软的职位名称)

  4. Performance Manager

  5. 风险的类别包含以下哪些

  1. 人员风险

  2. 流程风险

  3. 技术风险

  4. 环境风险

  5. 风险管理水平通常包含哪些层次

  1. 大问题(Crisis)

  2. 缓和并防止问题(Mitigation&Prevention)

  3. 预计问题(Anticipation)

  4. 变问题为机遇(Opportunity)

  5. 一个合适的PM应当具备哪些能力

  1. 观察、理解和快速学习能力

  2. 分析管理能力

  3. 一定的专业能力

  4. 自省的能力

  5. 一个用户登陆的场景中通常可以分为哪些项

  1. UI层

  2. 逻辑层

  3. 数据库

  4. 物理层

  5. 用例(Use Case)通常包含哪些基本元素

  1. 标题

  2. 角色

  3. 主要成功场景

  4. 扩展场景

  5. 功能驱动设计(FDD)由哪些步骤组成

  1. 构造总体模型与功能列表

  2. 制定开发计划与功能设计

  3. 测试功能

  4. 实现具体功能

  5. 以下哪些图可以用来表达实体和实体之间的关系

  1. 思维导图

  2. 实体关系图

  3. 用况图或用例图(UCD)

  4. 数据流图

  5. 诺尔曼阐述的设计的三个层次是

  1. 本能层次

  2. 行为层次

  3. 反思层次

  4. 理想层次

  5. BUG一般分解为

  1. 症状

  2. 程序错误

  3. 根本原因

  4. 具体缺陷

  5. 功能测试包含下列哪些

  1. 单元测试

  2. 集成测试

  3. 系统测试

  4. 压力测试

  5. 非功能测试包含下列哪些

  1. 场景测试(功能测试)

  2. 效能测试

  3. 兼容性测试

  4. 软件安全性测试

  5. 压力测试中增加负载的方式通常有

  1. 沿着用户轴延长

  2. 沿着时间轴延长

  3. 减少系统可用资源

  4. 缩短系统运行时间(做不到)

  5. 以下属于测试用例设计的方法有哪些

  1. 等价类划分

  2. 边界值分析

  3. 决策表、因果图和功能图方法

  4. 正交实验设计方法

  5. 对于每一个bug,会诊小组要决定采取哪些行动

  1. 修复

  2. 本来就是这样设计

  3. 不修复

  4. 推迟发布

  5. 成功企业在创新方面的天然困境有哪些

  1. 要满足股东们的期望值

  2. 要拥有追逐利润的价值观

  3. 要遵循传统的流程

  4. 要重视客户的要求

  5. 在技术成熟度曲线中包含哪些阶段

  1. 技术触发期

  2. 期望膨胀期

  3. 低调发展期

  4. 主流发展期

  5. 影响产品竞争力的主要因素有哪些

  1. 产品行业的因素

  2. 公司和市场的因素

  3. 团队执行的因素

  4. 产品的价值因素

  5. 在采用队友评估的机制判断工作量时,通常包含哪些评价标准。

  1. 技术等级或技术能力

  2. 劳动生产力或结果

  3. 对团队的贡献

  4. 对产品的贡献

  5. 在团队中解决争端可以采用哪些方法。(各有利弊)

  1. 投票

  2. 咨询

  3. 独裁

  4. 交换决定权

  5. 在团队合作的创造阶段,通常有哪些特性。

  1. 团队公开地讨论流程和工作的方式(不关心)
  2. 团队知道为何而战,并将注意力集中到如何创造、实现目标上。
  3. 高度自治,不再需要领导的教诲与介入
  4. 角色和职责能够根据项目的要求自然转换,没有人为此担心或抱怨。

填空题

1、计算机软件主要包括____。 程序和文档

2、将软件开发过程分为若干阶段,每个阶段接受上一阶段的结果作为本阶段的输入,各个阶段以线性的方式依次进行的软件开发过程模型是_____________。瀑布模型

3、在面向对象方法中,一组具有相同属性和相同操作的对象的集合称为____________。类

4、使用系统的一个特定情节或用况的一条执行路径(即用况实例)被称为__________。场景

5、要求"模块的内部实现对外隐藏,仅允许外界通过受控的接口访问模块的数据和操作"的软件设计原则叫__________________________。信息隐藏

6、在下面所示的类图中,类A的子类包括_____________。B和C

7、如下图这样的继承关系称为__________________________继承。多重继承

8、如下图所示的这种UML活动图被称为_____________________图。泳道图

9、契约式设计中常用的三种断言是先验条件、后验条件和不变式。

10、白盒测试中的语句覆盖准则是指被测程序的每个可执行语句都至少执行一次。

11、极限编程(Extreme Programming,简称XP)是一种_____________软件开发方法。敏捷

12、请列举3种基于计算机的系统中的系统元素类型____________________________。软件、硬件、网络基础设施、人员、数据库、文档、规程

13、使用系统的一个特定情节或用况的一条执行路径(即用况实例)被称为 场景_。

14、要求"模块的内部实现对外隐藏,仅允许外界通过受控的接口访问模块的数据和操作"的软件设计原则叫_信息隐藏____。

15、在面向对象方法中,没有实例的类称为________________________类。抽象

16、重新执行已经通过的测试用例集合的子集以确保对程序的修改没有产生副作用的测试种类称为_____________________。回归测试

17、面向对象方法中,"同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果"这一机制被称为______________________。多态性

18、UML图中描述特定场景下交互各方消息发送和接收的顺序的是_____顺序_____图。

19、请用一句话简要概括下面这幅UML类图中线(line)与点(point)之间的关联关系所反映的含义:2条或2条以上的线交于0个或1个点__。

20、按照软件模块化设计的思想,各个模块应该具有高内聚低耦合的特性。

21、请列举两种除瀑布模型之外的软件开发过程模型:演化模型、螺旋模型、喷泉模型、基于构件的开发模型、形式方法模型。

22、极限编程(Extreme Programming,简称XP)是一种___敏捷_____软件开发方法。

23、在面向对象方法中,"汽车"与"交通工具"之间的关系被称为__继承__关系。

24、软件模块化设计中衡量一个模块与其他模块之间的关联程度的指标是__耦合___度。

25、在面向对象方法中,类的实例被称为___对象____。

26、在UML类图中,表示整体与部分之间关联关系的是_聚集__关系。

27、软件体系结构设计主要包括一组软件部件、_部件之间的关系、部件的外部可见属性_这三部分内容。

28、重新执行已经通过的测试用例集合的子集以确保对程序的修改没有产生副作用的测试种类称为_回归测试___。

29、白盒测试的基本思想是__测试人员根据程序内部的逻辑结构及有关信息设计测试用例,覆盖不同的逻辑路径____。

30、软件测试中等价类划分方法中的"等价类"的含义是_输入域的一个子集,该子集中的每个输入数据对揭露软件中的错误都是等效的____。

31.在基本的软件开发过程中解决"做什么"问题的开发活动是__需求分析___。

32.按照下图中的数据流描述,加工3的输入数据流包括____ c、d _______?

33.在下面所示的类图中,类A与类__ C _____之间的关系属于"整体-部分"关系。

34.描述一个软件系统在运行时所涉及的硬件结点以及各个结点上驻留的软件模块或部件的UML图是_____________________图。部署

35.同时继承"陆上交通工具"和"水上交通工具"的类是 水陆两栖交通工具_。

36.下面这个UML图中所描述的关系是__________实现__关系。

37.不能进行实例化的类称为_________抽象_________类。

38.根据程序内部的逻辑结构及有关信息设计测试用例的软件测试称为____白盒_____测试。

39.软件测试中的语句覆盖是指____选择一组测试用例使得被测程序的每个可执行语句都至少执行一次___________________。

40.McCall软件质量模型中属于产品运行维度的质量要素包括(任意列举两种)正确性、易用性、效率、可靠性、完整性_________________________。

41.面向对象方法中一个对象通常由对象名、___________和___________三部分组成。属性、操作

42.面向对象方法中一组具有相同属性和相同操作的对象的集合称为____类____。

43.在下面所示的类图中,类__ D ___拥有类A和类B中所有定义的所有属性和操作

44.面向对象方法中"在程序运行时才将消息所请求的操作与实现该操作的方法连接起来"的机制被称为_______________________________________动态绑定

45.包括一组软件部件、软件部件的外部属性、软件部件之间关系的软件设计是_____________________________________________软件体系结构

46.白盒测试中的条件覆盖是指_____程序的每个判定中的每个条件分支都至少被执行一次____

47.程序调试的目的是____确定错误的原因和准确位置并加以纠正________

48.面向对象软件设计中的"开闭原则"是指___一个模块应该对扩展开放对修改封闭_____

49.如下图所示的用况图中包含_____________个用况、_____________个参与者3、2

50.面向对象设计中模块的耦合度是指___不同的模块间相互联系和依赖的程度____

综合题

1,一个信用卡申请系统的基本功能描述如下。

客户向系统提交信用卡申请。申请接收功能接收信用卡申请并将其记录到信用卡数据库中。预处理功能从信用卡数据库中读取信用卡申请并对申请信息进行初步检查。对于不符合要求的申请,这个预处理功能会生成无效的信用卡申请反馈给客户。对于符合要求的申请,这个预处理功能会向信用检查功能提供一个有效申请列表。信用检查功能从一个外部信用机构获得信用记录,并以此为基础检查申请人的信用。对于那些未通过信用检查的申请,信用检查功能会向客户发送一个未通过的申请反馈。对于通过信用检查的申请,信用检查功能会生成一个审批通过的申请列表并提供给发卡功能。最后,发卡功能生成信用卡并将它们发送给客户

分析上面这个系统的数据流并且回答以下问题。

1)画出该系统的顶层数据流图

2)画出该系统的1层数据流图

2,一个招聘信息管理系统的描述如下。

在每一个招聘季,每个部门的部门秘书向系统提交职位列表和职位要求。"招聘准备"功能接收职位列表和职位要求,将它们记录到招聘数据库中,同时向外部的求职网站发布招聘广告。对这些职位感兴趣的求职者向招聘系统提交申请表格。"申请接受"功能接收申请表格,从招聘系统中读取职位要求,然后产生一个申请列表并发送给一个外部的能力测试系统。能力测试系统将能力测试结果发送给"最终决定"功能。该功能产生一个推荐列表给经理,并从经理那里获得通过的申请者列表,然后生成最终招聘列表并将其记录到招聘数据库中。最后,"通知"功能从招聘数据库中读取最终的招聘列表,然后向申请者发送招聘通知,同时向部门秘书发送新员工列表。

分析上面这个系统的数据流并且回答以下问题:

  1. 画出该系统的顶层数据流图
  1. 画出该系统的1层数据流图

3,根据以下所述的在线购物系统的需求画出相应的UML类图。

系统中有很多产品出售,每件产品都有产品ID、名称、价格和产品描述。系统记录客户信息,包括客户ID、姓名和年龄。客户分为VIP客户或者普通客户。每一个客户可以有多个订单。每一个订单有订单ID和时间,并包含至少一个订单条目。每一个订单条目对应于一件产品,同时记录该产品的数量。每一个订单对应于一个付款信息,这个付款信息包括支付时间、支付方式和支付结果。

4,根据以下所述的学术会议论文发表信息系统的需求画出相应的UML类图。

每一个研究人员都有姓名、所属机构以及电子邮箱地址。每一个会议论文集都有会议名称、会议地点以及日期,并包含一个或者多个研究人员作为论文集的编辑,同时包含一系列(1篇或1篇以上)的论文。每一篇论文都有标题、摘要、页数,并包含一个或多个作者(这些作者也都是研究人员)。论文包含三类,包括墙报、短文和长文。)

5,对于以下所述的出版物领域的需求画出相应的UML类图。

出版物领域中所涉及的业务类包括:出版物、数字图书、纸质图书、CD、人、作者、编辑。

他们的关系和属性如下:数字图书和纸质图书都是一种出版物;作者和编辑都是一种人;每一本纸质图书可以没有或者包含一张或多张CD作为附录;每一个出版物都有一个ISBN号、标题、页数、价格,包含一个或者多个作者并对应唯一的一个编辑;每一本数字图书有一个文件格式的属性,而每一本纸质图书都有一个印刷规格的属性;每一个人都有ID、姓名、性别和生日的属性。

6,某个银行支持两类账户:支票账户和储蓄账户。每个账户(无论支票账户还是储蓄账户)都需要记录账户号和余额,同时与一个客户相关联。客户需要记录身份证号、姓名、性别和出生日期。此外,支票账户需要记录最近一笔存款的金额,而储蓄账户则需要记录累计利息。

7.用况分析与建模

一个网上购物系统为用户提供了网络购物支持。使用该系统,用户在第三方支付系统的支持下进行商品的选择和购买。用户还可以查询订单状态。此外,网上商城的工作人员可以对支付成功的用户订单进行处理。

1)根据以上描述分析该网上购物系统的用况并用一个UML用况图进行描述

2)根据以下描述分析"订单处理"用况并用一个UML泳道图描述该用况

进入订单处理后,系统首先列出待处理的订单。工作人员查看订单列表并决定是否继续。如果选择结束处理,那么当前订单处理过程结束。否则(即选择继续处理)工作人员选择其中一个订单,接下来系统显示该订单的详细信息。工作人员检查订单详细信息并决定该订单是否可以进行配送。如果暂时不能配送,那么工作人员返回查看订单列表。如果可以配送,那么系统发送一个配送单给第三方配送系统。第三方配送系统接收配送单之后,该工作人员返回查看订单列表。

8、用况分析建模。

一个图书馆管理系统是为读者和图书馆工作人员提供服务的系统。读者可以在图书馆工作人员的帮助下,一起完成开设账户、借书和还书的过程。读者也可以通过网页独自完成预约图书的过程。

1)根据上面的描述画出这个图书馆管理系统的UML用况图

2) 根据下面的描述用UML泳道图来描述"借书"这个用况

一个读者把图书和他的读者卡交给图书馆工作人员。工作人员扫描图书的条形码,然后通过图书馆管理系统检索并展示图书信息。如果这本书已经被其他读者预约,那么工作人员会告诉读者这本书现在不能出借,然后将读者卡还给读者,借书过程结束。如果这本书没有被其他读者预约,那么工作人员扫描读者卡,然后通过图书馆管理系统获取并显示读者信息。如果读者没有未缴纳的罚款,那么系统将记录本次借书信息,然后工作人员将书和读者卡还给读者,借书过程结束。如果读者有未缴纳的罚款,那么工作人员告诉读者需要支付罚款。如果读者选择支付,那么工作人员接收付款,系统更新罚款信息、记录本次借书信息,然后工作人员将书和读者卡还给读者,借书过程结束。如果读者选择本次不支付,那么工作人员将读者卡还给读者,借书过程结束。

9,某模块的流程图如下图所示。试分别根据判定覆盖、条件覆盖、路径覆盖这三种覆盖标准设计最少的测试用例。对于每个测试用例,列出其测试数据(即变量X和Y的值)、预期的输出结果、程序的执行路径(按照语句的标号列出路径)。

  1. 按照判定覆盖设计最少的测试用例

最少3个用例

|-------------|------|-------|
| 测试数据 | 预期结果 | 执行路径 |
| X=80, Y=80 | T=1 | abcg |
| X=10, Y=20 | T=2 | abdeg |
| X=55, Y=100 | T=3 | abdfg |

  1. 按照条件覆盖设计最少的测试用例

最少2个用例

|------------|------|-------|
| 测试数据 | 预期结果 | 执行路径 |
| X=90, Y=30 | T=3 | abdfg |
| X=10, Y=95 | T=2 | abdeg |

  1. 按照路径覆盖设计最少的测试用例

最少3个用例

|-------------|------|-------|
| 测试数据 | 预期结果 | 执行路径 |
| X=80, Y=80 | T=1 | abcg |
| X=10, Y=20 | T=2 | abdeg |
| X=55, Y=100 | T=3 | abdfg |

相关推荐
帅次4 小时前
系统分析师:系统规划与分析的业务流程分析、业务流程图、数据与数据流程分析和系统方案建议
流程图·软件工程·软件构建·需求分析·敏捷流程·设计规范·规格说明书
CH3_CH2_CHO1 天前
【软件工程】简答题知识点
软件工程
SoftwareTeacher1 天前
Cax项目软件工程质量提升建议
软件工程
SoftwareTeacher1 天前
NeuroQuant 项目软件工程质量提升建议
软件工程
张较瘦_1 天前
[论文阅读] AI + 软件工程 | 首测GPT-4.1/Claude Sonnet 4适配能力:LLM多智能体在SE领域的潜力与局限
论文阅读·人工智能·软件工程
SoftwareTeacher1 天前
FocusPet - 项目软件工程质量提升建议
软件工程
CH3_CH2_CHO1 天前
【软件工程】题解
软件工程
未可知7771 天前
软件设计师(上午题6)、软件工程
软件工程
brave and determined3 天前
接口通讯学习(day05):智能手机的内部高速公路:揭秘MIPI CSI与DSI技术
学习·智能手机·软件工程·制造·csi·mipi·dsi