期末软件工程资料整理

合集下载

软件工程期末考试复习资料1

软件工程期末考试复习资料1

软件工程期末考试复习资料1版权声明:本文版权归05112114、05112125 所有,未经许可,任何任何媒体均不得改变其形式,进行转载或摘录,违者必究!软件工程期末考试复习资料一(仅参考)拟订人:超越吉他手、朱古力、哖_少オ輕狂第一章:软件工程的产生和发展有关复习资料一、软件工程的定义:1、软件危机的产生:软件危机的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。

2、软件危机主要表现:两个方面:①软件产品质量低劣,甚至开发过程就夭折②软件生产率低,不能满足需要3、软件工程的三要素:①方法:完成软件开发各项任务的技术方法②工具:研究支撑软件开发方法的工具③过程:为开发高质量软件所规定的各项任务的工作步骤4、软件工程研究的标准及目标:标准:分为4个层次,国际标准、行业标准、企业规划、项目规划目标:以较少的投资获取高质量的软件。

有易于维护、低的开发成本、高性能、缩短开发期5、软件工程研究的主要内容:以下两个方面:①软件开发方法、技术;软件开发工具及环境②软件管理技术、软件规范(国际规范)7、软件工程学的目的:①以较少的投资获取高质量的软件②运用科学的方法和工程化的规范管理来指导软件开发③克服软件危机8、软件工程的基本原则:如下4条基本原则①必须认识软件需求的变动性,采取适当措施来保证结果产品能忠实地满足用户需求②稳妥的设计方法大大地方便了软件开发,以达到软件工程的目标③软件工程项目的质量与经济开销直接取决于对它所提供的支撑的质量与效用④有效的软件工程只有在对软件过程进行有效管理的情况下才能实现9、软件工程过程及特性:是指在软件工具的支持下,所进行的一系列软件工程活动包括4类基本过程:1)软件规格说明书2)软件开发3)软件确认4)软件演进特性:可理解性、可见性、可靠性、可支持性、可维护性、可接受性、开发效率和健壮性等。

二、软件与软件生存周期1、软件的概念和特点1)概念:软件是程序以及开发使用维护程序所需的所有文档2)软件的构成:由应用程序、系统程序、面向用户的文档及面向开发者的文档4部分构成即:软件=程序+文档3)特点:①软件是一种逻辑实体,不是具体的物理实体②软件产品的生产主要是研制③软件具有复杂性,开发和运行常受到计算机系统的限制、④软件成本昂贵,开发方式还没完全摆脱手工生产方式⑤软件不存在老化和磨损,存在在退化问题2、软件的分类1)按照软件功能划分①系统软件②支撑软件③应用软件2)按照软件规模划分微型、小型、中型、大型、甚大型、极大型3)按照软件工作方式划分实时处理软件、交互式软件、批处理软件4)按照软件服务对象的范围划分项目软件、产品软件3、软件结构及结构图衡量软件结构的有关指标:1)深度2)宽度3)扇出数扇入数软件结构的形态准则:顶部宽度小,中部宽度大,底部宽度次之;在顶部有较高的扇出数底部有较高的扇入数软件结构:1)模块(构成软件系统结构的基本元素)2)模块化3)软件的层次结构4)树状结构:特点是是程序的主模块、整个结构只有一个顶层模块、也只有一个上级模块、同一层模块之间没有横向联系5)网状结构:特点是任何两个模块之间有双向的关系、都是平等的结构图的构成:主要有模块、调用、数据4、软件生存期有关资料1)定义:是指从软件开始开发到报废的全过程,亦称软件生存期(l i f e c y c l e)。

软件工程期末资料整理

软件工程期末资料整理

一、软件生命期各阶段的任务是什么?软件生命期分为7个阶段:1) 问题定义:确定要解决的问题是什么;2) 可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性;3) 需求分析:确定该系统必须做什么;4) 总体设计:确定系统如何实现,包括系统设计和结构设计;5) 详细设计:具体实现设计的系统;6) 实现:编码和测试;7) 运行维护:保证软件正常运行。

二、软件重用的效益是什么?1) 软件重用可以显著地改善软件的质量和可靠性; 2) 软件重用可以极大地提高软件开发的效率;3) 节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。

三、简述软件工程的七条基本原理。

