软件工程习题集

上传人:无*** 文档编号:157562842 上传时间:2022-09-30 格式:DOC 页数:13 大小:59KB
收藏 版权申诉 举报 下载
软件工程习题集_第1页
第1页 / 共13页
软件工程习题集_第2页
第2页 / 共13页
软件工程习题集_第3页
第3页 / 共13页
资源描述:

《软件工程习题集》由会员分享,可在线阅读,更多相关《软件工程习题集(13页珍藏版)》请在装配图网上搜索。

1、1.1 什么是软件 软件是计算机系统中与硬件相互依存的另一部分,它包括程序,数据及相关文档的完整集合.1.2 软件的特点有哪些 (1)软件是一种逻辑实体,而不是具体的物理实体.(2)软件的开发过程中没有明显的制造过程.(3)软件在运行和使用过程期间,没有硬件那样的机械磨损,老化问题.(4)软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性.(5)软件的开发至今尚未完全摆脱手工艺的开发方式.(6)软件是复杂的.(7)软件成本相当昂贵.(8)相当多的软件工作涉及到社会因素1.3 软件的分类,按其功能可分为:系统软件,支撑软件,和应用软件.1.4 软件的分类,按其规模可分为:

2、(1)微型,(2)小型,(3)中型,(4)大型,(5)甚大型,(6)极大型.1.5 什么是软件危机 为什么会产生软件危机 将来怎样消除软件危机 从软件危机的种种表现和软件作为逻辑产品的特殊性可以发现软件危机的原因:(1)用户对软件需求的描述不精确,可能有遗漏,有二义性,有错误,甚至在软件开发过程中,用户还提出修改软件功能,界面,支撑环境等方面的要求;(2)软件开发人员对用户需求的理解与用户的本来愿望有差异,这种差异必然导致开发出来的软件产品与用户要求不一致;(3)大型软件项目需要组织一定的人力共同完成,多数管理人员缺乏开发大型软件系统的经验,而多数软件开发人员又缺乏管理方面的经验.各类人员的信

3、息交流不及时,不准确,有时还会产生误解;(4)软件项目开发人员不能有效地,独立自主地处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误;(5)缺乏有力的方法学和工具方面的支持,过分地依赖程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化;(6)软件产品的特殊性和人类智力的局限性,导致人们无力处理复杂问题.所谓复杂问题的概念是相对的,一旦人们采用先进的组织形式,开发方法和工具构造提高了软件的开发效率和能力,新的,更大的,更复杂的问题又摆在人们面前.1968年,在北大西洋公约组织(NATO)召开的计算机科学会议上,Fritz Bauer首先提出了软件工程的概念,试图建立并使用正

4、确的工程方法开发出成本低,可靠性好并在机器上能高效运行的软件,从而解决或缓解软件危机.软件工程的研究除了计算机软件本身外,还涉及许多其它的领域,如管理科学,心理学,经济学,人机工程学等,所以,它是一门综合性的学科.基础理论研究:主要目标是用形式化技术解决软件生产中所遇到的问题,如需求规格的描述,规格到系统的转换,系统测试,维护及理解等,主要为解决做什么的描述手段问题.工程化技术研究:总结软件开发过程的规律,探讨软件开发过程的工程化因素,方法及工程支持,解决怎么做的问题.计算机辅助软件工程(CASE)的研究:其中包括CASE工具和CASE环境的研究,旨在应用计算机支持软件开发过程,改进软件开发行

5、为,为开发人员提供软件开发平台和环境,以提高软件生产率并改善软件产品的质量.21世纪的软件生产将是一种大规模的工业化生产活动,以符合产品化质量要求的工业标准,实现软件生产自动化.其突出特征是:计算机真正成为人们的一种工具,用户即为系统分析员,软件过程是软件.为达到这一目标,形式化技术与工程化技术必然是有机的统一体,并容纳其它相关的技术产生,产生一种新的软件生产方法,技术,规程以及相应的工业标准,并产生与之相适应的傻瓜CASE,为软件产业奠定坚实的基础,使软件走上工业化生产方式,形成规模经济.1.6 软件生存周期指软件计划,需求分析,设计,程序编码,测试及运行维护.1.7 软件开发模型有瀑布模型

