软件测试习题集及答案(详细版)

第一章

什么是软件测试?软件测试的目的和作用是什么?

答:

软件测试是在受控制的条件下对系统或应用程序进行操作并评价操作的结果。

软件测试的目的是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。测试是为了证明程序有错,而不是证明程序无错。一个成功的测试是发现了至今未发现的错误的测试。

软件测试的原则包括:所有的测试都应追溯到用户的需求;尽早地和不断地进行软件测试;不可能完全的测试,因为输入量太大,执行路径太多;注意测试中的群集现象;避免测试自己的程序;设计周密的测试用例。

软件缺陷产生的原因?

答: A.软件需求说明书编写的不全面,不完整,不准确,而且经常更改 B.软件设计说明书 C.软件操作人员的水平 D.开发人员不能很好的理解需求明书和沟通不足

软件测试的意义?

意义:

对产品质量完成全面的评估,为软件产品发布(如验收测试)、软件系统部署(如性能规划测试)、软件产品鉴定(第三方独立测试)委托方和被委托方纠纷仲裁(第三方独立测试)和其它决策提供信息;

通过持续的测试(包括需求评审、设计评审、代码评审等)可以对产品质量提供持续的、快速的反馈,从而在整个开发过程中不断地、及时地改进产品的质量,并减少各种返工,降低软件开发的成本;

通过测试发现所要交付产品的缺陷,特别是尽可能地发现各种严重的缺陷,降低或消除产品质量风险,提高客户的满意度,扩大市场份额,提高客户的忠诚度。

通过对缺陷进行分析,找出缺陷发生的根本原因(软件过程中的问题,包括错误的行为方式)或总结出软件产品的缺陷模式,避免将来犯同样的错误或产生类似的产品问题,达到缺陷预防的目的

软件测试与软件开发的关系?

答:软件开发是一个系统的工程。包括需求分析,设计,编码,测试,维护等等几个环节。测试是整个软件开发流程中的一个环节。

简述软件测试过程v模型和w模型的主要区别:

V模型是软件开发完了之后才开始测试活动。

而W模型则是软件测试活动伴随着软件开发活动。和软件开发同时开展。

W模型更加敏捷,对于软件的交付期和品质的保证能力更强。

第二章

测试计划的目的是什么?

答:软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。

什么是黑盒测试?黑盒测试主要采用的技术有哪些?

答:黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。它从用户观点出发的测试。用这种方法进行测试时,把被测试程序当作一个黑盒,在不考虑程序内部结构的内部特性、测试者只知道该程序输入和输出之间的关系或程序功能的情况下,依靠能够反映这一关系和程序功能需求规格的说明书,来确定测试用例和推断测试结果的正确性。

黑盒测试的方法包括:边界值分析、等价类测试、基于决策表的测试和因果图等。

简单描述黑盒测试各种方法的特点。

答:黑盒测试的方法主要有边界值分析法、等价类划分法、因果图法、决策表测试法等。

边界值分析利用输入变量的最小值、略大于最小值、输入值域内的任意值、略小于最大值和最大值来设计测试用例。

等价类划分法是把程序的输入域划分为若干部分,然后从每个部分中选取少数代表性数据当作测试用例。经过类别的划分后,每一类的代表性数据在测试中的作用都等价于这一类中的其他值。

因果图方法就是从程序规格说明书的描述中找出因(输入条件)和果(输出结果),将因果图转换为决策表,最后为决策表中的每一列设计一个测试用例。这种方法考虑到了输入情况各种组合以及各个输入情况之间的相互制约关系。

在所有的黑盒测试方法中,基于决策表的测试是最为严格、最具有逻辑性的。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。决策表法很适合测试这类问题。

如果能够执行完美的黑盒测试,还需要进行白盒测试吗?为什么?

答:需要,黑盒测试可根据程序规格检验程序是否完成规定功能,但无法发现程序内部的编码和逻辑错误,白盒测试与之相反互补。

边界值测试有几种方法?

答:边界值分析和健壮性测试

等价分类法的测试技术采用的一般方法?举例说明?

答:

为每个等价类编号;

设计一个新的测试方案,以尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步骤,直到所有有效等价类被覆盖为止。

