软件工程复习题(1)

更新时间:2024-05-11 13:27:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

软件工程习题参考答案

第一章 1﹑软件产品的特性是什么?

产品特性: ⑴是一种逻辑产品,与物质产品有很大的区别。⑵软件产品的生产主要是研制,生产成本主要在开发和研制,开发研制完成后,通过复制就产生了大量软件产品。⑶软件产品不会用坏,不存在磨损,消耗。 ⑷生产主要是脑力劳动,还未完全摆脱手工开发方式,大部分产品是\定做\的⑸开发软件的费用不断增加,致使生产成本相当昂贵。

3﹑什么是软件危机?产生原因是什么?

软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。

产生原因:造成软件危机的原因是:(1)软件的规模越来越大,结构越来越复杂。(2)软件开发管理困难而复杂。 (3)软件开发费用不断增加。(4)软件开发技术落后。(5)生产方式落后。 (6)开发工具落后,生产率提高缓慢。

4﹑什么是软件工程?它目标和内容是什么? 软件工程就是(参看IEEE的定义)。

软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。 软件工程内容:研究内容包括开发技术和开发管理两个方面。 开发技术主要研究:软件开发方法,开发过程,开发工具和环境。 开发管理主要研究:软件管理学,软件经济学,软件心理学。 5﹑软件工程面临的问题是什么?

软件工程需要解决的问题:软件的费用,可靠性,可维护性,软件生产率和软件的重用。 6﹑什么是软件生存周期?它有哪几个活动?

软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。

包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。 7﹑什么是软件过程模型?有哪些主要模型?

软件过程模型主要有:瀑布模型,原型模型、快速应用开发模型、增量模型,螺旋模型,等。 第二章1、渐增模型有几种?各有何特点?

答:渐增模型有两种类型,一是增量构造模型,二是演化提交模型。增量构造模型是在瀑布模型基础上,对一些阶段进行整体开发,对另一些阶段进行增量开发。演化提交模型则是在瀑布模型的基础上,所有阶段都进行增量开发,不仅是增量开发,也是增量提交。 3、快速原型的开发步骤是什么?

答:快速原型的开发步骤是:(1)快速分析:在分析人员与用户的配合下,迅速确定系统基本需求并开始构造原型。(2)构造原型:在快速分析的基础上,根据基本需求说明尽快实现一个可运行的系统。(3)运行原型:通过运行快速原型,发现问题,消除误解,达到开发者也用户的充分协调。(4)评价原型:在运行的基础上,评价原型的特性,分析运行效果是否满足用户的需求,提出全面的修改意见。(5)修改:根据评价原型的活动结果进行修改,修改过程代替初始的快速分析,从而实现原型开发的循环过程。用户与开发者在这种循环过程中不断接近系统的最终要求。上述步骤在软件工具的支持下往往是互相交融在一起的,而不再象瀑布模型那样严格的阶段划分,线性推进。

4、评价快速原型模型的优缺点。

1

答:快速原型的优点是:(1)可及早为用户提供有用的产品。 (2)可及早发现问题,随时纠正错误。 (3)减少技术、应用风险,缩短开发时间,减少费用、提高生产率。 (4)通过实际运行原型,提供直接评价系统的方法,促使用户主动参与开发活动,加强了信息反馈,促进各类人员的协调,减少误解,适应需求变化,能有效提高系统质量。

快速原型的缺点是:(1)缺乏丰富而强有力的软件工具和开发环境。 (2)缺乏有效的管理机制,还未建立起自己的开发标准。 (3)对设计开发环境要求较高。 (4)在多次重复改变原型的过程中,程序员会感到厌倦。 (5)系统的易变性对测试有一定影响,难于做到彻底测试,更新文档较为困难。 5、对比瀑布模型与增量模型,指出增量模型的新思路。

答:瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。瀑布模型很难适应需求可变、模糊不定的软件系统的开发,而且在开发过程中用户很难参与进去,只有到开发结束才能看到整个软件系统。这种理想的、线性的开发过程缺乏灵活性,不适应实际的开发过程。 增量模型是在瀑布模型的基础上加以修改而形成的。属于非整体开发模型。

