软件工程期末复习_第1页
软件工程期末复习_第2页
软件工程期末复习_第3页
软件工程期末复习_第4页
软件工程期末复习_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一节第一节 软件工程的产生和发展软件工程的产生和发展软件软件:计算机程序及其说明程序的各种文档。程序是计算任务的处理对象和处理规则的描述。软件的特点软件的特点:1 是一种逻辑产品,与物质产品有很大的区别。2 软件产品的生产主要是研制,生产成本主要在开发和研制,开发研制完成后,通过复制就产生了大量软件产品。3 软件产品不会用坏,不存在磨损,消耗。4 生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品是定做的。5 开发软件的费用不断增加,致使生产成本相当昂贵l按软件的功能分类l 系统软件:能与计算机硬件紧密配合在一起,使计算机系统各个部件、相关的软件和数据协调、高效率地工作的软件。如操作系

2、统、数据库管理系统、设备驱动程序以及通信处理程序等。系统软件是计算机系统中必不可少的一个组成部分。l 应用软件:是在特定的领域内开发,为特定目的服务的一类软件。如,CADCAM 计算机辅助制造CAI 计算机辅助教学, 专家系统,模式识别,刹车系统l l软件生产的发展:1 程序设计时代:这个阶段生产方式是个体劳动,生产工具是机器语言,汇编语言。(1946-1956年)2 程序系统时代:这个阶段生产方式是小集团合作生产,生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法。(1956-1968年)3 软件工程时代:这个阶段生产方式是工程化的生产,使用数据库,开发工具,开发环境,网络,分

3、布式面向对象技术来开发软件。(1968年至今)l软件危机: 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。l软件危机的表现:l1 经费预算经常突破,完成时间一再拖延。l2 开发的软件不能满足用户要求。l3 开发的软件可维护性差。l4 开发的软件可靠性差。l软件危机产生原因:l1 软件规模越来越大,结构越来越复杂。l2 软件开发管理困难而复杂。l3 软件开发费用不断增加。l4 软件开发技术落后。l5 生产方式落后,仍采用手工方式。l6 开发工具落后,生产率提高缓慢。l软件工程软件工程:用科学的知识和技术原理来定义,开发

4、,维护软件的一门学科。l用工程科学的观点进行费用估算,制定进度,制定计划和方案。l用管理科学的方法和原理进行生产的管理。l用数学的方法建立软件开发中的各种模型和算法。l 那么为达到软件优质高产这个目标,从技术到管理做了大量的努力,从而逐渐已形成了软件工l软件工程:规定了获取,供应,开发,操作和维护软件时,要实施的过程,活动和任务。目的是为各种人员提供公共的框架,以便用相同的语言进行交流。l包括:获取过程,供应过程,开发过程,操作过程,维护过程,管理过程,支持过程。l软件生存周期软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。l包括:可行性分析和项目开发计划,需求分析,概要

5、设计,详细设计,编码,测试,维护。1 1 、瀑布模型:将软件生存周期中各活动、瀑布模型:将软件生存周期中各活动规定为依线性顺序连接的若干阶段。包规定为依线性顺序连接的若干阶段。包括可行性分析,项目开发计划,需求分括可行性分析,项目开发计划,需求分析,概要设计,详细设计,编码,测试析,概要设计,详细设计,编码,测试和维护。它是一种理想的线性开发模式,和维护。它是一种理想的线性开发模式,缺乏灵活,特别是无法解决软件需求不缺乏灵活,特别是无法解决软件需求不明确的问题。适合于需求明确,设计方明确的问题。适合于需求明确,设计方案有一定风险的软件项目。案有一定风险的软件项目。l2 2 增量模型:软件在模型

6、中是增量模型:软件在模型中是“逐渐逐渐”开发出来的,开发一部分,展示一部分,开发出来的,开发一部分,展示一部分,能及早发现问题。或者先开发一能及早发现问题。或者先开发一“原型原型”软件,完成主要功能,然后逐步完善,软件,完成主要功能,然后逐步完善,最终获得满意的软件产品,适合需求不最终获得满意的软件产品,适合需求不明确,设计方案有一定风险的软件项目。明确,设计方案有一定风险的软件项目。l3 3 螺旋模型:将瀑布模型与增量模型结螺旋模型:将瀑布模型与增量模型结合起来,加入风险分析,弥补了这两种合起来,加入风险分析,弥补了这两种模型的不足。开发分四步:制定计划,模型的不足。开发分四步:制定计划,风