设计一个新的测试方案,使它覆盖一个尚未被覆盖的无效等价类, 重复这一步骤,直到所有无效等价类被覆盖为止。

什么是等价类?如何划分等价类?等价类测试中有哪些方法?

答:

把单元的输入域化分为几种数据类,每种用来发现一类的错误,每类只用提供一个或几个用例数据。目的是减少用例数量。

请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。

答:黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。

白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。

软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:

1、是否有不正确或遗漏的功能?

2、在接口上,输入是否能正确的接受?能否输出正确的结果? 3、是否有数据结构错误或外部信息(例如数据文件)访问错误?

4、性能上是否能够满足要求?

5、是否有初始化或终止性错误?

软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:

1、对程序模块的所有独立的执行路径至少测试一遍。

2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。

3、在循环的边界和运行的界限内执行循环体。

4、测试内部数据结构的有效性,等等。

单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。

单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。

集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。

系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)

系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。

验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。

验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。

第三章

什么是白盒测试?白盒测试主要采用的技术有哪些? 白盒测试有那几种方法?并简单描述各种方法的特点。

答:白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试。它依赖于对程序细节的严密的检验。针对特定条件和循环集设计测试用例,对软件的逻辑路径进行测试。在程序的不同点检验程序的状态,来进行判定其实际情况是否和预期的状态相一致。

白盒测试包括:逻辑覆盖、基路径测试、数据流测试、程序插装等。

总体上分为静态方法和动态方法两大类

静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义

动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。 常用的逻辑覆盖测试方法有哪几种?并简单描述各种方法的目的。

答:逻辑覆盖可分为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖及路径覆盖。

语句覆盖:要求设计若干个测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次。

判定覆盖:要求设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少执行一次,即判断的真假值均要被检测。判定覆盖又称为分支覆盖。

条件覆盖:要求设计若干测试用例,执行被测程序,使得程序中每个判断的每个条件的可能取值至少被执行一次。

判定/条件覆盖:要求设计足够的测试用例,执行被测程序,使得判断中每个条件的所有可能取值至少被执行一次,同时每个判断的所有可能判断结果也至少被执行一次。

路径覆盖:要求设计足够多测试用例,覆盖程序中所有可能的路径。

逻辑覆盖中几种主要覆盖的含义?举例说明?

答:逻辑覆盖是一种使用最广泛的结构测试方法。逻辑覆盖以程序内部的逻辑结构为基础设计测试用例,要求对被测程序的逻辑结构有清楚的了解,甚至要能掌握源程序的所有细节。

由于覆盖测试的目标不同,逻辑覆盖可分为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖及路径覆盖。

第五章

单元测试有那些步骤,各个步骤有那些实施内容。

答:1.静态检查:用工具Logiscope或者人工检查单

2.动态检查:用工具PurifyPlus或者人工调试

3.测试用例执行(工具或人工)

设计测试用例及数据;(提前)

编写测试用例代码、脚本、驱动模块和桩模块;(提前)

运行测试用例,记录结果。(在步骤1,2之后进行)

非增量式测试与增量式测试

答:非增量式测试的方法是先分散测试,然后集中起来再一次完成集成测试。假如在模块的接口处存在错误,只会在最后的集成测试时一下子暴露出来。

增量式测试是逐步集成和逐步测试的方法,把可能出现的差错分散暴露出来,便于找出问题和修改。而且一些模块在逐步集成的测试中,得到了较多次的考验,因此,可能会取得较好的测试效果。

结论:增量式测试要比非增量式测试具有一定的优越性。

简述自顶向下增量式测试和自底向上增量式测试两种集成测试方法,并比较两者的优点和缺点。

答:自顶向下增量式测试:

主要优点在于它可以自然的做到逐步求精,一开始就能让测试者看到系统的框架。

主要缺点是需要提供桩模块,并且在输入/输出模块接入系统以前,在桩模块中表示测试数据有一定困难。

合集下载

(最新)IT软件项目管理课后习题及答案

(最新)IT软件项目管理课后习题及答案

IT软件项目管理概述

1.什么是项目?项目的特征有哪些?