它的基本思路是为了使开发过程具有一定的灵活性和可修改性,在开发过程中推迟某些阶段或所有阶段中的细节,从而较早的产生工作软件。 第三章1.可行性研究的任务是什么?

可行研究的任务:首先需要进行概要的分析研究,初步确定项目的规模,目标,约束和限制。分析员再进行简要的需求分析,抽象出项目的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的解决方法,对每种解决方法都要研究它的可行性。

主要从三个方面考虑:⑴.技术可行性:一般要考虑的情况包括 开发的风险即设计出的系统能否达到要求的功能和性能;资源的有效性;相关技术的发展是否支持;

⑵经济可行性进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资。

⑶.法律可行性:要开发的项目是否存在任何侵权问题,运行方式在用户组织内是否可行,现有管理制度﹑人员素质﹑操作方式是否可行。

4.成本--效益分析可用哪些指标进行度量?

⑴.投资回收率:通常把建立系统若干年后能取得的收益折算成现在的价值和开发系统所需的费用进行比较得出投资回收率。⑵.投资回收期:就是使累计的经济效益等于最初的投资费用所需的时间。⑶.纯收入:整个生存周期之内的累计经济效益(折成现在值)与投资之差。 第四章⒈什么是需求分析?需求分析阶段的基本任务是什么?

需求分析:开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。 基本任务:

⑴问题识别:双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。 ⑵分析与综合,导出软件的逻辑模型

⑶编写文档:包括编写\需求规格说明书\初步用户使用手册\确认测试计划\修改完善软件开发计划\⒉什么是结构分析方法?该方法使用什么描述工具?

结构化分析:简称SA,面向数据流进行数据分析的方法。采用自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。 ⒊结构化分析方法通过哪些步骤来实现?

2

⑴了解当前系统的工作流程,获得当前系统的物理模型。 ⑵抽象出当前系统的逻辑模型。 ⑶建立目标系统的逻辑模型。 ⑷作进一步补充和优化。

⒋什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?

数据流图(DFD):以图形的方式描述数据在系统中流动和处理的过程。只反映系统必须完成的逻辑功能,是一种功能模型。

⒍什么是数据字典?其作用是什么?共有哪些条目?

数据字典(DD)用来定义数据库流图中的各个成分的具体含义。有以下四类条目:数据流,数据项,数据文件,基本加工。

⒎描述加工逻辑有哪些工具?

加工逻辑的描述:一般用结构化语言,判定表,判定树

结构化语言是介于自然语言和形式语言之间的一种半形式化语言。它的结构可分里层和内层 ⑴外层:用来描述控制结构,采用顺序,选择,重复三种基本结构。 ①顺序结构:是一组祈使语句,选择语句,重复语句的顺序排列

②选择结构:一般用IF-THEN-ELASE-ENDIF,CASE-OF-ENDCASE等关键词。 ③重复结构:一般用DO-WHILE-ENDDO,REPEAT-UNTIL等关键词。

⑵内层:一般采用祈使语句的自然语言短语,使用数据字典中的名词和有限的自定义词,其 动词含义要具体,尽量不使用形容词和副词来修饰。

例:加工逻辑描述为,如果申请者的年龄在21岁以下,要额外收费;如果申请者是21岁以上并是26岁以下的女性,适用于A类保险;如果申请者是26岁以下的已婚男性,或者是26岁以上的男性,适用于B类保险;如果申请者是21岁以下的女性或是26岁以下的单身C类保险。附此之外的其他申请者都适用于A类保险。 3

⒐简述SA方法的优缺点。

SA方法是软件需求分析中公认的,有成效的,技术成熟,使用广泛的一种结构化分析方法。较适用于开发数据处理类型软件的需求分析。利用图形等半形式化工具表达需求,简明,易读,也易于使用。但也存在一些弱点,表现如下: ⑴SA方法仅是一个静态模型,没有反映处理的顺序,即控制流程。

⑵SA方法使用DFD在分析与描述\数据要求\方面是有局限的,只有与数据库技术中的实体联系图(ER图)结合起来,才能较完整地描述用户对系统的需求。