6、(Waterfall Model),演化模型(Evolutional Model),螺旋模型(Spiral Model),喷泉模型(Water Fountain Model),智能模型(Intelligence Model).1.8 软件工程项目的基本目标是:(1)付出较低的开发成本;(2)达到要求的软件功能;(3)取得较好的软件性能;(4)开发的软件易于移植;(5)需要较低的维护费用;(6)能按时完成开发工作,及时交互使用.1.9 什么叫软件工程.鲍姆(B.W.Boehom)曾为软件工程定义:运用现代科学技术知识来设计并构造计算机程序及为开发,运行和维护这些程序所必需的相关文件资料.这里对设

7、计一词应有广义的理解,它应包括软件的需求分析和对软件进行修改时所进行的再设计活动.1983年IEEE给出的定义为:软件工程是开发,运行,维护和修复软件的系统方法.其中软件的定义为:计算机程序,方法,规则,相关的文档资料以及在计算机上运行时所需要的数据.费莱(Fairley)认为:软件工程学是为了在成本限额以内按时完成开发任务和修改软件产品所需的系统生产和维护的技术和管理的学科.鲍威尔(Fritz Bauer):建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法.1968年,在北大西洋公约组织(NATO)召开的计算机科学会议上,Fritz Bauer首先提

8、出了软件工程的概念,试图建立并使用正确的工程方法开发出成本低,可靠性好并在机器上能高效运行的软件,从而解决或缓解软件危机.软件工程的研究除了计算机软件本身外,还涉及许多其它的领域,如管理科学,心理学,经济学,人机工程学等,所以,它是一门综合性的学科.1.10 软件工程三要素是:方法,工具,过程.2.1 计算机系统的元素可分为:(1)过程;(2)硬件;(3)软件;(4)人;(5)数据库;(6)文档.2.2 系统分析的目标是(1)识别用户要求;(2)评价系统的可行性;(3)进行经济分析和技术分析;(4)把功能分配给硬件,软件,人,数据库和其它系统元素;(5)建立成本和进度限制;(6)生成系统规格说

9、明,消除所有后续工程的基础.2.3 系统分析过程,必须考虑哪八个方面的问题 (1)所期望的功能和性能是什么 (2)可靠性和质量问题是哪些 (3)总的系统目标是什么 (4)成本与进度限制如何 (5)制造的需求是什么 (6)市场与竞争情况怎样 (7)有效的技术有哪些 (8)将来可能有哪些扩充2.4 可行性研究主要包括哪几个方面 可行性研究包括经济可行性,技术可行性,法律可行性和开发方案的选择性.经济可行性:进行成本效益分析,评估项目的开发成本,估算开发成本是否会超过项目预期的全部利润.分析系统开发对其它产品或利润的影响.技术可行性:根据客户提出的系统功能,性能及实现系统的各项约束条件,从技术的角度

10、研究实现系统的可行性.法律可行性:研究在系统开发过程中可能涉及的各种合同,侵权,责任以及各种于法律相抵触的问题.开发方案的选择性:提出并评价实现系统的各种看法方案.从中选出一种用于软件项目开发.2.5 技术可行性研究要考虑的情况包括:(1)开发的风险;(2)资源的有效性;(3)技术.2.6 可行性报告的内容主要包括哪几方面 可行性研究目录:1.引言 A.问题 B.实现环境 C.约束条件2.管理 A.重要的发现 B.注解 C.建议 D.效果3.方案选择 A.选择系统配置 B.选择方案标准4.系统描述 A.缩写词 B.各子系统的可行性5.成本效益分析6.技术风险评价7.有关法律问题8.其它2.7

11、系统规格说明文档的主要内容包括哪些 (1)引言:文档的范围和目的,概述;目标;限制条件(2)功能和数据描述:系统结构(结构环境图(ACD);描述ACD)(3)子系统描述:对于子系统n的结构图描述:结构流程图(AFD);系统模块描述;性能问题;设计限制条件;系统部件的分配结构字典结构互连图及其描述(4)系统模型化和模拟结果:用于模拟的系统模型,模拟结果,特殊的性能问题.(5)项目问题:项目的开发成本,项目进度计划.2.8 系统定义的评审,其目的是要保证:(1)正确地定义了项目的范围;(2)恰当地定义了功能,性能和接口;(3)环境的分析和开发风险证明了系统是可行的;(4)开发人员与用户对系统的目标