项目是一个特殊的将要被完成的有限任务。它是在一定时间内,满足一系列特定目标的多项

相关工作的总称。项目的特征主要有:项目的独特性;项目的一次性;项目的组织性;项目

的生命期;项目的资源消耗性;项目的目标冲突性;项目后果的不确定性。 2.什么是项目管理?项目管理有哪些特征?有哪些基本内容?

项目管理就是在项目活动中运用专门的知识、技能、工具和方法,使项目达到预期目标的过

程,是以项目作为管理对象,通过一个临时性的、专门的组织,对项目进行计划、组织、执

行和控制,并在时间、成本、性能、质量等方面达到预期目标的一种系统管理方法。 项目管理的特征主要有:项目管理对象是项目;系统工程思想贯穿项目管理的全过程;项目

管理的组织具有一定的特殊性;项目管理的体制是基于团队管理的个人负责制,项目经理是

整个项目组中协调、控制的关键;项目管理的要点是创造和保持一个使项目顺利进行的环境,

使置身于这个环境的人们能在集体中协调工作以完成预定目标;项目管理的方法、工具和技

术手段具有先进性。 项目管理的基本内容主要包括:项目综合管理;项目范围管理;项目时间管理;项目成本管

理;项目质量管理;项目人力管理;项目风险管理;项目沟通管理;项目采购管理九大知识

领域。

3.IT软件项目的独特性表现在哪些方面? 生产无形的产品;过程没有明显的划分;大都是“一次性”的人力消耗型项目。

4.IT软件项目管理包括哪些阶段和活动?

软件项目管理分为六个阶段:需求分析阶段;概要设计阶段;详细设计阶段;编码阶段;测

试阶段;安装及维护阶段。 IT软件项目管理的活动包括:编写项目建议书;项目成本的度量;项目计划和进度安排;

项目监控和复审;人员选择和评估;项目报告的准备和发布。

5.典型的IT软件项目管理的组合模式是什么结构?试用图表示,并说明每个成员的主要职

责。 IT软件项目管理的组合模式是层次结构。在一个典型的IT软件项目中,它的组织模式如图

软件测试面试题及答案

软件测试面试题及答案

软件开发——软件测试

1、测试的关键问题是()

A.如何组织对软件的评审 B.如何验证程序的正确性

C.如何采用综合策略 D.如何选择测试用例

2、下面不属于软件测试步骤的是

A.集成测试 B.回归测试 C.确认测试 D.单元测试 3、自底向上集成需要测试员编写驱动程序。请判断这句话的正确与

否。

A.T B.F 4、测试人员要坚持原则,缺陷未修复完坚决不予通过。请判断这句话

的正确与否。

A.T B.F

5、软件测试类型按开发阶段划分是?

A.需求测试、单元测试、集成测试、验证测试

B.单元测试、集成测试、确认测试、系统测试、验收测试

C.单元测试、集成测试、验证测试、确认测试、验收测试

D.调试、单元测试、集成测试、用户测试 6、如果我们可以通过覆盖率检测来判断我们是否对所有的路径都进行

了测试,但是仍然可能存在未被检测出来的缺陷,原因是()

A.全部选项

B.程序可能因为缺某些路径而存在问题

C.穷举路径的测试可能不好暴露数据敏感的错误

D.就算穷举路径测试也不能保证程序符合需求

7、下面哪些属于网游的测试内容?

A.客户端性能

B.服务器端性能

C.从运行完 game.exe 打开游戏界面后可进行的各种操作、玩法

D.界面

8、下述有关负载测试,容量测试和强度测试的描述正确的有?

A.负载测试:在一定的工作负荷下,系统的负荷及响应时间。

B.强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运

行给系统性能所造成的影响。

C.容量测试:容量测试目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系

统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运

行。

D.容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量。

9、集成测试的过程包括有以下哪些?

A.构建的确认过程 B.系统集成测试测试组提交过程

C.测试用例设计过程 D.Bug的报告过程 10、下面关于软件测试,描述正确的是?

软件工程第四版参考答案

软件工程第四版参考答案

一. 基本概念

1. 软件就是程‎序吗?如何定义软‎件?