⑶DFD不适合描述人机界面系统的要求,一些人机交互较频繁的软件系统。 ⑷SA方法要与形式化方法结合起来,才能更精确地描述软件需求。 ⑸要借助需求分析工具,提高需求分析的质量及效率。

10.某厂对部分职工重新分配工作的政策是:年龄在20岁以下者,初中文化程度脱产学习,高中文化程度当电工。20岁至40岁之间,中学文化程度,男性当钳工,女性当车工,大学文化程度都当技术员。年龄在40岁以上者,中学文化程度当材料员,大学文化程度当技术员。请用结构化语言﹑判定表或判定树描述上述问题的加工逻辑。 结构化语言: CASE 年龄<20

CASE 文化程度 初中 分配工种 脱产学习 CASE 文化程度 高中 分配工种 电工 ENDCASE

CASE 年龄<=40.AND.>=20

CASE 文化程度 初中.OR.高中 CASE 性别 男 分配工种 钳工 CASE 性别 女 分配工种 车工 ENDCASE ENDCASE

CASE 文化程度 大学

4

分配工种 技术员 ENDCASE ENDCASE CASE 年龄>40

CASE 文化程度 初中.OR.高中 分配工种 材料员 CASE 文化程度 大学 分配工种 技术员 ENDCASE ENDCASE

第五章(概要设计部分)

1. 什么是软件概要设计?该阶段的基本任务是什么?

把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。称为概要设计或结构设计。 基本任务:⑴设计软件系统结构,具体为:采用某种设计方法,将一个复杂的系统按功能划分为模块。 确定每个模块的功能。 确定模块之间的调用关系。

确定模块之间的接口(模块之间传递的信息)

5

评价模块的结构质量

⑵进行数据结构及数据库的设计 ⑶编写概要设计的文档

主要内容有:概要设计说明书,数据库说明书(DBMS的简介,概念模型,逻辑设计,结果)用户手册,修订测试计划(测试的策略﹑方法﹑步骤)

⑷评审:是否完整地实现了规定的功能﹑性能要求。设计方案是否可行。关键的处理及内部接口定义的正确性,有效性,各部分的一致性。

2.软件设计的基本原理包括哪些内容?

⑴模块化:模块是软件的组成部分,是具有独立功能且可命名的一段程序,所有模块组成 整体,可以满足问题的要求。模块化即按照一定的原则,将软件划分成若干个模块,每个模块完成一个特定的功能,然后把这些模块按照某种方法组装成一个软件系统。(可降低复杂度、减少工作量) 模块具有以下几种特性: 接口:模块的输入输出。 功能:指模块实现什么功能。

逻辑:描述模块内部如何实现要求及所需的数据。 状态:该模块的运行环境,模块间调用与被调用关系。

⑵抽象:认识复杂现象过程所使用权的工具,只考虑事物本质的共同特性,忽略细节和其它因素。通过抽象确定组成软件的过程实体。

⑶信息隐蔽:将模块实现自身功能的细节与数据\隐蔽\起来。模块间仅交换为完成系统功能所必须的信息。 ⑷模块独立性:每个模块只完成系统要求的独立的子功能。 3.衡量模块独立性的两个标准是什么?各表示什么含义? 内聚和耦合

内聚:又称为块内联系,指模块内部各成分之间相互关联的程度,以高内聚为设计目标。

耦合:也称块间联系,模块之间相互联系程度的度量,联系越紧密,耦合性越强,独立性越差,以低耦合为设计目标。

4.模块的耦合性有哪几种?各表示什么含义?

⑴内容耦合:一个模块直接操作或修改另一模块的数据,或者不通过正常入口直接转入 另一模块 ⑵公共耦合:两个或多个模块通过共同引用一个全局数据环境相互作用 ⑶控制耦合:模块之间通过传递控制信息相互作用 〔4〕数据耦合:模块之间通过传递数据交换信息 5.模块的内聚性有哪几种?各表示什么含义? ⑴偶然内聚:一个模块各个成分之间毫无关系