1) 用分阶段的生命周期计划严格管理; 2) 坚持进行阶段评审; 3) 实行严格的产品控制; 4) 采用现代程序设计技术; 5) 结果应能清楚地审查;6) 开发小组的人员应该少而精;7) 承认不断改进软件工程实践的必要性。

四、简述软件测试要经过哪几个步骤,每个步骤与什么文档有关。

软件测试要经过模块测试、子系统测试、系统测试、验收测试和平行运行5个步骤。

1) 模块测试:又称单元测试,集中对用源代码实现的每一个程序单元进行测试,与其相关的文档是单元测试计划和详细设计说明书。

2) 子系统测试与系统测试:把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。

与其相关的文档是集成测试计划和软件需求说明书。

3) 验收测试:确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。

与其相关的文档是确认测试计划和软件需求说明书。

4) 平行运行:把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。

与其相关的文档:用户指南、使用手册等。

五、自顶而下渐增测试与自底而上渐增测试各有何优、缺点?自顶向下测试方法的主要优点是不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能在早期发现上层模块的接口错误。

软件工程期末复习重点

软件工程期末复习重点

1.软件危机的介绍在计算机软件的开发和维护过程中所遇到的一系列严重问题。

2.产生软件危机的原因与软件本身特点有关:软件开发与维护的方法不正确有关:3.消除软件危机的途径4.软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。

5.软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。

这个时期的工作通常又称为系统分析,由系统分析员负责完成。

软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。

6.开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。

其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。

7.维护时期的主要任务是使软件持久地满足用户的需要。

8.软件生命周期每个阶段的基本任务:问题定义、可行性研究,需求分析,总体设计,详细设计,编码和单元测试,综合测试。

9.常用软件模型区别原理:(1)瀑布模型:按照传统的瀑布模型开发软件,有下述的几个特点。

a)阶段间具有顺序性和依赖性:两重含义:段的输出文档正确,后一阶段的工作才能获得正确的结果。

①必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶b) 推迟实现的观点瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现。

c)质量保证的观点:软件工程的基本目标是优质、高产。

为了保证所开发的软件的质量,在瀑布模型的每个阶段都应坚持两个重要做法。

每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。

每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。

软件工程期末整理

软件工程期末整理

软件工程期末整理软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。

在期末来临之际,对软件工程的知识进行系统的整理和回顾是非常重要的。

首先,让我们来谈谈软件工程的基本概念。

软件工程的目标是生产高质量的软件产品,这不仅包括满足用户的需求和期望,还包括软件的可维护性、可扩展性、可靠性、效率等方面的特性。

为了实现这些目标,软件工程采用了一系列的方法和技术,从需求分析到软件设计、编码实现、测试、维护等各个阶段,都有相应的规范和流程。

需求分析是软件工程的第一步,也是最为关键的一步。

在这个阶段,需要与用户进行充分的沟通和交流,了解他们的需求和期望,将其转化为明确的、详细的软件需求规格说明。

这不仅要求具备良好的沟通能力,还需要能够对用户的需求进行分析和提炼,识别出真正的需求和潜在的需求。

如果需求分析做得不好,后面的工作都可能是徒劳的,因为软件可能根本不符合用户的需求。

软件设计是根据需求规格说明,对软件的体系结构、模块划分、接口设计等进行规划和设计。

好的软件设计应该具有高内聚、低耦合的特点,使得软件易于理解、维护和扩展。

在设计过程中,需要考虑多种设计方案,并进行评估和选择,以找到最优的设计方案。

编码实现是将设计转化为实际的代码。

在编码过程中,要遵循良好的编程规范,使用合适的算法和数据结构,提高代码的质量和效率。

同时,要注意代码的可读性和可维护性,为后续的维护工作打下良好的基础。

测试是软件工程中不可或缺的环节。

通过测试,可以发现软件中的缺陷和错误,并及时进行修复。

测试包括单元测试、集成测试、系统测试、验收测试等多个阶段,每个阶段都有不同的测试目标和方法。

测试人员需要制定详细的测试计划和测试用例,确保软件的质量。

维护是软件生命周期中最长的阶段。

在软件投入使用后,可能会出现各种问题,需要进行维护和改进。

软件工程基础期末复习资料完整版

软件工程基础期末复习资料完整版

2.文档有何作用?程序代码属不属于文档?答:文档指的是在软件开发和维护过程中形成的文字记录。

从软件计划、分析、设计、实现(编码和测试)、维护等开发活动中形成的各种文件。