答:人们经过长‎期实践已经‎逐步认识到‎,软件≠程序,程序只是软‎件的关键要‎素,普遍接受的‎观点是:软件=程序+数据+文档。

2. 文档有何作‎用?程序代码属‎不属于文档‎?

答:文档指的是‎在软件开发‎和维护过程‎中形成的文‎字记录。从软件计划‎、分析、设计、实现(编码和测试‎)、维护等开发‎活动中形成‎的各种文件‎。文档属于软‎件的一部分‎,是软件维护

‎和升级的重‎要依据,并且文档内‎容要与代码‎同步更新。没有文档的‎软件维护不‎但不能延长‎反

而会缩短‎软件寿命。 文档包括需‎求规格说明‎书、设计说明书‎、用户使用说‎明书、在线帮助等‎,当然程序代‎

码是必不可‎少的一种软‎件文档。

3. 什么是软件‎危机?什么原因产‎生了软件危‎机?

答:软件危机指‎的是在计算‎机软件的开‎发和维护过‎程中所遇到‎的一系列严‎重问题。产生的原因‎是主客观不‎相适应。见书图1-2。  客观上:软件规模增‎大、功能要求越‎来越复杂,需求不断变‎化等;

 主观上:传统的个体‎化开发观念‎和方法,无开发过程‎指导,无开发过程‎管理;

由于主客观‎矛盾,必然产生软‎件质量差、开发超期、超预算、维护困难等‎现象。

4. 软件工程定‎义有很多说‎法,用你自己的‎理解说明软‎件工程是干‎什么的?

参考:软件工程是‎指导计算机‎进行软件计‎划、开发和维护‎的工程学科‎;

软件工程是‎为解决软件‎危机而诞生‎的,解决的途径‎是:用工程化的‎理论、方法和技术‎

来管理软件‎开发过程。任何产品的‎工程化就是‎有计划、有目标、有规范、有文档、有标准。

见1.4节。软件工程就‎是指导软件‎产品的工程‎化。

5. 软件工程三‎要素是什么‎?

答:软件工程三‎要素是从计‎算机科学观‎点看软件工‎程,即从软件开‎发的技术层‎面应该有过‎程、方法和工具‎。见图1-4。

(2)“过程”是软件产品‎加工所经历‎的一系列有‎组织的活动‎,保证能够合‎理、高质量和及‎时地开发出‎软件。过程定义的‎活动集合及‎其序列见第‎2章。

软件工程课后习题答案第五版

软件工程课后习题答案第五版

软件工程课后习题答案第五版

《软件工程导论》课后习题答案

第一章软件工程概论

1.什么是软件危机?

软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面:

(1)用户对开发出的软件很难满意。

(2)软件产品的质量往往靠不住。

(3)一般软件很难维护。

(4)软件生产效率很低。

(5)软件开发成本越来越大。

(6)软件成本与开发进度难以估计。

-