12、达成了共识.2.9 系统技术评审的评审内容包括哪些问题 (1)系统的功能复杂性是否与开发风险,成本,进度的评估相一致 (2)功能分配是否定义得足够详细 (3)系统元素之间的接口,系统元素与环境的接口是否定义得足够详细 (4)在规格说明中是否考虑了性能,可靠性和可维护性问题 (5)系统规格说明是否为后续的硬件和软件工程步骤提供了足够的基础2.10 系统管理评审的范围应包括哪些比较关键的问题 (1)是否已经建立了稳定的商业需求 系统可行性是否合理 (2)特定的环境(或市场)是否需要所描述的系统 (3)考虑了哪些候选方案 (4)每个系统元素的开发风险有哪些 (5)资源对于系统的开发是有效的吗 (6)

13、成本与进度界限合理吗3.1 需求分析阶段的基本任务是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件其它有效的需求.3.2 请写出软件需求分析的基本原则:(1)必须能够表达和理解问题的数据域和功能域(2)必须按自顶向下,逐层分解的方式对问题进行分解和不断细化(3)要给出系统的逻辑视图和物理视图3.3 系统分析员应具备的素质是什么 (1)能够熟练地掌握计算机硬,软件的专业知识,具有一定的系统开发经验.(2)善于进行抽象的思维和创造性的思维,善于把握抽象的概念,并把它们重新整理成为各种逻辑成分,并给出简明,清晰的描述.(3)善于从相互冲突或混淆的原始资料中抽取出

14、恰当的条目来.(4)善于进行调查研究,能够很快学习用户的专业领域知识,理解用户的环境条件.(5)能够倾听他人的意见,注意发挥其他人员的作用.(6)具有良好的书面和口头交流表达能力.3.4 需求分析方法由数据驱动的.也就是说,这些方法提供了一种表示数据域的机制,分析员根据这种表示,确定软件功能及其它特性,最终建立一个待开发软件的抽象模型,即目标系统的逻辑模型.3.5 在软件原型化方法中,由于软件项目的特点和运行原型的目的不同,原型主要有哪三种不同的作用类型 探索型,实验型和进化型.3.6 建立快速原型进行系统的分析和构造,好处有.(1)增进软件人员和用户对系统服务需求的理解,使比较含糊的具有不确

15、定性的软件需求(主要是功能)明确化.(2)原型化方法提供了一种有力的学习手段.(3)使用原型化方法,可以容易地确定系统的性能,确认各项主要系统服务的可应用性,确认系统设计的可行性,确认系统作为产品的结果.(4)软件原型的最终版本,有的可以原封不动地成为产品,有的略加修改就可以成为最终系统的一个组成部分,这样有利于建成最终系统.3.7软件复用的范围基本上有五个层次:(1)复用数据;(2)复用模块;(3)复用结构;(4)复用设计;(5) 复用规格说明.3.8 软件复用技术可分为两大类合成技术和生成技术.3.9 请你描述一个软件项目的开发过程.3.10 有哪三种方式可将构件合成更大的构件 连接,消息

16、传递和继承,和管道机制.3.11 结构化的分析方法使用了哪几个工具 数据流图,数据词典,结构化英语,判定表和判定树等.3.12 请画出数据流图的基本图形元素,并标明每个图形元素的意义.加工:输入数据在此进行变换产生输出数据,其中要注明加工的名字.数据输入的源点(Source)或数据输出的汇点(Sink):其中要注明源点或汇点的名字.数据流:被加工的数据与流向,箭头边应给出数据流名字,可用名词或名词性短语命名.数据存储文件:3.13 在数据词典中,数据流词条应有哪几项内容 数据流名:说明:简要介绍作用即它产生的原因和结果数据流来源:来自何方数据流去向:去向何处数据流组成:数据结构每个数据量流通量