文档属于软件的一部分,是软件维护和升级的重要依据,并且文档内容要与代码同步更新。

没有文档的软件维护不但不能延长反而会缩短软件寿命。

文档包括需求规格说明书、设计说明书、用户使用说明书、在线帮助等,当然程序代码是必不可少的一种软件文档。

3.什么是软件危机?什么原因产生了软件危机?答:软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题。

产生的原因是主客观不相适应。

见书图1-2。

●客观上:软件规模增大、功能要求越来越复杂,需求不断变化等;●主观上:传统的个体化开发观念和方法,无开发过程指导,无开发过程管理;由于主客观矛盾,必然产生软件质量差、开发超期、超预算、维护困难等现象。

5.软件工程三要素是什么?答:软件工程三要素是从计算机科学观点看软件工程,即从软件开发的技术层面应该有过程、方法和工具。

见图1-4。

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

过程定义的活动集合及其序列见第2章。

(3)“方法”为软件开发提供“如何做”的技术,它涵盖了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列活动的做法。

如经常说的面向结构、面向对象、面向组件等开发方法,项目管理中估算、度量、计划等管理方法。

软件工程以介绍方法为主,本书从第3章开始逐步介绍开发过程所用到的方法。

(4)“工具”为过程和方法提供自动的或半自动的支持。

这些工具既包括软件也有硬件。

软件工具包括编程、建模、管理等开发工具。

通过网络环境把这些软件工具集成起来搭建一个支持团队开发的平台,称之为计算机辅助软件工程 (Computer Aided Software Engineering,CASE)。

CASE集成了软件、硬件和一个存放开发过程信息的软件工程数据库,形成了一个软件工程环境。

软件工程期末复习要点归纳总结

软件工程期末复习要点归纳总结

第一章第二章第三章软件工程学概论1、软件危机产生的原因软件本身的特点:难于维护、逻辑复杂软件开发与维护的方法不正确:忽略需求分析重要性、轻视软件维护课本表述:1、软件不同于硬件,它是计算机中的逻辑部件而不是物理部件2、软件不同于一般程序,它的一个显著特点是规模庞大,而且程序的复杂性将规模的增加而呈现指数上升。

3、软件本身特有的特点确实给开发和维护带了一些客观困难4、软件开发与维护有关的许多错误认识与做法有关(忽略需求分析,轻视软件维护)5、对用户要求没有完整准确的认识就匆忙开始着手编写程序6、在软件不同阶段进行修改需要付出的代价是很不相同的2、软件危机的表现(什么是软件危机)(1)、成本高:(2)、软件质量得不到保证:软件质量问题导致失败的软件项目非常多(3)、进度难以控制:●项目延期比比皆是●由于进度问题而取消的软件项目较常见●只有一小部分的项目能够按期完成(4)、维护十分困难:▼软件维护的多样性▼软件维护的复杂性▼软件维护的副作用3、克服软件危机(1)、管理的角度:软件开发过程的研究、文档的标准化以及人员的交流方式等(2)、软件开发方法的研究结构化软件开发方法, 面向对象的开发4、软件工程的定义概括的说,软件工程师指导计算机软件开发和维护的一门工程学科。

采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

(1)、软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运行的软件。

(2)、①把系统的、规范的、可度量的方法应用于软件开发、运行和维护的过程,也就是把工程应用于软件.②研究①中提到的途径总之:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。

他借鉴传统工程的原理、方法,以提高质量,降低成本为目的。

5、软件工程的本质特性1、关注与大型程序的构造2、中心课题是控制复杂度3、软件经常变化4、开发软件的效率非常重要5、和谐的合作是开发软件的关键6、软件必须有效地支持它的用户7、在软件工程领域中通常由具有一个文化背景的人替另外一种文化背景的人创造产品6、软件工程的基本原理1、用分阶段的生命周期计划严格管理2、坚持进行阶段评审3、实行严格的产品控制4、采用现代程序设计技术5、结果应能清楚地审查6、开发小组应该少而精7、承认不断改进软件工程实践的必要性软件工程学包含3个要素:方法、工具和过程7、软件生命周期(1)、概念:软件生命周期由软件定义、软件开发和运行维护(也成软件维护)3个时期组成。

软件工程复习资料-完整版

软件工程复习资料-完整版

软件工程复习资料-完整版一、概述软件工程是一门关于开发、维护和管理软件的综合学科。