7、险分析,开发实施,用户评估。适合风险分析,开发实施,用户评估。适合于大型软件的开发。于大型软件的开发。l4 4 喷泉模型:以用户需求为动力,以对喷泉模型:以用户需求为动力,以对象为驱运动模型,适合于面向对象开发象为驱运动模型,适合于面向对象开发方法,使开发过程具有迭代性和无间隙方法,使开发过程具有迭代性和无间隙性性l第四节第四节 软件开发方法:软件开发方法:l使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。l1、结构化方法:一种面向数据流的开发方法,适合数据处理领域。指导思想是自顶向下,逐步求精。用数据流图建立系统功能模型,完成需求分析工作。用软件结构图建立系统物理模型,实现概要设计

8、。最后将每个模块的功能用相应标准控制结构表示出来,从而实现详细设计2面向对象的开发方法:基本出发点是尽可能按人类认识世界的方法和思维方式来分析和解决问题。以对象作为最基本的元素,客观世界中具体的事物,事件,概念和规则都有可看成对象,它也是分析问题,解决问题的核心。开发方法包括面向对象分析,面向对象设计,面向对象实现。主要有BOOCH方法,Coad方法和OMT方法。为统一这些方法的术语,概念和模型,(1997年)推出统一建模型语言UML。 软件可行性研究软件可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。注意,可行性研究的目的不是去开发一个软件项目,

9、而是研究这个软件项目是否值得去开发,其中的问提能否解决。可行性研究实质上是要进行一次简化、压缩了的需求分析、设计过程,要在较高层次上以较抽象的方式进行需求分析和设计过程l典型的可行性研究有下列步骤:确定项目规模和目标;研究正在运行的系统;建立新系统的高层逻辑模型;导出和评价各种方案;推荐可行的方案;编写可行性研究报告l可行性研究报告的主要内容:引言;可行性研究前提;对现有系统的分析;所建议系统的技术可行性分析;所建议系统的经济可行性分析;社会因素可行性分析;其他可供选择方案;结论意见。 l成本效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡。效益分有形效益和无形效

10、益两种l有形效益可以用货币的时间价值、投资回收期、纯收入等指标进行度量;无形效益主要从性质上、心理上进行衡量,很难直接进行量的比较。 投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。 项目的纯收入,也就是在整个生存周期之内的累计经济效益(折合成现在值)与投资之差l第二章:需求分析是指,开发人员要准确第二章:需求分析是指,开发人员要准确理解用户的要求,进行细致的调查分析,理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。功能

11、规约(需求规格说明)的过程。l它的难点主要体现在以下几个方面:它的难点主要体现在以下几个方面:l问题的复杂性;问题的复杂性;l交流障碍;交流障碍;l不完备性和不一致性。需求易变性不完备性和不一致性。需求易变性l1.1.数据流图的分类及表示数据流图的分类及表示l2 2、加工逻辑的描述工具:结构化语言、加工逻辑的描述工具:结构化语言、判定树、判定表。判定树、判定表。l3 3、结构化设计的方法(掌握)、结构化设计的方法(掌握)l在软件需求分析阶段,已经搞清楚了软件“做什么”的问题,并把这些需求通过规格说明书描述了出来,这也是目标系统的逻辑模型。进入了设计阶段,要把软件“做什么”的逻辑模型变换为“怎么

12、做”的物理模型,即着手实现软件的需求,并将设计的结果反映在“设计规格说明”文档中,软件设计是一个把软件需求转换为软件表示的过程,最初这种表示只是描述了软件的总的体系结构,称为软件概要设计或结构设计。然后对结构进一步细分,称为详细设计或过程设计l需求分析的基本任务是要准确地定义新系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。 l本阶段要进行以下几方面的工作:l 问题识别:功能需求;性能需求;环境需求;用户界面需求 分析与综合,导出软件的逻辑模型 编写文档:需求规格说明书;初步用户使用手册;确认测试计划;修改完善软件开发计划第三章:概要设计的基本任务:第三章:概要设计的基本任务: 1