17、:数据量,流通量3.14 在数据词典中数据文件词条应有哪几项内容 数据文件名:简述:存放的是什么数据.输入数据:输出数据:数据文件的组成:数据结构存储方式:顺序,直接,关键码3.15 在数据词典中,加工逻辑词条主要描述哪几项内容.加工名:加工编号:反映该加工的层次简要描述:加工逻辑及功能简述输入数据流:输出数据流:加工逻辑:简述加工程序,加工顺序3.16 Warnier图表示数据层次结构的一种图形工具,它用来描述数据结构.3.17 写基本加工逻辑说明时,应满足哪些要求 对数据图的每个基本加工,必须有一个加工逻辑说明;加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则;加工逻

18、辑说明必须描述实现加工的策略而不是实现加工的细节3.18 目前用于描写加工逻辑说明的工具有结构化英语,判定表和判定树.3.19 请用Petri网解释系统出现死锁现象的主要原因.4.1 软件设计的主要任务是 应用各种技术和原理,对设备,过程或系统做出足够详细的定义,使之能够在物理上得以实现 .4.2 软件设计一般分为 概要设计 和 详细设计 两个阶段.4.3 总体设计任务是要设计出总体结构和子模块之间的相互关系.4.4 详细设计阶段的任务是确定算法,数据结构,产生模块开发卷宗.4.5 请画出开发阶段的信息流图,并标明各阶段的名称及有关信息.开发阶段的信息流如图4.1所示.在设计步骤,根据用信息域

19、表示的软件需求,以及功能和性能需求,采用某种设计方法进行数据设计,系统结构设计和过程设计.数据设计侧重于数据结构的定义.系统结构设计定义软件系统各主要成分之间的关系.过程设计则是把结构成分转换成软件的过程性描述.在编码步骤,根据这种过程性描述,生成源代码程序,然后通过测试最终得到有效的软件.4.6 软件设计是一个 把需求变换成软件表示的 过程.4.7 性能主要有四个指标,分别为:(1) 周转时间 ;(2) 响应时间 ;(3) 吞吐量 ;(4) 精度 .4.8 概要设计阶段完成之后,应该编写哪些文档 概要设计说明书:给出系统目标,总体设计,数据设计,处理方式设计,运行设计,出错设计等.数据库设计

20、说明书:给出所使用数据库简介,数据模式设计,物理设计等.用户手册:对需求分析阶段编写的初步的用户手册进行审订制定初步的测试计划:对测试的策略,方法和步骤提出明确的要求.4.9 请简要回答设计阶段需要完成的工作主要有:(1)制定规范;(2)软件系统结构的总体设计;(3)处理方式设计(4)数据结构设计(5)可靠性设计(6)编写概要设计阶段的文档(7)概要设计评审4.10 在详细设计过程中,需要完成的工作是:(1)确定软件各个组成部分内的算法以及各部分的内部数据组织;(2)选定某种过程的表达形式来描述各种算法;(3)进行详细设计的评审.4.11 软件设计的最终目标是:要取得最佳方案.4.12 软件的

21、结构包括两部分,其一为 程序模块的层次结构,其二为 数据的结构.4.13 在软件设计中,为什么程序结构通常采用树状结构而不使用网状结构 对于不加限制的网状结构,整个结构十分复杂,处理起来会引起许多麻烦,这与原来划分模块,为便于处理的意图相矛盾.4.14 结构图是精确表达程序结构的图形表示方法,它主要包括的内容有:(1)模块;(2)模块的调用关系和接口;(3)模块间的消息传递;(4)两个辅助符号;(5)结构图的形态特征.4.15 什么是结构图的深度和宽度 在多层次的结构图中,其模块结构的层次数称为结构图的深度.结构图中同一层模块的最大模块数称为结构图的宽度.4.16 什么是模块的扇入和扇出 扇入