它涵盖了软件开发的各个阶段,包括需求分析、设计、编码、测试和维护。

软件工程的目标是提供高质量的软件,满足用户的需求,同时将开发过程控制在预定的时间和预算范围内。

二、软件生命周期1. 需求分析阶段在需求分析阶段,开发团队与用户沟通,了解用户的需求和期望。

通过需求分析,确定软件的功能和性能要求,制定详细的需求规格说明。

2. 设计阶段在设计阶段,团队根据需求规格说明,设计软件的整体架构和模块。

设计阶段包括概要设计和详细设计,概要设计主要确定软件的整体结构,详细设计则更加具体,包括模块的功能和接口设计。

3. 编码阶段在编码阶段,根据详细设计,实现软件的各个模块。

编码时应遵循编程规范,确保代码的可读性和可维护性。

同时,要进行单元测试,确保每个模块的功能正确。

4. 测试阶段在测试阶段,对软件进行不同层次的测试,包括单元测试、集成测试和系统测试。

单元测试测试各个模块的功能,集成测试测试模块之间的接口,系统测试测试整个系统的功能和性能。

5. 部署和维护阶段在软件开发完成后,需要将软件部署到目标环境中,并进行用户培训。

同时,还需要对软件进行维护和升级,以解决出现的问题和满足用户的需求变化。

三、软件工程的原则1. 模块化将软件划分为多个模块,每个模块负责特定的功能。

模块化能够提高软件的可维护性和复用性,同时有利于团队的协作开发。

2. 可伸缩性软件应该具备可伸缩性,能够满足不同规模和需求的用户。

在设计和实现软件时,需要考虑未来的扩展和升级,保证软件的灵活性。

3. 可测试性软件应该具备可测试性,方便进行各个阶段的测试。

在设计和编码时,需要考虑如何进行自动化测试,提高测试的效率和覆盖率。

4. 可维护性软件应该具备可维护性,方便对软件进行改进、修复和升级。

在设计和编码时,需要遵循良好的编程规范,提高代码的可读性和可维护性。

5. 文档化软件开发过程需要进行详细的文档记录,包括需求文档、设计文档、测试文档等。

软件工程知识点复习资料

软件工程知识点复习资料

软件工程知识点复习资料一、软件工程概述软件工程是一门研究如何以系统性的、规范化的、可度量的方法进行软件开发、运行、维护和管理的学科。

它涵盖了软件开发生命周期的各个阶段,包括需求分析、系统设计、编码实现、测试和维护等。

二、软件生命周期与开发模型1. 软件生命周期包括需求分析、系统设计、编码实现、测试和维护等阶段。

不同的项目可以采用不同的开发模型,常见的有瀑布模型、迭代模型和敏捷模型。

2. 瀑布模型是一种线性顺序开发模型,各个阶段严格按序进行,适用于需求较为稳定的项目。

3. 迭代模型将软件开发过程划分为多个迭代阶段,每个迭代阶段都包含需求分析、设计、编码和测试等活动,适用于需求较为不确定或需要持续改进的项目。

4. 敏捷模型强调快速响应需求变化和灵活合作,通过迭代、增量的方式进行开发,适用于需求频繁变更的项目。

三、需求工程1. 需求分析是软件开发的第一步,包括需求获取、需求分析、需求建模等过程,目的是明确系统的功能和性能需求,并与客户达成一致。

2. 需求获取可以通过面谈、问卷调查、观察等方式进行,需求分析则要对已收集到的需求进行分析、整理和归纳。

3. 需求建模使用UML(统一建模语言)等工具,将需求表示为用例图、活动图、时序图等形式,便于后续的系统设计和编码实现。

四、设计与架构1. 系统设计是软件开发的关键阶段,包括软件架构设计和详细设计等过程,目的是指导后续的编码和测试工作。

2. 软件架构设计确定系统的整体结构、模块划分和模块间的关系,常见的架构风格包括层次结构、客户-服务器、面向对象等。

3. 详细设计是对系统模块的具体设计,包括数据结构设计、算法设计和接口设计等,常用的设计方法有结构化设计和面向对象设计。

五、编码实现与调试1. 编码实现是将设计阶段得到的设计方案转化为计算机可执行的代码,采用合适的编程语言和开发工具进行。

2. 编码时要注重代码的可读性、可维护性和可重用性,采用良好的编程风格和命名规范。

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