13、 1 、设计软件系统结构(简称软件结构)设计软件系统结构(简称软件结构)采用某种设计方法,将一个复杂的系采用某种设计方法,将一个复杂的系统按功能划分成模块;确定每个模块的功统按功能划分成模块;确定每个模块的功能;确定模块之间的接口,即模块之间传能;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量。递的信息;评价模块结构的质量。 l2、数据结构及数据库设计 l数据库的设计指数据存储文件的设计(概念设计、逻辑设计、物理设计) l数据库的“概念设计”、“逻辑设计”分别对应于系统开发中的“需求分析”与“概要设计”,而数据库的“物理设计”与模块的“详细设计”相对应l3、编写概要设计文档l4

14、、评审软件结构设计是以模块为基础的,在需求分析阶段,已软件结构设计是以模块为基础的,在需求分析阶段,已经把系统分解为层次结构。设计阶段,以需求分析的结经把系统分解为层次结构。设计阶段,以需求分析的结果为依据,从实现的角度进一步划分为模块,并组成模果为依据,从实现的角度进一步划分为模块,并组成模块的层次结构。块的层次结构。l软件设计的基本原理l1、模块化:就是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。l2、抽象:在软件工程中就是这样,在每个阶段中,抽象的层次逐步降低,在软件结构设计中的模块分层也是由抽象到具体的分析和构造出来的。l3、信息隐蔽l4、模块独立性l衡量软件的模块

15、独立性两个定性的度量标准。l(1)耦合性:就是指模块之间的联系紧密程度。模块之间联系越紧密,其耦合性越强,独立性就越差l无直接耦合 l数据耦合 l标记耦合 l控制耦合 l公共耦合 l内容耦合l2、内聚性:即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。l偶然内聚l 逻辑内聚 l时间内聚 l通信内聚 l顺序内聚 l功能内聚l耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。 l软件结构准则软件结构准则软件结构设计优化准则软件结构设计优化

16、准则1.模块独立性准则模块独立性准则 2. 控制范围与作用范围之间的准则控制范围与作用范围之间的准则3. 软件结构的形态特征准则软件结构的形态特征准则 软件结构的深度、宽度、扇入及扇出应适当。软件结构的深度、宽度、扇入及扇出应适当。 从软件结构从形态上看,应是顶层扇出数较高些,从软件结构从形态上看,应是顶层扇出数较高些, 中间层扇出数较低一些,底层扇入数较高一些。中间层扇出数较低一些,底层扇入数较高一些。4. 模块的大小准则模块的大小准则5. 模块的接口准则模块的接口准则l详细设计详细设计是软件设计的第二阶段,主要确定每个模块具体执行过程,故也称“过程设计” l详细设计的基本任务:为每个模块进

17、行详细的算法设计;为模块内的数据结构进行设计;对数据库进行物理设计,即确定数据库的物理结构;其他设计(代码设计、输入输出格式设计、人机对话设计、编写详细设计说明书、评审) l详细设计的目标不仅是逻辑上正确地实现每个模块的功能,还应使设计出的处理过程清晰易读。结构化程序设计是实现该目标的关键技术之一,它指导人们用良好的思想方法开发易于理解、易于验证的程序。 l结构化程序设计方法的基本要点是: l1采用自顶向下、逐步求精的程序设计方法 l2使用三种基本控制结构构造程序 l任何程序都可由顺序、选择、重复三种基本控制结构构造。这三种基本结构的共同点是单入口、单出l详细描述处理过程常用三种工具:图形、表

18、格和语言l3主程序员的组织形式 l软件编码l一、程序设计语言的特性及选择l 程序设计语言有三个特性,他们是:心理特性、工程特性和技术特性。l二、程序设计风格l 程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。l 要形成良好的程序设计风格,应注意以下几个方面:l源程序文档化:即给标识符取名和注释方面养成良好的习惯,注意写出易读易理解的程序文档。 l数据说明:注意数据说明时的顺序和变量名的排列顺序以及必要的注释。 l语句构造:特别要注意的是,在写程序时要以代码的易读易解为先,不要把为了实现高效率而把一些原本容易理解的语句写成一个复杂的语句。从而降低软件可维护性。 l输入输出效率

19、:要注意的是,追求效率要建立在不损害程序可读性或可靠性基础之上,要先使程序正确、再提高效率,要先使程序清晰,再提高程序效率。 程序效率的根本途径在于选择良好的设计方法、良好程序效率的根本途径在于选择良好的设计方法、良好的数据结构与算法,而不是靠编程时对程序语句做调的数据结构与算法,而不是靠编程时对程序语句做调整。整。第四章:第四章:1 1、面向对象的基本概念:、面向对象的基本概念:对象(实体、作用、事件、性能说明)对象(实体、作用、事件、性能说明)类:具有相同或相似性质的对象的抽象就是类。类:具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,因此,对象的抽象是类,

