




已阅读5页,还剩113页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第3章软件工程基础本章考纲中要求的考试内容1.软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。2.结构化分析方法,数据流图,数据字典,软件需求规格说明书。3.结构化设计方法,总体设计与详细设计。4.软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。5.程序的调试,静态调试与动态调试。,2,第3章软件工程基础本章重点是:笔试部分经常考查的是软件生命周期、软件设计的基本原理,软件测试的目的、软件调试的基本概念,读者应对此部分进行重点学习。详细重点学习知识点:1软件的概念、软件生命周期的概念及各阶段所包含的活动2概要设计与详细设计的概念、模块独立性及其度量的标准、详细设计常用的工具3软件测试的目的、软件测试的4个步骤4软件调试的任务,3,3.1软件工程基本概念1.3.1考点1软件定义与软件特点考试链接:考点1在笔试考试中,是一个经常考查的内容,考核的几率为70%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件的定义,特点及其分类。,4,软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令序列。数据是使程序能正常操纵信息的数据结构。文档是与程序的开发、维护和使用有关的图文资料。,5,可见,软件由两部分组成:机器可执行的程序和数据;机器不可执行的,与软件开发、运行、维护、使用等有关的文档。,6,软件的特点:(1)软件是逻辑实体,而不是物理实体,具有抽象性;(2)没有明显的制作过程,可进行大量的复制;(3)使用期间不存在磨损、老化问题;(4)软件的开发、运行对计算机系统具有依赖性;(5)软件复杂性高,成本昂贵;(6)软件开发涉及诸多社会因素。,7,应用软件软件按功能为系统软件支撑软件(或工具软件)。应用软件是为解决特定领域的应用而开发的软件,如:教务管理软件。系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件,如:操作系统、编译程序、汇编程序。,8,支撑软件是介于两者之间,协助用户开发软件的工具性软件。如:需要分析工具软件、设计工具软件、编码工具软件、测试工具软件。,9,1.3.2软件危机与软件工程软件危机:是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。可以将软件危机归结为成本、质量、生产率等问题。软件工程概念的出现源自软件危机。软件工程:就是试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法。,10,软件工程的主要思想就是强调在软件开发过程中需要应用工程化原则。软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。,11,3.1.3考点2软件工程过程与软件生命周期考试链接:考点2在笔试考试中,在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件生命周期的定义,主要活动阶段及其任务。,12,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。一般包括可行性分析研究与需求分析、设计、实现、测试、交付使用以及维护等活动,如下图所示。,13,14,还可以将软件生命周期分为如上图所示的软件定义、软件开发和软件运行维护3个阶段。生命周期的主要活动阶段是:可行性研究与计划制定、需求分析、软件设计、软件实施、软件测试、运行与维护。,15,3.1.4软件工程的目标与原则1.软件工程的目标软件工程的目标是:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可适应性、可移植性、可追踪性和可互操作性且满足用户需要的产品。,16,基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。(1)软件开发技术软件开发方法学开发过程开发工具软件工程环境,软件开发技术包括,17,(2)软件工程管理软件管理学软件工程经济学软件心理学2.软件工程的原则包括:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。,软件工程管理包括,18,3.1.5软件开发工具与软件开发环境工具和环境的使用进一步提高了软件的开发率、维护效率和软件质量。1.软件开发工具2.软件开发环境软件开发环境或称软件工程环境是全面支持软件开发全过程的软件工具集合。,19,3.2结构化分析方法软件开发方法是软件开发过程所遵循的方法和步骤,其目的在于有效地得到一些工作产品,即程序和文档,并且满足质量要求。软件开发方法包括分析方法、设计方法和程序设计方法。,20,定义阶段(或称分析阶段)是保证软件质量的第一步,它的任务是复杂的,如何分析用户要求,软件需求规格说明书用什么形式表示等都需要有一定的技术来指导。由于在分析阶段软件人员需要同用户进行讨论,这个阶段的方法、模型、语言和工具都必须考虑到用户的特点,既能完整精确地描述用户要求,又简单易懂可以被广大用户接受。,21,70年代以来,出现了结构化分析;80年代又出现了面向对象的分析方法。在众多的分析技术中,结构化分析(StructuredAnalysis,简称SA方法)是一个比较简单实用、使用广泛的方法。SA方法由美国Yourdon公司提出,它适用于分析大型的数据处理系统,特别是企事业管理方面的系统。这个方法通常与设计阶段的SD(StructuredDesign)方法衔接起来使用。,22,结构化方法包括已经形成配套的结构化分析方法、结构化设计方法和结构化编程方法,其核心和基础是结构化程序设计理论。3.2.1需求分析与需求分析方法1.需求分析软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。,23,需求分析阶段的工作:需求获取需求分析编写需求规格说明书需求评审需求分析的任务是发现需求、求精、建模和定义需求的过程。,24,2.需求分析方法常见的需求分析方法有:结构化分析方法主要包括:面向数据流的结构化分析方法;面向数据结构的Jackson方法;面向数据结构的结构化数据系统开发方法。,25,面向对象的分析方法。从需求分析建立的模型的特性来分,需要分析方法又分为静态分析方法和动态分析方法。3.2.2结构化分析方法1.关于结构化分析方法结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。,26,结构化分析就是使用数据流图(DFD)、数据字典(DD)、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档。结构化分析方法的实质是:着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。,27,2.结构化分析的常用工具(1)数据流图(DFD-DataFlowDiagram)数据流图是从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素与说明如下:,加工(转换,用圆表示):输入数据经加工变换产生输出,数据流(用箭头表示):沿箭头方向传送数据的通道,28,一般通过对实际系统的了解和分析后,使用数据流图为系统建立逻辑模型。例:图书预订系统的数据流图,文件(数据源,用直线表示):表示处理过程中存放各种数据的文件,数据流的源点和终点(方框表示):表示系统和环境的接口,29,验证订单正确性,汇总对各出版社的要求,图书目录文件,书名、出版社、价格,顾客,订单,顾客档案文件,顾客信用状况,待处理订单文件,出版社档案文件,书目、地址,出版社,对出版社的订单,订货存根文件,订货存根,正确订单,一批订单,例:图书预订系统的数据流图,30,使用数据流图描述系统时,要注意的是:数据流图中描述的是数据流而不是控制流。(2)数据字典(DD-DataDictionary)数据字典是结构化分析方法的核心。数据字典的作用是对DFD中出现的被命名的图形元素的确切解释。,31,对数据流图中出现的每一个数据流名、每一个文件名和每一个基本加工名进行定义,它们所组成的集合就是数据字典(或称数据词典)。每个定义是数据字典中的一个条目。数据流图是系统的大框架,而数据字典是对数据流图中的每一个元素的精确描述。,32,编写数据词典的准则:(1)数据流图中出现的每一个数据流名、每一个文件名和每一个基本加工名在词典中都应有一个条目给出这个名字的定义。每一个组成部分在词典中也应有一个条目给出它们的定义。,33,(2)数据词典的结构采用自顶向下、逐步分解的分层结构。(3)进行定义时所用到的词汇都具有明确的概念。(4)定义不允许有任何重复。(5)所有条目都应按“字典序”来编排。,34,数据词典定义方式中出现的符号有:=表示“等价”+表示“与”|表示“或”,即选择括号中的某一项表示“重复”,即括号中的项要重复若干次,重复次数的上、下限也可在括号边上标出,如nm。()表示“可选”,即括号中的项可能没有。*表示“注释”。.连接符,35,数据词典中有四种类型的条目:数据流、文件、数据项、加工。1.数据流条目数据流条目给出某个数据流的定义,它由四部分组成:名字、别名、各组成数据项、注解。例如:课程=课程名+教员+教材+课程表课程表=星期几+第几节+教室如下左图所示,36,2.文件条目文件条目给出某个文件的定义,如下右图所示:说明:除了组织栏外,其余都与数据流条目相同。而组织栏用于说明重复部分的相互关系。,文件名:计账别名:项目帐组成:项目编号+项目说明+职员人数+职员姓名+交付日期组织:按项目编号递增次序排序注释:,数据流名:货运清单别名:组成:货物名称货物数量单价货物小计注释:,数据流条目,文件条目,37,3.数据项条目数据项条目给出某个数据单项的的定义,包括它的值类型、允许值等。数据流、文件和数据项等条目构成了数据词典。,数据项名:作业优先级别名:优先级值及含义:1,2,3注释:优先级1最高,优先级3最低。,38,(3)判定表当数据流图中的加工要依赖于多个逻辑条件的取值,即完成该加工的一组动作是由于某一组条件取值的组合而引发的,使用判定表比较适宜。例如:“检查订购单”的加工逻辑是:“如果金额超过500元,又未过期,则发出批准单和提货单;如果金额超过500元,但过期了,则不发批准单;如果金额低于500元,则不论是否过期都发出批准单和提货单,在过期的情况下,还需发出通知单”。,39,上面的加工逻辑是用自然语言描述的,并不太清晰,如果用下面的表格方式来表示,则一目了然,这种表格就称为判定表。,判定表,40,判定表适合于描述条件,但描述循环则比较困难。(4)判定树判定树本质上同判定表是一样的,也是一种为了解决加工中的组合判定问题而采用的描述方式。上述问题用判定树写出的结果为:,41,说明:没有一个统一的构造判定树的方法和步骤,而且也不可能有统一的方法,因为它所依据的原始资料是用自然语言写成的叙述文。但判定树常常用图形表示,这样更容易被用户理解。,42,3.2.3软件需求规格说明书软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。1.软件需求规格说明书的作用便于用户、开发人员进行理解和交流。反映出用户问题的结构,可以作为软件开发工作的基础和依据。作为确认测试和验收的依据。2.软件需求规格说明书的内容(略),43,3.3结构化设计方法3.3.1考点7软件设计的基本概念考试链接:考点7在笔试考试中,是一个经常考查的内容,考核中几率为70%,主要是以选择题的形式出现,分值为2分,此考点为重点掌握内容,读者应该识记模块独立性中的耦合性和内聚性。,44,误区警示:在程序结构中,各模块的内聚性越强,则耦合性越弱。软件设计应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。,45,1软件设计的基础经过分析阶段的工作,建立了由数据流图、数据字典等构成的系统逻辑模型,系统必须“做什么”已经清楚了,下面要决定系统“怎么做”。软件设计的任务是将用户要求转换成一个具体的设计方案。,46,从技术观点上看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。(1)结构设计定义软件系统各主要部件之间的关系;(2)数据设计将分析时创建的模型转化为数据结构的定义;(3)接口设计是描述软件内部、软件和协作系统之间以及软件与人之间如何通信;(4)过程设计则是把系统结构部件转换为软件的过程性描述。,47,从工程管理角度来看,软件设计分两步完成:概要设计(或称总体设计)和详细设计。(1)概要设计将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式;(2)详细设计确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。,48,设计阶段的主要工作结果是模块说明书,模块说明书由两部分组成:模块结构图和模块的功能说明。模块结构图描述了系统由哪些模块组成以及模块之间的调用关系。模块说明书是编写程序的基础,也是测试的依据。,49,软件设计的一般过程是:软件是一个迭代的过程;先进行高层次的结构设计;后进行低层次的过程设计;穿插进行数据设计和接口设计。,50,2软件设计的基本原理(1)抽象:软件设计中考虑模块化解决方案时,可以定出多个抽象级别。抽象的层次从概要设计到详细设计逐步降低。(2)模块化:模块是指把一个待开发的软件分解成若干小的简单的部分。模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。,51,(3)信息隐蔽:信息隐蔽是指:在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。(4)模块独立性:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。,52,模块的独立程度是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性(或称块间联系)和内聚性(或称块内联系)两个定性的度量标准。内聚性是信息隐蔽和局部化概念的自然扩展。一个模块的内聚性越强则该模块的模块独立性越强。一个模块与其他模块的耦合性越强则该模块的模块独立性越弱。,53,内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量。内聚是从功能角度来衡量模块内的联系。内聚有如下种类,它们之间的内聚度由弱到强排列:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。,54,偶然内聚,模块T中的三个语句实际上没有任何联系,只是因为模块P、Q、R、S中都含有这样的语句段,为了节省空间将它们放在模块T中。偶然内聚的缺点是不易修改,而且无法定义其功能,甚至难以为这类模块起一个合适的名字。显然,这种模块也是难以测试的。,55,耦合性是模块间互相连接的紧密程度的度量。耦合性取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。耦合可以分为下列几种,它们之间的耦合度由高到低排列:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合。,56,在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。,57,小提示:上面仅是对耦合机制进行的一个分类。可见一个模块与其他模块的耦合性越强则该模块独立性越弱。原则上讲,模块化设计总是希望模块之间的耦合表现为非直接耦合方式。但是,由于问题所固有的复杂性和结构化设计的原则,非直接耦合是不存在的。,58,3.结构化设计方法与结构化需求分析方法相对应的是结构化设计方法。结构化设计方法的基本思路:是将软件设计成由相对独立、单一功能的模块组成的结构。下面重点以面向数据流的结构化方法为例讨论结构化设计方法。,59,3.3.2概要设计1.概要设计的任务软件概要设计的基本任务是:(1)设计软件系统结构(2)数据结构及数据库设计(3)编写概要设计文档(4)概要设计文档评审,60,常用的软件结构设计工具是结构图(SCStructureChart),也称程序结构图。它反映了整个系统的功能实现以及模块与模块之间的联系与通讯,是未来程序中的控制层次体系。结构图的基本图符如下:,一般模块,数据信息,控制信息,61,示例结构图,62,结构图中的主要成分有:(1)模块(用方框表示)方框中写有模块的名字,一个模块的名字应适当反映这个模块的功能。(2)调用(用箭头表示)从一个模块指向另一个模块的箭头表示前一个模块中含有对后一个模块的调用。(3)数据调用箭头边上带注释的小箭头,表示调用时从一个模块传送给另一个模块的数据,小箭头指出了传送的方向。,63,除了上述基本符号之外,结构图中还可以再加上一些辅助性的符号:用菱形符号表示一个条件、用弧形箭头表示循环、用空心圆表示传递的是数据、用实心圆表示传递的是控制信息。,64,程序结构图的有关术语(见下图):深度:表示控制的层数。上级模块、从属模块:上、下两层模块a和b,且a调用b,则a是上级模块,b是从属模块。上级模块也称调用模块,从属模块又称被调模块。宽度:整体控制跨度(最大模块数的层)的表示扇入:调用一个给定模块的个数。扇出:一个模块直接调用的其他模块数。原子模块:树中位于叶子结点的模块。,65,图3.11简单财务管理系统结构图,66,2.面向数据流的设计方法从数据流图导出初始结构图设计阶段的SD方法是与分析阶段的SA方法衔接起来使用的,分析阶段用SA方法获得了用数据流图、数据字典等描述的软件需求规格说明书,SD方法则以数据流图为基础设计软件系统的模块结构。,67,(1)数据流类型根据数据变换性质,将数据流图分为两类:变换型结构和事务型结构。变换型变换型结构的特点是不管其形式多么复杂,最终总是可以分成输入、主加式和输出三部分。,68,变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。变换型数据处理问题的工作大致分为三步,即取得数据、变换数据和输出数据,如下图所示:,69,取得数据,变换数据,输出数据,输入,中心变换,输出,图3.13变换型数据流结构的组成,70,图3.14变换型数据流系统结构图,变换型数据流图映射的结构图为:,71,事务型当存在某种作业数据流时,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就做事务。事务型数据流的特点是接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元(事务处理中心),然后给出结果。见下图3.15,72,事务处理中心,事务1,输入流,图3.15事务型数据流结构,事务2,事务3,事务n,73,事务型数据流图映射的结构图如图3.16所示。图3.16事务型数据流图系统结构图(2)面向数据流设计方法的实施要点与设计过程(略),74,3.设计的准则提高模块独立性。模块规模适中。深度、宽度、扇出和扇入适当。经验表明,好的软件设计结构通常:顶层高扇出,中间扇出较少,底层高扇入。使模块的作用域在该模块的控制域内。应减少模块的接口和界面的复杂性。设计成单入口、单出口的模块。设计功能可预测的模块。,75,3.3.3考点8详细设计考试链接:考点8在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记过程设计包括哪些常用工具。,76,详细设计的任务是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。常见的过程设计工具有:(1)图形工具:程序流程图,N-S,PAD(问题分析图),HIPO(层次图+输入/处理/输出图)。(2)表格工具:判定表。(3)语言工具:PDL(即过程设计语言或称伪码)。,77,1.程序流程图(PFD-ProgramFlowDiagram)构成程序流程图的最基本图符及含义如下:,或,:控制流,:加工步骤,:逻辑条件,78,按照结构化程序设计的要求,程序流程图构成的任何程序描述限制为下面5种控制结构。程序流程图的5种控制结构:顺序型、选择型、先判断重复型、后判断重复型和多分支选择型。(见P81图3.18),79,2.N-S图N-S图是无线的流程图,又称盒图、方框图。方框图中仅含5种基本的控制结构,即顺序型、选择型、多分支选择型、WHILE重复型和UNTIL重复型。(见P82图3.20)N-S图避免了程序流程的随意转向。,80,3.PAD图PAD图是问题分析图(ProblemAnalysisDiagram),它是继程序流程图和方框图之后,提出的又一种主要用于描述软件详细设计的图形表示工具。PAD表示的5种基本控制结构为:顺序型、选择型、多分支选择型、WHILE重复型和UNTIL重复型。,81,4.PDL(ProcedureDesignLanguage)过程设计语言(PDL)也称为结构化的语言和伪码,它是一种混合语言,采用英语的词汇和结构化程序设计语言的语法,类似编程语言。PDL可以由编程语言转换得到,也可以是专门为过程描述而设计的。,82,5.HIPO图(HierarchyPlusInput/Processing/Output)HIPO图实际上由H图和IPO图两部分组成。H图即层次图,为了能使HIPO图具有可跟踪性,在H图里除了最顶层的方框之外,每个方框都加了编号;和H图中的每个方框相对应,有一张IPO图描述这个方框代表的模块的处理过程。IPO图能够方便地描述数据输入、数据处理和数据输出之间的关系。它的基本形式是:在左边的框中列出有关的输入数据,在中间的框中列出主要的处理处理框中列出的处理次序暗示了执行的次序,在右边的框中列出产生的输出数据。另外,还用类似向量符号的粗大箭头清楚地指出数据通信的情况。,83,疑难解答:程序流程图,N-S图,PAD图的控制结构的异同点是什么?相同点是三种图都有顺序结构,选择结构和多分支选择,并且N-S图和PAD图还有相同的WHILE重复型、UNTIL重复型;不同点是程序流程图没有WHILE重复型、UNTIL重复型而有后判断重复型和先判断重复型。,84,3.4软件测试3.4.1(考点9)软件测试的目的考试链接:考点5在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择题的形式出现,分值为2分,此考点为理解内容,读者应该理解测试是为了发现错误。,85,软件测试是在软件投入运行前对软件需求、设计、编码的最后审核。其工作量、成本占软件开发总工作量、总成本的40%以上,而且具有较高的组织管理和技术难度。(1)测试是为了发现程序中的错误而去执行程序的过程;(2)好的测试用例是极可能发现至今为止尚未发现的错误的测试用例;(3)成功的测试是为了发现至今为止尚未发现的错误的测试。,86,3.4.2软件测试准则1.所有测试都应追溯到需求:软件测试的目的是发现错误。2.严格执行测试计划,排除测试的随意性3.充分注意测试中的群集现象为了提高测试效率,测试人员应该集中对付那些错误群集的程序。4.程序员应避免测试检查自己的程序5.穷举测试不可能:测试只能证明程序中有错误,不能证明程序中没有错误。6.妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。,87,3.4.3(考点9)软件测试技术与方法综述从是否需要执行被测软件的角度,可以分为:静态测试动态测试按照功能划分可以分为:白盒测试黑盒测试,88,1.静态测试与动态测试(1)静态测试静态测试可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。静态测试包括:代码检查、静态结构分析、代码质量度量等。,89,(2)动态测试静态测试不实际运行软件,主要通过人工进行。动态测试是基于计算机的测试,是为了发现错误而执行程序的过程。或者说,是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。,90,设计高效、合理的测试用例是动态测试的关键。测试用例是为测试设计的数据。测试用例由输入数据和与之对应的预期输出结果两部分组成。测试用例的格式为:(输出值集),(输出值集)下面讨论动态的白盒测试方法和黑盒测试方法,91,2.白盒测试方法与测试用例设计白盒测试方法也称结构测试或逻辑驱动测试。它是根据软件产品的内部工作过程,检查内部成分,以确认每种内部操作符合设计规格要求。白盒测试方法把测试对象看作一个透明的盒子,允许测试人员利用程序内部的逻辑结构及有关信息来设计或选择测试用例,对程序所有的逻辑路径进行测试。,92,通过在不同点检查程序的状态来了解实际的运行状态是否与预期的一致。所以,白盒测试是在程序内部进行,主要用于完成软件内部操作的验证。白盒测试的基本原则是:保证所测模块中每一独立路径至少执行一次;保证所测模块所有判断的每一分支至少执行一次;保证所测模块每一循环都在边界条件和一般条件下至少各执行一次;验证所有内部数据结构的有效性。,93,白盒测试的主要方法有逻辑覆盖、基本路径测试等。(1)逻辑覆盖测试逻辑覆盖是泛指一系列以程序内部的逻辑结构为基础的测试用例设计技术。通常所指的程序中的逻辑表示有判断、分支、条件等几种形式。语句覆盖:选择足够的测试用例,使得程序中每个语句至少都能执行一次。,94,路径覆盖:执行足够的测试用例,使程序中所有可能的路径都至少经历一次。判定覆盖:使设计的测试用例保证程序中每个判断的每个取值分支(T或F)至少经历一次。条件覆盖:设计的测试用例保证程序中每个判断的每个条件的可能取值至少执行一次。,95,例3.2路径覆盖程序流程图更正为:,a,b,e,c,d,T,F,T,F,A1&B=0,A=2|X1,X=X/A,X=X+1,96,判断-条件覆盖:设计足够的测试用例,使判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能取值分支至少执行一次。(2)基本路径测试法基本路径测试的思想和步骤是,根据软件过程性描述中的控制流程确定程序的环路复杂性度量,用此度量定义基本路径集合,并由此导出一组测试用例对每一条独立执行路径进行测试。,97,3.黑盒测试方法与测试用例设计黑盒测试方法也称功能测试或数据驱动测试。黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明。,98,黑盒测试的方法主要有:(1)等价类划分法它是将程序的所有可能的输入数据划分成若干部分(及若干等价类),然后从每个等价类中选取数据作为测试和例。(2)边界值分析法是对各种输入、输出范围的边界情况设计测试用例的方法。,99,(3)错误推测法列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。(4)因果图从程序的功能说明中找出输入条件作为“因”,输出条件或程序状态的改变作为“果”,通过因果图将功能说明转换成一张判定表,然后为判定表的每一列设计测试和例。,100,实际上,无论是使用白盒测试方法还是黑盒测试方法,针对一种方法设计的测试用例,仅仅是易于发现某种类型的错误,对其他类型的错误不易发现。所以没有一种用例设计方法能适应全部的测试方案,而是各有所长。因此,应综合使用各种方法来确定合适的测试方案。,101,3.4.4(考点10)软件测试的实施考试链接:考点10在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件测试过程的4个步骤,单元测试的两种测试方式。软件测试过程一般按4个步骤进行,即单元测试、集成测试、验收测试(确认测试)和系统测试。,102,1.单元测试单元测试是对软件设计的最小单位-模块(程序单元)进行正确性检验的测试。单元测试的目的是发现各模块内部可能存在的各种错误。单元测试的依据是详细设计说明书和源程序。,103,单元测试的技术可以采用静态分析和动态测试。对动态测试通常以白盒动态测试为主,辅之以黑盒测试。单元测试需要模拟环境,所谓模拟环境,就是在单元测试中,用一些辅助模块去模拟与被测模块相联系的其他模块,即为被测模块设计和搭建驱动模块。如下图所示:,104,驱动模块,被测单元,桩模块A,桩模块C,桩模块B,图3.29单元测试的测试环境,105,其中:驱动模块相当于被测模块的主程序。它接收测试数据,并传给被测模块,输出实际测试结果。桩模块通常用于代替被测模块调用的其他模块,它仅做少量的数据操作,是一个模拟子程序,不必将子模块的所有功能都带入。,106,2.集成测试集成测试是测试和组装软件的过程,主要目的是发现与接口有关的错误。集成测试的主要依据是概要设计说明书。集成测试所设计的内容包括:软件单元的接口测试、全局数据结构测试、边界条件和非法输入的测试等。,107,集成测试时将模块组装成程序,通常
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高端人才招聘服务提供商:神农白雪面试题需求与招聘策略
- 2025年住院医师规培-黑龙江-黑龙江住院医师规培(口腔全科)历年参考题库典型考点含答案解析
- 2025年住院医师规培-青海-青海住院医师规培(神经内科)历年参考题库典型考点含答案解析
- 2025年住院医师规培-辽宁-辽宁住院医师规培(放射肿瘤科)历年参考题库含答案解析
- 2025年住院医师规培-福建-福建住院医师规培(皮肤性病科)历年参考题库含答案解析(5套)
- 2025年住院医师规培-浙江-浙江住院医师规培(眼科)历年参考题库含答案解析(5套)
- 2025年住院医师规培-浙江-浙江住院医师规培(中医耳鼻咽喉科)历年参考题库含答案解析
- 2025年住院医师规培-河南-河南住院医师规培(神经内科)历年参考题库典型考点含答案解析
- 2025年住院医师规培-河南-河南住院医师规培(内科)历年参考题库典型考点含答案解析
- 2025年住院医师规培-河北-河北住院医师规培(口腔正畸科)历年参考题库典型考点含答案解析
- TCHIA 47-2024 智慧重症病房建设规范
- 多模态技术在智能养鸡工厂中的研究现状与展望
- 征信知识专项培训课件
- 《基于深度强化学习在游戏上的应用》
- 中建给排水工程施工方案
- 电力建设工程施工合同(合同版本)
- 糖尿病饮食的健康宣教
- 《公务员录用体检操作手册(试行)》
- 人教版数学八年级上册《全等三角形》单元测试题附答案
- 变电站巡检维护服务方案
- 2023版评审准则和CNAS对照表
评论
0/150
提交评论