1.软件工程的基本原理?答:基本原理包括3要素:方法,工具,过程;其中,方法是完成软件开发任务的技术方法回答怎样做的问题;工具是为运用方法提供自动半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,他是完成各任务的工作步骤。

2.RUP中有9个工作流,前6个为过程工作流,后3个为核心支持工作流程。

3.问答:P.32第2题4.简述结构化范型和面向对象范型的要点,分析优缺点。

5.电话号码有几类:校内电话号码由4位数字组成,第1位不是0;校外电话分本市电话和外地电话,拨校外电话需先拨0,本市电话则再接着拨8位数字(第1位不是0),外地电话则拨3位区码再拨8位电话号码(第1位不是0)。

答案:电话号码=[校内电话号码|校外电话号码]校内电话号码=非零数字+3位数字校外电话号码=[本市号码|外地号码]本市号码=数字零+8位数字外地号码=数字零+3位数字+8位数字非零数字=[1|2|3|4|5|6|7|8|9]数字零=03位数字=3{数字}38位数字=非零数字+7位数字7位数字=7{数字}7数字=[0|1|2|3|4|5|6|7|8|9]6.名词解释:第一范式,第二范式,第三范式答:第一范式:每个属性都必须是原子值,仅仅是一个简单的值而不能含内部结构。

第二范式:满足第一范式条件,且每个关键字属性都由整个关键字决定。

第三范式:符合第二范式条件,每个关键字属性都仅由关键字决定,且一个费关键字属性不能仅仅是对另一个非关键字属性的进一步描述。

7.储蓄系统:储户填写的存款单或取款单由业务员输入系统,是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。

试用数据流图描绘下述系统的功能,并用实体-联系图描绘系统中的数据对象。

答案:系统的数据流图如下图所示:系统的实体-联系图如下图所示:8.填空:对每个合理方案,分析员都应准备4分资料:1系统流程图2组成系统的物理元素清单3成本/效益分析4实现这个系统的进度计划。

9.名词解释:耦合:耦合是对一个软件结构内不同模块之间互连程度的度量。

内聚:内聚标志一个模块内各个元素彼此结合的紧密程度,他是信息隐藏和局部化概念的自然扩展。

10.分析:较高较低耦合性,p.9711.填空:设计原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。

12.由高到低功能内聚,顺序内聚,通信内聚,过程内聚,时间内聚,逻辑内聚,偶然内聚13.分析:深度,宽度,扇入,扇出P.10014.分析:程序流程图优缺点?答:1.不是逐步求精的好工具。

2.流程图用箭头代表控制流,程序员不受约束可以随意转移控制。

3.流程图不易表示数据结构。

15.分析盒图N-S图的特点?答:1.功能域明确,可以从盒图一眼看出2.不能随意转移控制3.很容易确定局部和全程数据的作用域4很容易表现嵌套关系,也可以表示模块的层次结构。

16.PAD图的优缺点?答:1设计出来的程序必然是结构化程序2程序结构清晰3易读易懂易记易修改4容易将PDA图转换成高级语言源程序5可表示程序逻辑也可描绘数据结构6支持自顶向下逐步求精方法使用。

17.名词解释:PAD图:问题分析图,用二维树形结构的图来表示程序的控制流,翻译成代码比较容易。

18.面向数据结构的设计方法:最终目标是对程序处理过程的描述,这种方法最适合在(详细设计)阶段使用。

19.软件测试目标?答:1测试是为了发现程序中的错误而执行程序的过程2好的测试方案是极有可能发现迄今为止尚未发现的错误的测试方案3成功的测试是发现了至今尚未发现的错误的测试。

20.软件测试的准则?答:1所有测试都应该追溯到用户需求2该在测试之前制定测试计划3把Pareto原理应用到软件测试中4从小规模测试开始逐步进行大规模测试5穷举测试是不可能的。

6为达到效果应该由第三方从事测试工作。

21.单元测试概念:P15322.名词解释:回归测试:回归测试是用于保证由于调试或其他原因引起的变化,不会导致非预期软件行为或额外错误的测试活动。

23.Alpha和Beta:Alpha测试由用户在开发者的场所进行,并在开发者的指导下进行。

Beta 测试由软件最终用户在一个或多个场所进行。

24.判断:满足条件覆盖一定满足判定覆盖,错。

满足判定覆盖一定满足条件覆盖,错。