20、类的具体化就是对象,也可以说类的实例是对象。也可以说类的实例是对象。 类具有属性,它是对象的状态的抽象,用数据类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。结构来描述类的属性。 类具有操作,它是对象的行为的抽象,用操作类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述名和实现该操作的方法来描述l消息:对象之间进行通信的构造叫做消息。消息:对象之间进行通信的构造叫做消息。在对象的操作中,当一个消息发送给某个对在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的象时,消息包含接收对象去执行某种操作的信息。接收消息的对象经过解释,然后给予信息。接

21、收消息的对象经过解释,然后给予响应。这种通信机制称为消息传递。响应。这种通信机制称为消息传递。 l方法:类中操作的实现过程叫做方法,一个方法:类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体。当一个对象方法有方法名、参数、方法体。当一个对象接收一条消息后,它所包含的方法决定对象接收一条消息后,它所包含的方法决定对象怎样动作。怎样动作。 l2 2、面向对象的特征:对象惟一性;分类性;、面向对象的特征:对象惟一性;分类性;继承性;多态性(多形性)。继承性;多态性(多形性)。 l面向对象的要素:面向对象的要素:l1 1、抽象:是指强调实体的本质、内在的属性,忽略、抽象:是指强调实体的本质、

22、内在的属性,忽略一些无关紧要的属性。类实现了对象的数据(即状态)一些无关紧要的属性。类实现了对象的数据(即状态)和行为的抽象,它是对象的共性的抽象。和行为的抽象,它是对象的共性的抽象。 l2 2、封装性:是指所有软件部件内部都有明确的范围、封装性:是指所有软件部件内部都有明确的范围以及清楚的外部边界。每个软件部件都有友好的界面以及清楚的外部边界。每个软件部件都有友好的界面接口,软件部件的内部实现与外部可访问性分离。接口,软件部件的内部实现与外部可访问性分离。 l3 3、共享性:面向对象技术在不同级别上促进了共享。、共享性:面向对象技术在不同级别上促进了共享。同一个类中的共享同一个类中的共享同一

23、个类中的对象有着相同数同一个类中的对象有着相同数据结构,也有着相同的行为特征。在同一个应用中共据结构,也有着相同的行为特征。在同一个应用中共享享在同一应用的类层次结构中,存在继承关系的在同一应用的类层次结构中,存在继承关系的各相似子类中,存在数据结构和行为的继承,使各相各相似子类中,存在数据结构和行为的继承,使各相似子类共享共同的结构和行为。在不同应用中的共享。似子类共享共同的结构和行为。在不同应用中的共享。l第五章第五章l1 1、对象模型表示了静态的、结构化的系统数据性质,、对象模型表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它是从客观世界实体的对象描述了系统的静态结构,它是从

24、客观世界实体的对象关系角度来描述。表现了对象的相互关系。该模型主关系角度来描述。表现了对象的相互关系。该模型主要关心系统中对象的结构,属性和操作,使用了对象要关心系统中对象的结构,属性和操作,使用了对象图的工具来刻划,它是分析阶段三个模型的核心。图的工具来刻划,它是分析阶段三个模型的核心。 l属性指的是类中对象所具有的性质(数据值)。不同属性指的是类中对象所具有的性质(数据值)。不同对象的同一属性可以具有相同或不同的属性值。对象的同一属性可以具有相同或不同的属性值。 l操作是类中对象所使用的一种功能或变换。类中的各操作是类中对象所使用的一种功能或变换。类中的各对象可以共享操作。方法是类的操作的

25、实现步骤。对象可以共享操作。方法是类的操作的实现步骤。 l链表示对象间的物理与概念联结,关联表示类之间的链表示对象间的物理与概念联结,关联表示类之间的一种关系,就是一些可能的链的集合,链是关联的实一种关系,就是一些可能的链的集合,链是关联的实例,关联是链的抽象。两个类之间的关联称为二元关例,关联是链的抽象。两个类之间的关联称为二元关联,三个类之间的关联称为三元关联。联,三个类之间的关联称为三元关联。 l2 2、动态模型是与时间和变化有关的系统性质。该、动态模型是与时间和变化有关的系统性质。该模型描述了系统的控制结构,它表示了瞬时的、行模型描述了系统的控制结构,它表示了瞬时的、行为化的系统控制性