欢迎下载2 (7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。

2.为什么会产生软件危机?

(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。

(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。

(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。

3.怎样克服软件危机?

(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。

(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。

(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。

-

欢迎下载3 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。

4.构成软件项目的最终产品:

应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。

软件工程习题及课后答案

软件工程习题及课后答案

第2章 软件过程(习题与参考答案)

[选择题]

1. ( )是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件

设计与开发、软件确认、软件改进等活动组成。()

A. 软件过程

B. 软件工具

C. 软件产品

D. 软件工程

2. 软件过程的基本活动是( )。()

A. 分析、设计、实现、测试、演化

B. 沟通、计划、建模、构造、部署

C. 计划、分析、设计、实现、调试

D. 沟通、风险管理、度量、产品化、评审

3. ( )软件需求规格说明书在软件开发过程中具有重要的作用,它是软件可行性分析

的依据。()

A. 真

B. 假

4. 软件开发的瀑布模型是( )。()

A. 适用于需求被清晰定义的情况

B. 一种需要快速构造可运行程序的好方法

C. 最适合于大规模团队开发的项目

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. 形式化方法模型是将数学方法用于( )。()

软件工程课后参考题答案

软件工程课后参考题答案

软件⼯程课后参考题答案

第⼀章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?

“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的⼀系列“严重问题”。这些问题决不仅仅是不能正常运⾏的软件才具有的,实际上,⼏乎“所有软件”都不同程度地存在这些问题。

它们有以下表现:

(1)对软件开发成本和进度的估计常常很不准确;

(2)⽤户对“已完成的”软件系统不满意的现象经常发⽣;

(3)软件产品的质量往往靠不住;

(4)软件常常是不可维护的;

(5)软件通常没有适当的⽂档资料;

(6)软件成本在计算机系统总成本中所占的⽐例逐年上升;

(7)软件开发⽣产率提⾼的速度,远远跟不上计算机应⽤普及深⼊的趋势。

出现软件危机的主要原因

(1)与软件本⾝的特点有关

(2)与软件开发和维护过程中使⽤的⽅法不正确有关2.假设⾃⼰是⼀家软件公司的总⼯程师,当把图1.1给⼿下的软件⼯程师们观看,告诉他们及时发现并改正错误的重要性时,有⼈不同意这个观点,认为要求在错误进⼊软件之前就清楚它们是不现实的,并举例说:“如果⼀个故障是编码错误造成的,那么,⼀个⼈怎么能在设计阶段清除它呢?”应该怎么反驳他?

答:在软件开发的不同阶段进⾏修改付出的代价是很不相同的,在早期引⼊变动,涉及的⾯较少,因⽽代价也⽐较低;在开发的中期,软件配置的许多成分已经完成,引⼊⼀个变动要对所有已完成的配置成分都做相应的修改,不仅⼯作量⼤,⽽且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引⼊变动,当然付出的代价更⾼。⼀个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很⼩的,因为这不是整体构架的错误。3.什么是软件⼯程?它有哪些本质特征?怎么⽤软件⼯程消除软件危机?

软件⼯程是指导知道计算机软件开发和维护的⼀门⼯程学科。采⽤⼯程的概念、原理、技术和⽅法来开发与维护软件,把经过时间考验⽽证明正确的管理技术和当前能够得到的最好技术⽅法结合起来,以经济地开发出⾼质量的软件并有效地维护它,这就是软件⼯程。

软件工程导论(第六版)部分课后习题答案

. . . 第一章

1-1 什么是软件危机? 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

1-3 什么是软件工程?

是指导计算机软件开发和维护的一门工程学科。

1-4 简述结构化型和面向对象型的要点,并分析它们的优缺点。

目前使用得最广泛的软件工程方法学(2

种):

1. 传统方法学:也称为生命周期方法学或结构化型。优点:把软件生命周期划分成基干

个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了

整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会

承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了

软件的开发和维护工作;促进了软件重用。

1-6 什么是软件过程?它与软件工程方法学有何关系?

z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项

任务的工作步骤z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术

方法的集合称为方法学,也称型

1-7 什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型

的优缺点,说明每种模型的适用围。

软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若

干个阶段。生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。

瀑布模型的优点:1.可强迫开发人员采用规的方法;2.严格规定了每个阶段必须提交的文档;

3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经

过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。适用

中小型项目。

快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快

软件工程期末试题(含答案)

软件⼯程期末试题(含答案)

填空题(每空1分,共25分)1. 软件⽣存周期⼀般可以划分为,问题定义、可⾏性研究、需求分析、设计、编码、测试和运⾏和维护。

2. 基于软件的功能划分,软件可以划分成—统软件_、⽀撑软件、应⽤软件__三种。

3. 可⾏性研究,应从经济可⾏性_________ 、技术可⾏性、运⾏可⾏性、法律可⾏性和开放⽅

案可⾏性等⽅⾯研究。4. 系统流程图是描绘物理系统__________ 的传统⼯具。它的基本思想是⽤图形符号以⿊盒⼦

形式描绘系统⾥⾯的每个部件5. 数据流图的基本四种成分:数据输⼊的源点和数据输岀汇点、加⼯______ 、数据流和数据存储⽂

件。6. 结构化分析⽅法是⾯向_数据流_进⾏需求分析的⽅法。结构化分析⽅法使⽤_数据流图DFD_与_

数据字典—来描述。7. 继承性是⾃动地共享类、⼦类和对象中的⽅法和数据的机制。

8. 软件详细设计⼯具可分为3类,即—图⽰⼯具_、―设计语⾔—和—表格⼯具_。

9. 为了在软件开发过程中保证软件的质量,主要采取下述措施:—审查__、复查和管理复审、—测

试_。10. ⼤型软件测试包括单元测试、集成测试、确认测试和系统测试四个步骤。

单项选择题(每⼩题2分,共20分)1. 软件设计中划分模块的⼀个准则是(C )。

A、低内聚低耦合 B.低内聚⾼耦合C.⾼内聚低耦合 D.⾼内聚⾼耦合

2. Jackson设计⽅法是由英国的M. Jackson提出的,它是⼀种⾯向(C )的软件设计⽅法。

A、对象 B.数据流 C.数据结构 D.控制结构

3. 试判断下列叙述中,哪个(些)是正确的( C )。

a、软件系统中所有的信息流都可以认为是事务流

b、软件系统中所有的信息流都可以认为是变换流

c、事务分析和变换分析的设计步骤是基本相似的

A、a

B、b

C、c

D、b 和c

4. (A )是⽤户和设计交换最频繁的⽅法。

A、原型化⽅法

B、瀑布模型⽅法 C.螺旋模型⽅法D、构件组装模型

5. 软件⼯程⽅法学的⽬的是:使软件⽣产规范化和⼯程化,⽽软件⼯程⽅法得以实施的主要保证

软件系统开发技术答案13

软件系统开发技术试题(一)一、单项选择题(本大题共10小题,每小题1分,共10分)1. 设计软件结构一般不确定( D )A.模块之间的接口B.模块间的调用关系C.模块的功能D.模块内的局部数据2. 软件结构化设计中,好的软件结构应该力求做到( B )A.顶层扇出较少,中间扇出较高,底层模块低扇入B.顶层扇出较高,中间扇出较少,底层模块高扇入C.顶层扇入较少,中间扇出较高,底层模块高扇入D.顶层扇入较少,中间扇入较高,底层模块低扇入3. 两个模块都使用同一张数据表,模块间的这种耦合称为( A )A.公共耦合B.内容耦合C.数据耦合D.控制耦合4. 划分模块时,下列说法正确的是( A )A.作用范围应在其控制范围之内B.控制范围应在其作用范围之内C.作用范围与控制范围互不包含D.作用范围与控制范围不受限制5. 重用率高的模块在软件结构图中的特征是( B )A.扇出数大B.扇入数大C.扇出数小D.内聚性高6. 面向对象建模得到的三个模型,其中核心的模型是( A )A.对象模型B.功能模型C.逻辑模型D.动态模型7. 从结构化的瀑布模型看,在软件生存周期的几个阶段中,对软件的影响最大是( C )A.详细设计阶段B.概要设计阶段C.需求分析阶段D.测试和运行阶段8.对UML的叙述不正确的是( D )A.UML统一了Booch方法、OMT方法、OOSE方法的表示方法。B.UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。C.UML融入了软件工程领域的新思想、新方法和新技术。D.UML仅限于支持面向对象的分析与设计,不支持其它的软件开发过程。9.以下哪个软件生存周期模型是一种风险驱动的模型( C )A.瀑布模型B.增量模型C.螺旋模型D.喷泉模型10.以下哪一项对模块耦合性没有影响( D )A.模块间接口的复杂程度B.调用模块的方式C.通过接口的信息D.模块内部各个元素彼此之间的紧密结合程度二、填空题(本大题共10小题,每空2分,共20分)1.数据流图描绘数据在系统中___流动和处理_______的过程。P402.为了便于对照检查,测试用例应由输入数据和预期的__输出结果(输出数据)____两部分组成。P1623.面向对象分析的目的是对_____目标系统______进行建模。4. 结构化方法总的指导思想是__自顶向下_____逐层分解。5. 在一段程序中,将多次出现的一组语句设计为一个子程序,供多个部分调用,这种情况出现的内聚称为___偶然内聚_____。6. 用来模拟被测模块的上级调用模块的模块称为__驱动模块_____7.一个模块的作用域指受该模块内一个__判定____影响的所有模块的集合。8. 在用况图中,关联是参与者和用况(USE CASE)之间的唯一关系。9. RUP的突出特点是一种以用况(Use Case)为驱动的、以体系结构为中心的、迭代增量式开发。10. 在RUP中,规定了四个开发阶段:初始阶段、精化阶段、构造阶段和移交阶段。三、名词解释题(本大题共6小题,每小题3分,共18分)1.软件生存周期模型答:从概念上来讲,软件生存周期模型是一个包括软件产品开发、运行和维护中有关过程、活动和任务的框架,覆盖了从该系统的需求定义到系统的使用终止。从应用的角度来说,软件生存周期模型为组织软件开发活动提供了有意义的指导。2.系统模型答:简单地说,模型是任一抽象,其中包括所有的基本能力、特性或一些方面,而没有任何冗余的细节。进一步地说,模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述,给出系统内个模型元素以及它们之间的语义关系。3.白盒测试法答:该方法把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检查内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。白盒法也不可能进行穷举测试。4.信息隐蔽答:信息隐蔽是指在每个模块中所包含的信息(包括具有特定语义的数据和处理过程)不允许其他不需要这些信息的模块访问。5. 测试用例答:为了发现程序中的故障而专门设计的一组或多组测试数据。6. 类答:类是一组具有相同属性、操作、关系和语义的对象的描述。 四、简答题(本大题共5小题,每小题6分,共30分)1. 简述演化模型以及可适应的情况,为什么?答:简述演化模型如图所示:演化模型主要是针对事先不能完整定义需求的软件开发。在用户提出待开发系统的核心需求的基础上,软件开发人员按照这一需求,首先开发一个核心系统,并投入运行,以便用户能够有效地提出反馈,接着,软件开发人员根据用户的反馈,实施开发的迭代过程。 2.

《常用工具软件》课后习题及答案

《常⽤⼯具软件》课后习题及答案

模块⼀⼯具软件概述

⼀、选择题1. 以下哪⼀种软件属于系统软件?( B )

A. 办公软件

B. 操作软件

C. 图形图像软件

D. 多媒体软件

2. 以下哪⼀种软件不属于办公软件?( A )

A. MySQL Server

B. ⾦⼭WPS

C. 永中Office

D. 红旗贰仟RedOffice

3. 以下哪⼀种软件版本不属于正在测试的版本?( C )

A. Alpha版

B. Beta版

C. Cardware版

D. Demo版

4. 以下哪⼀种软件授权允许⽤户⾃⾏修改源代码?( D )

A. 商业软件

B. 共享软件

C. 免费软件

D. 开源软件

5. 保护软件知识产权的⽬的不包括(D)。C

A. ⿎励科学技术创新

B. 保护⾏业健康发展

C.与国际接轨

D. 保护消费者的利益

⼆、思考题1.系统软件都包括哪些类别?为每个类别举出⼀个实例。

【参考答案】系统软件的作⽤是协调各部分硬件的⼯作,并为各种应⽤软件提供⽀持,使计算机⽤户和其他软件将计算机当作⼀个整体,不需要了解计算机底层的硬件⼯作内容,即可使⽤这些硬件实现各种功能。系统软件主要包括操作系统和⼀些基本的⼯具软件。

(1)操作系统,如Windows XP

(2)编译软件,⼜被称作集成开发环境,如Microsoft Visual Studio(3)其他系统软件,除了操作系统和编译软件外,如Windows优化⼤师、Norton Ghost、

【参考答案】版本号就是版本的标识号。每⼀个软件都有⼀个版本号。版本号能使⽤户了解所使⽤的软件是否为最新的版本以及它所提供的功能与设施。每⼀个版本号可以分为主版本号与次版本号两部分。⽬前流⾏的版本号主要包括3种风格。

① GNU(⼀种开源和⾃由软件的计划)风格

版本号格式:主版本号.⼦版本号[.修正版本号[编译版本号]]

⽰例 : 1.2.1, 2.0, 5.0.0 build-13124。

② Windows风格

版本号格式:主版本号.⼦版本号[修正版本号[.编译版本号]]

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档