25.判断,经过黑盒测试正确则白盒测试一定正确,错。

26.划分出等价类以后,根据等价类测试方案主要使用两个步骤:1设计一个新的测试方案以尽可能多地覆盖尚未被覆盖的有(效等价类),重复这一步骤到所有有效等价类都被覆盖。

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

P17327.平均无故障时间MTTF和平均维修时间MTTR的概念,计算。

P18028.7-4、回答下列问题。

(1)什么是模块测试和集成测试?它们各有什么特点?(2)假设有一个由1000行FORTRAN语句构成的程序(经编译后大约有5000条机器指令),估计在对它进行测试期间将发现多少个错误?为什么?(3)设计下列伪码程序的语句覆盖和路径覆盖测试用例。

STARTINPUT(A,B,C)IF A>5THENX=10ELSEX=1END IFIF B>10THENY=20ELSEY=2END IFIF C>15THENZ=30ELSEZ=3END IFPRINT(X,Y,Z)STOP解答:(1)见教材。

(2)经验表明,在类似的程序中,单位长度里的错误数ET/IT近似为常数。

美国的一些统计数字表明,通常:0.005<=ET/IT<=0.02,即在测试之前,每1000条指令中大约有5~20个错误。

所以,在对1000行FORTRAN语句构成的程序进行测试期间将发现的错误的个数大约有25~100个。

(3)该伪码程序对应的程序流程图如下:从上到下每个判定依次命名为a、b、c:29.对一个包含10000条机器指令的程序进行一个月集成测试后,总共改正了15个错误,此时MTTF=10h;经过两个月测试后,总共改正了25个错误(第二个月改正了10个错误),MTTF=15h。

要求:(1)根据上述数据确定MTTF与测试时间之间的函数关系,画出MTTF与测试时间τ的关系曲线。

在画这条曲线时做了什么假设?(2)为做到MTTF=100h,必须进行多长时间的集成测试?(3)当集成测试结束时总共改正了多少个错误,还有多少个错误潜伏在程序中?解答:(1)因为平均无故障时间MTTF与测试时间τ之间存在线性关系,即MTTF=a+bτ,由于:10=a+b,15=a+2b,得到:a=5,b=5故:平均无故障时间MTTF与测试时间τ之间存在线性关系为:MTTF=5+5τ(2)为做到MTTF=100h,有方程:100=5+5τ,故τ=19即必须进行19个月的集成测试。

(3)由于经验:平均无故障时间与单位长度程序中剩余的错误数成反比,故有:MTTF=10000/(K*(ET-EC(τ)))由于:10=10000/(K*(ET-15)),15=10000/(K*(ET-25))得到:ET=45,K=33.33当集成测试结束时,MTTF=100h,有:100=10000/(33.33*(45-EC(19)))故:EC(19)=42,即当集成测试结束时总共改正了42个错误,还有45-42=3个错误潜伏在程序中。

30.在测试一个长度为24000条指令的程序时,第一个月由甲、乙两名测试员各自独立测试这个程序。

经一个月测试后,甲发现并改正20个错误,使MTTF达到10h。

与此同时,乙发现24个错误,其中6个甲也发现了。

以后由甲一个人继续测试这个程序。

问:(1)刚开始测试时程序中总共有多少个潜藏的错误?(2)为使MTTF达到60h,必须再改正多少个错误?还需用多长测试时间?(3)画出MTTF与集成测试时间τ之间的函数关系曲线。

解答:(1)本题中采用的是分别测试法,测试前程序中的错误总数:B0=B1*B2/bc=20*24/6=80(2)由于经验:平均无故障时间与单位长度程序中剩余的错误数成反比,故有:MTTF=24000/(K*(ET-EC(τ)))由于:10=24000/(K*(80-20))得到:K=40为使MTTF达到60h,有:60=24000/(40*(80-EC(τ)))故:EC(τ)=70,即总共需要改正70个错误,由于测试员甲和乙分别测试时,测试员甲已经更正了20个错误,以后由甲一个人继续测试这个程序,因此,还需要更正70-20=50个错误。

补充:【复旦大学2001年博士研究生入学考试试题】某模块的程序流程图如下。

试分别根据判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖等覆盖标准设计最少的测试用例。

$:从上到下给每个判定依次编号为a、b。

路径覆盖与判定覆盖或判定/条件覆盖一致。

相关文档
最新文档