26、质,它关心的是系统的控制,操为化的系统控制性质,它关心的是系统的控制,操作的执行顺序,它从对象的事件和状态的角度出发,作的执行顺序,它从对象的事件和状态的角度出发,表现了对象的相互行为。表现了对象的相互行为。 l该模型描述的系统属性是触发事件、事件序列、状该模型描述的系统属性是触发事件、事件序列、状态、事件与状态的组织。使用状态图作为描述工具。态、事件与状态的组织。使用状态图作为描述工具。l现实世界中,各对象之间相互触发,一个触发行为就现实世界中,各对象之间相互触发,一个触发行为就是一个事件。对事件的响应取决于接受该触发的对象是一个事件。对事件的响应取决于接受该触发的对象的状态,响应包括状态的

27、改变或形成一个新的触发。的状态,响应包括状态的改变或形成一个新的触发。事件可以看成是信息从一个对象到另一个对象的单向事件可以看成是信息从一个对象到另一个对象的单向传递。各事件将信息从一个对象传到另一个对象中去,传递。各事件将信息从一个对象传到另一个对象中去,因此要确定各事件的发送对象和接收对象。事件跟踪因此要确定各事件的发送对象和接收对象。事件跟踪图用来表示事件、事件的接收对象和发送对象。图用来表示事件、事件的接收对象和发送对象。 l状态是对象属性值的抽象,状态指明了对象对输入事状态是对象属性值的抽象,状态指明了对象对输入事件的响应。件的响应。 l状态图反映了状态与事件的关系,状态图确定了由事

28、状态图反映了状态与事件的关系,状态图确定了由事件序列引起的状态序列。件序列引起的状态序列。 l活动是一种有时间间隔的操作,它是依附于状态的操活动是一种有时间间隔的操作,它是依附于状态的操作。作。 l动作是一种瞬时操作,它是与事件联系在一起的操作。动作是一种瞬时操作,它是与事件联系在一起的操作。 l3 3、功能模型描述了系统的所有计算。功能模型指出、功能模型描述了系统的所有计算。功能模型指出发生了什么,动态模型确定什么时候发生,而对象发生了什么,动态模型确定什么时候发生,而对象模型确定发生的客体。功能模型由多张数据流图组模型确定发生的客体。功能模型由多张数据流图组成。成。 l数据流图中包含有处理

29、、数据流、动作对象和数据数据流图中包含有处理、数据流、动作对象和数据存储对象。存储对象。 l功能模型用来说明值是如何计算的,表明值之间的功能模型用来说明值是如何计算的,表明值之间的依赖关系及其相关的功能,数据流图有助于表示功依赖关系及其相关的功能,数据流图有助于表示功能依赖关系,其中的处理对应于状态图的活动和动能依赖关系,其中的处理对应于状态图的活动和动作,其中的数据流对应于对象图中的对象或属性。作,其中的数据流对应于对象图中的对象或属性。 l操作与对象模型中属性和关联的查询有关,与动态操作与对象模型中属性和关联的查询有关,与动态模型的事件有关,与功能模型的处理有关模型的事件有关,与功能模型的

30、处理有关l掌握对象建模的方法。掌握对象建模的方法。l第七章:第七章:l1 1、软件测试的目的:软件测试是为了发现错、软件测试的目的:软件测试是为了发现错误而执行程序的过程;一个好的测试用例能够误而执行程序的过程;一个好的测试用例能够发现至今尚未发现的错误;一个成功的测试是发现至今尚未发现的错误;一个成功的测试是发现了至今尚未发现的错误的测试。测试阶段发现了至今尚未发现的错误的测试。测试阶段的基本任务应该是根据软件开发各阶段的文档的基本任务应该是根据软件开发各阶段的文档资料和程序的内部结构,精心设计一组资料和程序的内部结构,精心设计一组“高产高产”的测试用例,利用这些实例执行程序,找出软的测试用