⑵逻辑内聚:将几个逻辑上相关的功能放在同一个模块中 ⑶时间内聚:一个模块完成的功能在同一时间执行

⑷过程内聚:一个模块内部的处理成分是相关的,而且必须以特定的次序执行 ⑸通信内聚:一个模块的所有成分都集中在同一个数据结构上

⑹顺序内聚:一个模块的各个成分同一个功能密切相关,而且一个成分的输出,作为另外一个成分的输入 ⑺功能内聚:模块内的所有成分属于一个整体,完成单一的功能。(内聚最高) 6.简述软件结构设计的优化准则。

6

⑴改进软件结构,提高模块独立性 首先设计出软件初始结构,评价该结构,通过模块分解或合并,力求降低耦合提高内聚。

⑵模块的规模应该适中

⑶模块结构的深度、宽度、扇出和扇入应适中 深度:软件结构中控制的层数

宽度:软件结构中同一层次上最大模块总数

扇入:某一模块有多少直接调用它的上级模块数目(越大越好)

扇出:一个模块直接控制(调用)下级模块的数目。(越少越好,3,4个为宜,不超过9个, \顶层扇出较高,中间扇出较少,底层模块高扇入多\

⑷一个模块的作用域(范围),应处在这个模块的控制域(范围)之内 模块的作用域:受该模块内一个判定影响的所有模块的集合

模块的控制域:这个模块本身以及所有直接或间接从属于它的模块的集合 7.什么是模块的影响范围?什么是软件的控制范围?它们之间应建立什么关系? 模块的影响范围(作用域):受该模块内一个判定影响的所有模块的集合

模块的控制范围(控制域):这个模块本身以及所有直接或间接从属于它的模块的集合 一个模块的影响范围(作用域),应处在这个模块的模块的控制范围(控制域)内。 8.什么是\事务流\?什么是\变换流\?试将相应形式的数据流图转换为软件结构图 数据流图(DFD)一般可分为\变换流\,\事务流\两种。

\变换流\:由输入﹑输出﹑变换(或称处理)三部分组成,是一顺序结构。

\事务流\:它的某个加工,分离成许多发散的数据流,形成许多加工路径,并且根据输入值选择其中一个路径来执行。(这个加工称为事务处理中心) 9.试述\变换分析\﹑\事务分析\设计步骤。

变换分析设计步骤:⑴确定变换中心,逻辑输入和输出。

⑵设计软件结构的顶层和第一层--变换结构:顶层的功能是完成所有模块的控制(名称应是系统名,以体现完成整个系统功能)

第一层至少有三种功能模块:输入﹑输出和变换模块 ⑶设计中﹑下层模块,对第一层的模块自顶向下分解。 输入模块由两部分组成:接收数据﹑转换成调用模块所需信息。 输出模块由两部分组成:将数据转换成下属模块所需的形式﹑ 发送数据 变换模块:对每个基本加工建立一功能模块

⑷设计的优化 :输入部分求精,每个物理输入设置专门模块,以体现系统的外部接口。其它输入模块与转换数据模块都很简单时,可将它们合并。

输出部分求精:每个物理输出设置专门模块,其它也可适当合并。 变换部分求精:根据设计准则,对模块适当合并。 事务分析的设计步骤: ⑴确定事务中心和加工路径

⑵设计顶层(事务机构)和第一层 顶层模块有两个功能:接收数据和根据事务类型调动相应处理模块。 ⑶中下层模块的设计﹑优化工作与变换结构相同。

事务型软件结构包括两部分:接收分支发送分支出 通常包括一调度模块,当事务类型不多时,可与主模块合并 。

7

第五章(详细设计部分)

1、详细设计的基本任务是什么,有哪几种描述方法?

答:详细设计的基本任务包括:1、为每个模块进行详细的算法设计 2、为模块内的数据结构进行设计 3、对数据库进行物理设计 4、其他设计 5、编写详细设计说明书 6、评审

详细设计的描述方法有图形、表格和语言,其中图形常用结构化程序流程图、盒图和PAD(问题分析图)为描述工具,语言常用过程设计语言(PDL)来作为工具。 2、结构化程序设计的基本要点是什么?

答:主要有三个:(1)采用自顶向下、逐步求精的程序设计方法

(2)使用三种基本控制结构构造程序。任何程序都可以由顺序、选择、重复(循环)三种基本控制结构构造,这三种基本结构的共同点是单入口、单出口。 (3)主程序员组的组织形式。 3、简述Jackson方法的设计步骤。 答:Jackson方法的设计步骤如下:

(1)分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图表示这些数据结构。 (2)找出输入数据结构和输出数据结构中有对应关系的数据单元。 (3)按一定的规则由输入、输出的数据结构导出程序结构。 (4)列出基本操作与条件,并把它们分配到程序结构图的适当位置。 (5)用伪码写出程序。

第六章1、程序语言有哪些共同特征?

答:程序语言的共同特征(似为特性更符合题意)是指程序设计语言的语言特性,包括心理特性、工程特性和技术特性三个方面。语言的心理特性对人机通信的质量有主要的影响;语言的工程特性对软件开发成功一否有重要的影响,此外,语言的技术特性也会影响软件设计的质量。 2、在项目开发时选择程序设计语言通常考虑哪些因素? 答:通常要考虑的因素有:

项目的应用领域、软件开发的方法、软件执行的环境、算法和数据结构的复杂性以及软件开发人员的知识等。 4、举例说明各种程序设计语言的特点及适用范围? 答:以常见的一些编程语言为例:

FORTRAN语言,它不仅面向科学计算,数据处理能力也极强。适用于科学工程计算

Pascal语言,具有很强的数据和过程结构化能力,它语言简明,数据类型丰富,程序结构严谨。它是第一个体现结构化编程思想的语言。用于描述结构化算法和科学计算,操作系统的编写

C语言:功能强大,支持复杂的数据结构,可大量运用指针,具有丰富灵活的操作运算符及数据处理操作符,它还具有汇编语言的某些特征,使程序运行效率高。可用于许多领域,特别是在操作系统等方面有较大优势。 SQL:结构化查询语言,用于对数据库进行存取管理。 汇编语言语言,主要用于实时处理和编写系统软件。

C++、Java语言,是面向对象的设计语言,用于面向对象的方开发软件。 5、什么是程序设计风格?为了具有良好的设计风格,应注意哪些方面的问题?

答:程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个方面加以注意。 第七章1、软件测试的目的是什么?软件测试中,应注意哪些原则?

8

答:软件测试的目的是为了发现软件的错误。 软件测试中应注意的原则有:

(1)测试用例应由输入数据和预期的输出数据两部分组成。这样便 于对照检查,做到有的放矢。

(2)测试且例不仅选用合理输入数据,还要选择不合理的输入数据。这样能更多地发现错误,提高程序的可靠性。对于不合理的输入数据,程序应拒绝接受,并给出相应的提示。

(3)除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事。 (4)应制定测试计划并严格执行,排除随意性。 (5)长期保留测试用例。

(6)对发现错误较多的程序段,应进行更深入的测试。

(7)程序员应避免测试自己的程序。测试是一种\挑剔性\的行为,心理状态是测试自己程序的障碍。 2、什么是白盒测试法?有哪些覆盖标准?试对他们的检错能力进行比较?

答:白盒法测试法把测试对象看作一个打开的盒子,测试人员须了解程序内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。

白盒法有下列几种覆盖标准:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,点覆盖,边覆盖,路径覆盖,从上到下的覆盖标准其检错能力也从弱到强,其中条件组合发现错误的能力较强,凡满足其标准的测试用例,也必然满足前四种覆盖标准。在实际的逻辑测试中,一般以条件组合覆盖为主设计测试用例,然后再补充部分用例来达到路径覆盖的测试标准。

3、什么是黑盒测试法?采用黑盒技术测试用例有哪几种方法?这些方法各有什么特点?

答:黑盒测试法把被测试对象看成是一相黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。

采用黑盒技术测试用例的方法有:等价类的划分、边界值分析、错误推测和因果图。

等价类的划分,是将输入数据按有效的或无效的(也称合理的或不合理的)划分成若干个等价类,测试每个等价类的代表值就等于对该类其他值的测试。这样就把漫无边迹的随机测试改为有针对性的等价类测试,用少量有代表性的例子代替大量测试目的相同的例子,能有效地提高测试效率。但这个方法的缺点是没有注意选择某些高效的、能够发现更多错误的测试用例。

边界值分析法一般与等价类划分结合起来。但它不是从一个等价类中任选一个例子做代表,而是将测试边界情况作为重点目标,选取正好等于、刚刚大于和刚刚小于边界值的测试数据。(边界情况是指输入等价类和输入等价类边界上的情况。)这种方法可以查出更多的错误,因为在程序中往往在处理边界情况时易发生错误。 错误推测法是在测试程序时,人们根据经验或直觉推测程序中可能存在的错误,从而有针对性地编写检查这些错误的测试用例。

因果图能够有效地检测输入条件的各种组合可能会引起的错误。它的基本原理是通过画因果图,把用自然语言描述的功能说明转换为判定表,最后为判定表的每一列设计一个测试用例。

这几种方法都不能提供一组完整的测试用例,在实际测试中应把各种方法结合起来使用。 综合策略:就是联合使用上述几种测试方法,尽可能多地发现程序中的错误。 4、软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系? 答:软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试。

单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计文档。

9

集成测试是为了检查与设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理有效。 确认测试主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。

系统测试是把已确认的软件与其他系统元素(如硬件、其他支持软件、数据、人工等)结合在一起进行测试。以确定软件是否可以支付使用。

5、单元测试有哪些内容?测试中采用什么方法?

答:单元测试主要针对模块的以下五个基本特征进行测试: (1)模块接口 (2)局部数据结构 (3)重要的执行路径 (4)错误处理 (5)边界条件

测试的方法是为被测试模块编写驱动模块和桩模块来实现被测试单元的可运行。通过驱动模块来模拟被测试模块的上级调用模块,以上级模块调用被测模块的格式驱动被测模块,接收被测模块的测试结构并输出。桩模块则用来代替被测试模块所调用的模块。它的作用是返回被测模块所需的信息。

6、什么是集成测试?非渐增式测试与渐增式测试有什么区别? 渐增式测试如何组装模块?

答:集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。 非渐增式测试是指首先对每个模块分别进行单元测试,再把所有模块组装成一个完整的系统进行的测试。而渐增式测试就是逐个把未经测试的模块组装到已经过测试的模块上去进行集成测试,每加入一个新模块进行一次集成测试,重复此过程直到程序组装完毕。渐增式测试有两种不同的组装方法:自顶向下和自底向上结合。 两者区别是:

(1)非渐增式方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而渐增式测试往往把单元测试和集成测试合在一起,同时完成。

(2)非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量少。

(3)渐增式可以较早地发现接口之间的错误,非渐增式最后组装时才发现。

(4)渐增式有利于排错,发生错误往往和最近新加入的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错。

(5)渐增式比较彻底,已测试的模块和新的模块再测试。

(6)渐增式点用时间较多,但非渐增式所需更多的驱动模块和桩模块也占用一些时间。 (7)非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。 7、什么是确认测试?该阶段有哪些工作?

答:确认测试又称有效性测试。它的任务是检查软件的功能与性能是否与需求规格说明书中确定的指标相符合。因而需求说明是确认测试的基础。确认测试阶段有两项工作:进行确认测试与软件配置审查。 8、调试的目的是什么?调试有哪些技术手段?

答:调试则是在进行了成功的测试之后才开始的工作。调试的目的是确定错误的原因和位置,并改正错误,因此调试也称为纠错(Debug)。调试的技术手段有简单的调试方法、归纳法、演绎法和回溯法等。 9、将正确答案的编号填入题目空白处:

在白盒测试用例中,有语句覆盖、条件覆盖、判定覆盖、路径覆盖等,其中(A)是最强的覆盖准则。为了对下图所示的程序进行覆盖测试,必须适当地选取测试数据。若X,Y是两个变量,可供选择的测试数据组共有I,II,

10

本文来源:https://www.bwwdw.com/article/gq7g.html

Top