下一章 目录 设置
1、软件 工程 ...
-
什么是黑盒测试?什么是白盒测试?它们分别有哪些测试方法?
答:①黑盒测试指把测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求,又称为功能测试或数据驱动测试。
②白盒测试指把测试对象看成一个打开的盒子,测试人员需了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
③白盒测试的方法有逻辑覆盖(按逻辑覆盖程度不同,有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。)、代码检查法、静态结构分析法、程序插桩技术和基本路径测试。
④黑盒测试的方法有错误推测发、决策表法、场景法、等价类划分、边界值分析、错误推测和因果图。
2.衡量模块独立性的两个定性标准是什么两个标准的定义分别是什么?在我们的软件设计中,关于模块独立性我们追求的目标是什么?
答:衡量模块独立性的两个定性标准是内聚和耦合。
耦合是指对一个软件结构内不同模块彼此之间互相依赖(连接)的紧密程度;而内聚则标志一个模块内部各个元素彼此结合的紧密程度。。
在我们的软件设计中,关于模块独立性我们追求的目标是紧密内聚松散耦合。
3.简述软件测试的任务、目的与类型。
答:软件测试是一个为了寻找软件错误而运行程序的过程。
目的就是为了发现软件中的错误。一个好的测试用例是指很可能找到迄今为止尚未发现
的错误的用例。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。软件测试
主要分为白盒测试和黑盒测试两大类。
4.简述软件工程目标和面临的主要问题。答:软件工程的目标是应用计算机科学、数学及管理科学等原理开发软件的工程。它采用经
过实践验证的工程的原则、方法,以提高质量,降低成本。
但是目前的软件开发面临着许多问题:(1)对软件开发成本和进度的估计常常很不准
确。(2)用户常对“已完成的”软件系统不满意。(3)软件产品的质量往往靠不住。 (4)
软件常常很难维护。(5)软件常常缺乏适当的文档资料。(6)软件开发生产率提高的
速度,远远跟不上计算机应用迅速普及深入的趋势。(7)软件成本在计算机系统总成本
中所占的比例逐年上升。
5.简述软件开发过程、每个里程碑的提交物。
答:软件开发的基本过程:(1)可行性研究,做初步的需求分析工作,决定项目可行与否 (2)软件需求分析,软件工程师必了解软件的信息领域,以及需求的功能、行为、性能和接口。系统需求和软件需求均需文档化,并与用户一起复审。并提交需求分析报告。(3)设计,包括总体设计和详细设计,软件设计是一个多步骤的过程,主要是对软件的数据结构、软件体系结构、界面表示及过程细节进行设计。设计过程将需求转换为软件表示,在编码之前可以评估其质量,所有设计均要文档化,它是软件配置的重要组成部分,经复审后提交相应的概要设计和详细设计报告。(4)编码,把设计转化为机器可执行的程序。提交源程序清单。(5)测试,提交测试报告。(6)维护,提交维护报告。
6.软件生命周期模型?瀑布模型?快速原型模型?
答;概括的说,软件生命周期模型由软件定义、软件开发和运行维护3个时期组成,每个时
期又进一步划分成若干个阶段。
软件生命周期模型有问题定义,可行性研究,需求分析,总体详细设计,总体编码和单元测试,综合测试,软件维护组瀑布模型是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需
求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,如果有信息未被覆盖或
者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶
段“流动”到下一个阶段。
快速原型模型是在用户不能给出完整、准确的需求说明,或者开发者不能确定算法的有
效性、操作系统的适应性或人机交互的形式等许多情况下,可以根据用户的一组基本需
求,快速建造一个原型(可运行的软件),然后进行评估,进一步精化、调整原型,使其
满足用户的要求,也使开发者对将要做的事情有更好的理解。
7.软件?软件产品具有哪些特性?
答:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。软件产品具有以下特性:1、非常复杂;2、成本高;3、风险大;4、维护困难;
8.可行性分析的目的和主要任务是什么?
答:可行性分析的目的不是解决问题,而是确定问题是否值得去解决。
主要任务是从下面几方面研究每种解法的可行性:技术可行性,经济可行性,操作可行
性,社会可行性,抉择可行性。
9.需求分析的目的和主要任务是什么?
答:进行需求分析是为了准确地回答“系统必须做什么”这个问题,决定可以做什么不做什
么。需求分析的主要任务是描述系统的功能需求、性能需求、数据需求、可靠性/可用
性需求、出错处理需求、接口需求、约束条件、其他需求。
10.总体设计的目的和主要任务是什么?
答:总体设计的目的是用比较抽象的方法确定系统概要地是如何实现的(How to do
generally !)。从初步的数据流图导出(设计出)软件结构;根据数据需求设计数据结构
(数据库结构、文件结构设计)。
主要任务是概括地说,如何解决这些问题,系统怎样实现?
划分系统的构成成分(黑盒子),如程序、文件、数据库、人工 操作等。设计系统的软件结构,即构成模块。
11.详细设计的目的和主要任务是什么?
答:在总体设计的基础上,进一步确定软件怎样具体实现,经过这个阶段的设计工作,应该
得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设
计语言书写的程序。
主要任务包括人机界面设计、模块过程设计。
12.编码的目的和主要任务是什么?
答:把软件设计结果翻译成用某种程序设计语言书写的程序
13.软件测试的目的和主要任务是什么(G.J.Myers的观点)?
答:发现程序中的错误
14.软件维护的目的和主要任务是什么?维护的类型有哪些?
答:软件维护是软件生命周期中最后一个、持续时间最长的阶段。
主要任务是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件,
目的是提高软件的可靠性、可用性,延长软件的寿命。
维护的类型有:改正性(错误)、适应性(环境)、完善性(功能)、预防性(新产品)
15.什么是耦合?模块的耦合包括哪些类型?
答:耦合是对一个软件结构内不同模块之间互连程度的度量。
模块的耦合包括以下几种类型:数据耦合,控制耦合,特征耦合,公共环境耦合,内容
耦合,标记耦合,无耦合/非直接耦合
16.什么是内聚?模块的内聚包括哪些类型?
答:内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自
然扩展
模块的内聚包括以下几种类型:低内聚—偶然内聚,逻辑内聚,时间内聚
中内聚—过程内聚,通信内聚;高内聚—顺序内聚,功能内聚
17.如何选择程序设计语言的工程特性
答:1.系统用户的要求2.可以使用的编译程序
3.可以得到的软件工具4.工程规模5.程序员的知识
6.软件可移植性的要求7.软件的应用领域
18什么是编码风格?为什么要强调编码风格?
答:编码风格包括以下内容:程序内部良好的文档(注释)、数据说明、语句构造、输入输
出和效率保障等。
因为编码风格对软件的可读性、可维护性、可靠性、可用性很重要,所以要强调编码风
格。