22、则定义为调用(或控制)一个给定模块的模块个数;扇出表示一个模块直接调用(或控制)的其他模块数目.4.17 将整个软件 划分成若干单独命名和可编址的部分 ,称为模块.4.18 信息隐蔽是指 每个模块的实现细节对于其它模块来说是隐蔽的.也就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用.4.19 模块化设计在软件开发中起很重要的作用,带来了许多好处,其中(1) 模块化设计降低了系统的复杂性,使得系统容易修改;(2) 推动了系统各个部分的并行开发,从而提高了软件的生产效率.4.20 模块具有三个基本属性(1) 功能 ;(2) 逻辑 ;(3) 状态 .4.21 模块的外部

23、特征是指 模块的模块名,参数表,其中的输入参数和输出参数,以及给程序以至整个系统造成的影响.4.22 模块的内部特征是指 完成其功能的程序代码和仅供该模块内部使用的数据 .4.23 模块的独立性是指 软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的.4.25 模块独立性比较强的模块应是 高内聚低藕合 模块.4.26 藕合性是 程序结构中各个模块之间相互关联的 度量.4.27 Myers提出了哪七种藕合性类型 非直接藕合(Nondirect Coupling):两个模块间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的.数据藕合(Data C

24、oupling):一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数,公共数据结构或外部变量)来交换输入,输出信息的.标记藕合(Stamp Coupling):模块间通过参数表传递记录信息.控制藕合(Control Coupling):模块通过传送开关,标志,名字等控制信息.外部藕合(External Coupling):一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息.公共藕合(Common Coupling):一组模块都访问同一个公共数据环境内容藕合(Content Coupling):两个模块间发生下面情形:(1)一个模块直接访问另

25、一个模块的内部数据;(2)一个模块不通过正常入口转到另一个模块内部;(3)两个模块有一部分程序代码重叠(只可能程序在汇编语言中);(4)一个模块有多个入口.4.28 在模块化设计时,应从哪几个方面考虑才可降低模块间的藕合度呢 1) 据问题的特点,选择适当的藕合类型;2) 降低模块接口的复杂性4.29 模块的内聚一共分为七种类型,它们分别是:功能内聚,信息内聚,通信内聚,过程内聚,时间内聚,逻辑内聚,巧合内聚.4.30 在系统结构图中称为不能再分解的底层模块称为原子模块.8.1 什么是软件测试 软件测试是为了发现错误而执行程序的过程.8.2 Myers提出的关于软件测试的目的是:(1) 测试是程