31、例,利用这些实例执行程序,找出软件中潜在的各种错误和缺陷件中潜在的各种错误和缺陷l软件测试方法一般分为两大类:动态测试方法软件测试方法一般分为两大类:动态测试方法与静态测试方法。静态测试指被测试程序不在与静态测试方法。静态测试指被测试程序不在机器上运行,而是采用人工检测和计算机辅助机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。静态分析的手段对程序进行检测。 l动态测试指通过运行程序发现错误,分为黑盒动态测试指通过运行程序发现错误,分为黑盒测试法和白盒测试法。测试法和白盒测试法。 l黑盒法:把被测试对象看成一个黑盒子,测试黑盒法:把被测试对象看成一个黑盒子,测试人员完全不

32、考虑程序的内部结构和处理过程,人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。因此,黑明书,检查程序是否满足功能要求。因此,黑盒测试又称为功能测试或数据驱动测试。盒测试又称为功能测试或数据驱动测试。 l黑盒测试是功能测试,因此设计测试用例时,需要黑盒测试是功能测试,因此设计测试用例时,需要研究需求规格说明和概要设计说明中有关程序功能研究需求规格说明和概要设计说明中有关程序功能或输入、输出之间的关系等信息,从而与测试后的或输入、输出之间的关系等信息,从而与测试后的结果进行分析比较。结果进行分析

33、比较。 l1 1等价类划分:它将输入数据域按有效的或无效的等价类划分:它将输入数据域按有效的或无效的(也称合理的或不合理的)划分为若干个等价类,(也称合理的或不合理的)划分为若干个等价类,测试每个等价类的代表值就等于对该类其他值的测测试每个等价类的代表值就等于对该类其他值的测试。试。 l2 2边界值分析边界值分析 l使用边界值分析方法设计测试用例时一般与等价类使用边界值分析方法设计测试用例时一般与等价类划分结合起来。但它不是从一个等价类中任选一个划分结合起来。但它不是从一个等价类中任选一个例子作为代表,而将测试边界情况作为重点目标,例子作为代表,而将测试边界情况作为重点目标,选取正好等于、刚刚

34、大于或刚刚小于边界值的测试选取正好等于、刚刚大于或刚刚小于边界值的测试数据数据l3 3错误推测:在测试程序时,人们可能根据错误推测:在测试程序时,人们可能根据经验或直觉推测程序中可能存在的各种错误,经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用从而有针对性地编写检查这些错误的测试用例,这就是错误推测法。例,这就是错误推测法。 l4 4因果图:因果图能有效地检测输入条件的因果图:因果图能有效地检测输入条件的各种组合可能会引起的错误。因果图的基本各种组合可能会引起的错误。因果图的基本原理是通过画因果图,把用自然语言描述的原理是通过画因果图,把用自然语言描述的功能说明

35、转换为判定表,最后为判定表的每功能说明转换为判定表,最后为判定表的每一列设计一个测试用例。一列设计一个测试用例。l白盒法:把测试对象看作一个打开的盒子,白盒法:把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。由于白盒测试是结与预期的状态是否一致。由于白盒测试是结构测试,所以被测对象基本上

36、是源程序,以构测试,所以被测对象基本上是源程序,以程序的内部逻辑为基础设计测试用例程序的内部逻辑为基础设计测试用例l1 1、逻辑覆盖、逻辑覆盖 l语句覆盖是指设计足够的测试用例,使被测程序中语句覆盖是指设计足够的测试用例,使被测程序中的每个语句至少执行一次,语句覆盖是比较弱的覆的每个语句至少执行一次,语句覆盖是比较弱的覆盖标准。盖标准。 l2 2、判定覆盖指设计足够的测试用例,使得被测程序、判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次中每个判定表达式至少获得一次“真真”值和值和“假假”值,从而使程序的每一个分支至少都通过一次,因值,从而使程序的每一个分支至少都通过一次

37、,因此判定覆盖也称分支覆盖。语句覆盖发现错误能力此判定覆盖也称分支覆盖。语句覆盖发现错误能力最弱。判定覆盖包含了语句覆盖,但它可能会使一最弱。判定覆盖包含了语句覆盖,但它可能会使一些条件得不到测试些条件得不到测试l3 3、条件覆盖指设计足够的测试用例,使得判定表达、条件覆盖指设计足够的测试用例,使得判定表达式中每个条件的各种可能的值至少出现一次。式中每个条件的各种可能的值至少出现一次。 l4 4、判定、判定/ /条件覆盖指设计足够的测试用例,使得判条件覆盖指设计足够的测试用例,使得判定表达式中的每个条件的所有可能取值至少出现一定表达式中的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出次,并使每个判定表达式所有可能的

温馨提示

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

评论

0/150

提交评论