26、序的执行过程 ;(2) 一个好的测试用例在于能发现至今未发现的错误 ;(3) 一个成功的测试是发现了至今未发现的错误的测试 .8.3 软件测试的原则是什么 (1)应当把尽早地和不断地进行软件测试作为软件开发者的座右铭(2)测试用例应由测试输入数据和与之对应的预期输出结果这两个部分组成(3)程序员应避免检查自己的程序(4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件(5)充分注意测试中的群集现象(6)严格执行测试计划,排除测试的随意性(7)应当对每个测试结果做全面检查(8)妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便.8.4 测试计划应包括哪些内容 所测试软件

27、的功能,输入和输出,测试内容,各项测试的进度安排,资源要求,测试资料,测试工具,测试用例的选择,测试的控制方式和过程,系统组装方式,跟踪规程,测试规程,以及回归测试的规定等以及评价标准.8.5 软件测试对象应包括哪些内容 软件测试并不等于程序测试.软件测试应贯穿于软件定义与开发的整个期间.因此,需求分析,概要设计以及程序编码等各阶段所得得文档,包括需求规格说明,概要设计规格说明,详细设计规格说明以及源程序都应成为软件测试的对象.8.6 假设在测试阶段未能被发现的错误留到用户使用时才发现,到那时改正错误的费用比在开发阶段改正错误的费用要高出 40倍到80 倍.8.7 在软件测试中,采用黑盒测试主

28、要是为了发现哪几类错误 是否有不正确或遗漏了的功能 在接口上,输入能否正确地接受 能否输出正确的结果 是否有数据结构错误或外部信息(例如数据文件)访问错误 性能上是否能够满足要求 是否有初始化或终止性错误8.8 在软件测试中,采用白盒测试方法主要是为了对程序进行哪些检查 对程序模块的所有独立的执行路径至少测试一次;对所有的逻辑判定,取真与取假的两种情况都能至少测试一次;在循环的边界和运行界限内执行循环体;测试内部数据结构的有效性等等8.9 白盒测试的逻辑覆盖可分为:语句覆盖,判定覆盖,判定条件覆盖,条件组合覆盖及路径覆盖.8.10 基本路经测试法适用于模块的详细设计及源程序,它的是在程序控制流

29、图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法.设计出的测试用例要保证在测试中的程序的每个可执行语句至少执行一次.8.11 控制流图是 描述程序控制流的一种图示方法 .8.12 在黑盒测试过程中,采用等价类划分的方法是 一种典型的黑盒测试方法,也是一种非常实用的重要测试方法.8.13 等价类的划分有两种不同的情况:(1) 有效等价类 ;(2) 无效等价类 .8.14 划分等价类时,确定等价类的原则是什么 (1)如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类.(2)如果输入条件规定了输入值的集合,或者是规定了必须如何的条

30、件,这时可以确立一个有效等价类和一个无效等价类.(3)如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类.(4)如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理.(5)如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)(6)如果确知已划分的等价类中各元素在程序中的处理方式不同,则应将此类等价类进一步划分成更小的等价类.8.15 从划分出来的等价类中选择测试用例的原则是什么 (1)为每个等价类规定一个唯一的编号;(2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效

31、等价类都被覆盖为止.(3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止.8.16 用边界值分析方法,其选择测试用例的原则是什么 (1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据.(2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最大个数多1,比最小数少1的数作为测试数据.(3)根据规格说明的每个输出个数,使用前面的原则1).(4)根据规格说明的每个输出条件,使用前面的原则2)(5)如果程序的规格说明给出的输入域或输出域是有序集合(如有序表,顺序文件等),则应选取集

32、合的第一个元素和最后一个元素作为测试用例.(6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例.(7)分析规格说明,找出其它可能的边界条件.8.17 在软件测试中,什么是错误推测法 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例.8.18 用因果图生成测试用例的基本步骤是(1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符.(2)分析软件规格说明描述中的语意义,找出原因与结果之间,原因与原因之间对应的关系.根据这些关系,画出因果图.(3)由于语法或环

33、境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现.为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件.(4)把因果图转换成判定表.(5)把判定表的每一列拿出来作为依据,设计测试用例.8.19 请画出因果图的基本图形符号(恒等,非,或,与).8.20 请画出因果图的约束符号,并且标出有关信息以及解释每种约束符号的含义.8.21 软件测试过程按四个步骤进行:(1)单元测试,(2)组装(集成)测试,(3)确认测试,(4)系统测试.8.22 在单元测试中,需要在哪五个方面对所测试模块进行检查 模块接口,局部数据结构,边界条件,独立路径,出错处理8.23 单元测试的测试环境由哪几部

34、分构成 所测模块,与它相关的驱动模块及桩模块共同构成一个测试环境.8.24 在组装测试时,需要考虑哪些问题 (1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;(2)一个模块的功能是否会对另一个模块的功能产生不利的影响;(3)各个子功能组合起来,能否达到预期要求的父功能;(4)全局数据结构是否有问题;(5)单个模块的误差累积起来,是否会放大,从而达到不能接受的程度.8.25 把模块组装成为系统的方式有两种方式: 一次性组装方式 和 增殖式组装方式 .8.26 采用自顶向下的增值方式将模块按系统程序结构进行组装,其步骤是:(1)以主模块为所测模块兼驱动模块,所有直属于主模块的下属模块

35、全部用桩模块代替,对主模块进行测试.(2)采用深度优先或分层的策略,用实际模块替换相应桩模块,再用桩模块代替它们直接下属模块,与已测试的模块或子系统组装成新的子系统.(3)进行回归测试(即重新执行以前做过的全部测试或部分测试),排除组装过程中引入新的错误的可能.(4)判断是否所有的模块都已组装到系统中 是则结束测试,否则转到(2)去执行.8.27 采用自底向上的增值方式从程序模块结构的最底层的模块开始组装和测试,其步骤是: (1)驱动模块控制最底层模块的并行测试;也可以把最底层的模块组合成实现某一特定软件功能的模块,由驱动模块控制它进行测试.(2)用实际模块代替驱动模块,与它已测试的直属子模块

36、组装成为子系统.(3)为子系统配备驱动模块,进行新的测试.(4)判断是否已组装到达主模块 是则结束测试,否则转到(2)去执行.8.28 采用混合增殖式测试时,有三种常见的综合的增值方式是(1)衍变的自顶向下的增殖测试:它的基本思想是强化对输入/输出模块和引入新算法模块的测试,并自底向上组装成为功能相当完整且相对独立的子系统,然后由主模块开始自顶向下进行增殖测试.(2)自底向上自顶向下的增殖测试:它首先对含读操作的子系统自底向上至根结点模块进行组装和测试,然后对含写操作的子系统做自顶向下的组装与测试.(3)回归测试:这种方法采用自顶向下的方式测试所修改的模块及其子模块,然后将这一部分视为子系统,

37、再自底向上测试,以检查该子系统与其上级模块的接口是否适配.8.29 实行组装测试,在制定测试计划时,应考虑哪些因素 (1)是采用何种系统组装方法来进行组装测试.(2)组装测试过程中连接各个模块的顺序.(3)模块代码编制和测试进度是否与组装测试的顺序一致.(4)测试过程中是否需要专门的硬件设备.8.30 组装测试完成的标志是(1)成功地执行了测试计划中规定的所有组装测试(2)修正了所发现的错误(3)测试结果通过了专门小组的评审8.31 组装测试需要提交的文档有: 组装测试计划 , 组装测试规格说明 , 组装测试分析报告 .8.32 软件确认测试的任务是 验证软件的功能和性能及其它特性是否与用户的

38、需求一致 .8.33 全部软件测试的测试用例运行完毕后,得出的所有测试结果可分为类:(1) 测试结果与预期结果相符 ;(2)测试结果与预期结果不相符.8.34 在软件测试过程中,测试是由 一个用户在开发环境下 进行的测试;测试是由 软件的多个用户在一个或多个用户环境下 进行的测试.8.35 软件的确认测试应交付的文档有(1)确认测试分析报告(2)最终的用户手册和操作手册(3)项目开发总结报告8.36 软件的系统测试是 将通过确认测试的软件,做为整个基于计算机系统的一个元素,与计算机硬件,外设,某些支持软件,数据和人员等其它系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的组

39、装测试和确认测试 .8.37 242页表8.3中一共列出了多种测试种类 其中:功能测试是 是在规定的一段时间内运行软件系统的所有功能,以验证这个软件系统有无严重错误 ;文档测试是 检查用户文档(如用户手册)的清晰性和精确性.用户文档中所用的例子必须在测试中一一试过,确保叙述正确无误 .8.38 静态错误分析主要用于确定在源程序中是否有某类错误或危险结构,它有四种分析;(1)类型和单位分析;(2) 引用分析 ;(3) 表达式分析 ;(4) 接口分析 .8.39 源程序编制完成之后,为了支持对源程序进行静态分析而生成各种引用表,按其功能分类,引用表有三种:(1)直接从表中查出说明/使用错误.如循环

40、层次表,变量交叉表,标号交叉表.(2)为用户提供辅助信息.如子程序(宏,函数)引用表,等价表,常数表.(3)用来做错误预测和程序复杂度计算.如,操作符和操作数的统计表等.8.40 在软件测试的静态分析中进行人工测试的主要方法有 桌前检查 , 代码审查 和 走查 .8.41 在静态分析中进行人工测试所采用的桌前检查方法,其检查项目有哪些(1)(11),请扼要回答) (1)检查变量的交叉引用表:(2)检查标号的交叉引用表:(3)检查子程序,宏,函数:(4)等价性检查:(5)常量检查:(6)标准检查:(7)风格检查:(8)比较控制流:(9)选择,激活路径:(10)对照程序的规格说明,详细阅读源代码(

41、11)补充文档:8.42 在静态分析过程中,若代码评审工作结束后,需要做哪几件事 (1)把发现的错误登记造表,并交程序员;(2)若发现错误较多,或发现重大错误,则在改正之后,再次组织代码评审;(3)对错误登记表进行分析,归类,精炼,以提高审议效果.8.43 软件调试的任务是进一步诊断和改正程序中潜在的错误 .8.44 软件调试执行的步骤是:(1)从错误的外部表现形式入手,确定程序中出错位置;(2)研究有关部分的程序,找出错误的内在原因;(3)修改设计和代码,以排除这个错误;(4)重复进行暴露了这个错误的原始测试或某些有关测试,以确认:(a)是否排除了该错误;(b)是否引进了新的错误.(5)如果

42、所做的修正无效,则撤消这次改动,恢复程序修改之前的状态.8.45 在软件测试之所以困难,是由于人的心理因素与技术方面的原因所致,除了心理因素之外,从技术角度来看,查找错误的难度在于:(1)现象与原因所处的位置可能相距甚远.(2)当其它错误得到纠正时,这一错误所表现出的现象可能会暂时消失,但并未实际排除.(3)现象实际上是由一些非错误原因(例如,舍入得不精确)引起得.(4)现象可能是由于一些不容易发现的人为错误引起的.(5)错误是由于时间序列问题引起的,与处理过程无关.(6)现象是由于难于精确再现的输入状态(例如,实时应用中输入顺序不确定)引起.(7)现象可能是周期出现的.在软,硬件结合的嵌入式

43、系统中常常遇到.8.46 软件调试方法主要有(1) 强行排错 ;(2) 回溯法排错 ;(3) 归纳法排错 ;(4)演绎法排错.8.47 在软件调试方法中的归纳法排错,其步骤大致可分为四步:(1)收集有关的数据:(2)组织数据:(3)提出假设(4)证明假设.8.48演绎法排错主要有四个步骤:(1)列举所有可能出错原因的假设(2)利用已有的测试数据(3)改进余下的假设(4)证明余下的假设8.49 软件的调试原则分成两组:(1)确定错误的性质和位置的原则(2)修改错误的原则.8.50 静态分析工具有哪几类功能 (1)对模块中的所有变量,检查其是否都已定义,是否引用了未定义的变量,是否有已赋过值但从未

44、使用的变量.实现方法是建立变量的交叉引用表.(2)检查模块接口的一致性.(3)检查在逻辑上可能有错误的结构以及多余的不可达的程序段.(4)建立变量/语句交叉引用表,子程序调用顺序表,公共区/子程序交叉引用表等.利用它们找出变量错误可能影响到哪些语句,影响到哪些其它变量等.(5)检查所测试程序违反编程标准的错误.例如,模块大小,模块结构,注释的约定,某些语句形式的使用,以及文档编制的约定等.(6)对一些静态特性的统计功能:各种类型源程序的出现次数,标识符使用的交叉索引,标识符在每个语句中使用的情况,函数与过程引用情况,任何输入数据都执行不到的孤立代码段,未经定义的或未曾使用过的变量,违背编码标准

45、之处,公共变量与局部变量的各种统计.8.51 在动态测试工具中的测试覆盖监视程序的工作过程分为哪三个阶段 (1)对所测试程序做预处理.(2)编译预处理后的源程序.(3)一组测试后,可以根据要求,输出某一语句的执行次数,某一转移发生的次数,某赋值语句的数值范围,某循环控制变量的数据范围,某子程序运行的时间,所调用的次数等.8.52 在动态测试工具中的断言处理程序的工作过程分为哪三个阶段.(1)动态断言处理对语言源程序做预处理,为注释语句中的每个断言插入一段相应的检验程序.(2)运行经过预处理的程序,检验程序将检查程序的实际运行结果与断言所规定的逻辑状态是否一致.对于局部性断言,每当程序执行到这个位置时,相应的检验程序就要工作;对于全局性断言,在每次变量被赋值后,相应的检验程序就进行工作.(3)一组测试结束后,程序统计结果,供测试人员分析.图4.1 开发阶段的信息流=设计测试编码信息域需求数据设计系统结构设计功能与性能需求过程设计程序模块组装好的有效的软件

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!