软件开发与软件维护.ppt_第1页
软件开发与软件维护.ppt_第2页
软件开发与软件维护.ppt_第3页
软件开发与软件维护.ppt_第4页
软件开发与软件维护.ppt_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

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

文档简介

软件技术基础,自动化系:黄巧莉 Email:,西南大学计信院自动化系,第十一章 软件开发与软件维护,11.1 软件工程概述 11.2 软件生存周期 11.3 软件需求 11.4 软件设计 11.5 软件构造 11.6 软件测试 11.7 软件维护,西南大学计信院自动化系,11.1 软件工程概述,11.1.1 程序开发与软件工程 11.1.2 软件工程概述,西南大学计信院自动化系,11.1.1 程序开发和软件工程,程序开发是软件开发的核心,建立计算模型、设计程序、编写代码、测试程序四个步骤统称程序设计,简称编程。 “软件危机”的产生。 软件工程思想,以系统工程的方法高效、快速地生产大量合格的软件。,西南大学计信院自动化系,Windows95有1000万行代码 Windows2000有5000万行代码,例:,Exchange2000和 Windows2000开发人员结构,西南大学计信院自动化系,软件危机的主要特征,软件开发周期大大超过规定日期; 软件开发成本严重超标; 软件质量难于保证。,西南大学计信院自动化系,软件工程的产生,1968年由NATO (北大西洋公约组织)在德国的学术会议上,首先提出了“软件工程”概念。 “任何软件都应当和其它产业的产品一样,由专业人员制作(软件中是系统分析员、高级程序员、程序员),以系统的、工程的方法开发制作,并提供全方位的售后服务管理(不能因开发者离开、调走而无人管理)。”,西南大学计信院自动化系,软件工程的定义,IEEE【IEE93】给出了一个更加综合的定义: “将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。”,西南大学计信院自动化系,系统方法,是任何产品都有其创意、开发、生产、调试、使用、维护、退役的全过程,而不是只考虑其中的一部分。 如果按照系统的规范和标准进行开发,就可能大幅度提高软件生产力,就如同工业生产取代手工作坊。,西南大学计信院自动化系,工程方法,指要有工程规范和工程管理。工程产品 不要求绝对完善,只要求在给定时间、给定的经费和当前技术条件下符合规范的要求的最佳。 工程管理要考虑到可行性、计划性、投入/产出、费用/效益。,西南大学计信院自动化系,软件工程以系统工程的方法制作软件产品,软件的系统(生存期)模型 与此模型相对应的各种规范和标准 为达到这些规范、标准的方法和工具 软件生产、交付、使用、维护的全面管理,西南大学计信院自动化系,软件开发方法学,软件开发方法学的研究是软件技术发展最活跃的因素。所谓的方法学,是一组规范了的方法,按这组方法执行,可以得到较为理想的结果。把这组方法标准化就是软件开发标准。,西南大学计信院自动化系,软件工程技术的两个特点,强调规范化 强调文档化,西南大学计信院自动化系,软件的工业化生产过程应具备的特点: 明确的工作步骤 详细具体的规范化文档 明确的质量评价标准,“一个好的工业,应有一套良好的标准来配套”,西南大学计信院自动化系,软件产品的标准化,软件开发过程的标准化,西南大学计信院自动化系,软件工程与编程,软件工程是一门学科,一种科学理论来指导软件系统开发,标准化,自动化的过程 考虑如何分解一个系统,以便各人分工开发;考虑如何说明每个部分的规格要求;怎样才能易于维护,单纯的代码编写 是软件工程发展的前身 是软件工程中占据很少时间和空间的一部分,西南大学计信院自动化系,软件工作的范围,只考虑 编写程序,涉及整个 软件生存 周期,扩展到,西南大学计信院自动化系,开发软件不仅仅是编程,西南大学计信院自动化系,11.1.2 软件工程概述,软件工程是一门交叉学科 软件工程与一般工程的差异 软件工程知识结构 软件工程教学课程目标,西南大学计信院自动化系,软件工程是一门交叉学科,软件开发技术:软件开发方法学 软件开发过程 软件工具和软件工程环境 软件工程管理:软件管理学 软件经济学 软件心理学 软件工程所包含的内容不是一成不变的,随着人们对软件系统的研制开发和生产的理解。应用发展的眼光看待它。,西南大学计信院自动化系,软件工程与一般工程的差异,软件是逻辑产品而不是实物产品 软件的功能依赖于硬件和软件的运行环境以及对它的操作 软件设计的复杂性 软件特征:功能的多样性 实现的多样性 能见度低 软件结构合理性差 智力密集及知识产权保护,西南大学计信院自动化系,软件工程知识结构,软件需求 软件设计 软件构造 软件测试 软件维护,软件配置管理 软件工程管理 软件工程过程 软件工程工具和方法 软件质量,西南大学计信院自动化系,“软件工程”课程与其它软件专业课的区别,(1) 立足于系统的整体。 (2) 讲授系统分析、系统设计、测试及维护的理论和方法。 (3) 构筑一个软件系统,实践软件开发全过程。,西南大学计信院自动化系,“软件工程”课程教学的目标,转变对软件的认识: 上升 程序 系统 转变思维定式: 上升 程序员 系统工程师(系统分析员),西南大学计信院自动化系,软件开发模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。 软件开发模型也常称为: 软件过程模型、软件生存周期模型、软件工程范型。,11.1.3 软件开发模型,西南大学计信院自动化系,1 瀑布模型(Waterfall Model),西南大学计信院自动化系,早期的瀑布模型即为线性顺序模型。它一次走完分析、设计、编码测试这些框架活动 质量保证、文档制作、正式技术评审、配置管理等伞形活动穿插其中 特点是严格把关、错误尽早发现并消灭在前一阶段,西南大学计信院自动化系,2 原型模型(快速原型模型),原型范型,西南大学计信院自动化系,基本思想是尽早拿出样板让用户试用,修改或补充了需求再接着开发 它基本上按瀑布模型划分阶段:分析 设计 编码 测试 交付,设计注重上层,找一个或几个最有代表性的子系统快速编码测试,所以也叫快速原型(rapid prototyping) 原型增加了开发的工作量,增加了管理上的困难。特别是原型过程步骤事先难于计划,不知道应反复几次,从哪里开始反复,预算进度均难于控制。但它具有切合实际,成功率较高的优点,故至今仍在使用。,西南大学计信院自动化系,采用原型模型的软件生存周期,西南大学计信院自动化系,3 螺旋模型,西南大学计信院自动化系,把软件过程描绘为用户通信计划风险分析做工程(原型)构造与发布用户评审六种活动。 对大型新产品特别有效,从概念开发最初产品开发产品增强开发产品维护改进。,西南大学计信院自动化系,4 构件组装模型,这类软件的开发过程也采用螺旋模型,只是把作工程和构造及发布合成一个步骤。风险分析后,转入客户评价。步骤如下: (1)先标识本项目需要什么构件; (2)库中查找构件或相似的构件; (3)如果可用转4 否则自行开发或修改,确认后入库; (4)构造为新系统作第m次迭代; (5)测试、确认。,西南大学计信院自动化系,5 快速应用开发模型,RAD有以下步骤: (1)业务模型:以什么信息驱动业务过程运作? 要生成什么信息? 谁生成它? 信息流的去向? 由谁处理? 可以辅之以数据流图 (2)数据模型:为支持业务过程的数据流,找数据对象集合,定义数据对象属性,与其它数据对象的关系构成数据模型,可辅之以E-R图。 (3)做处理模型:如何使数据对象在信息流中完成各业务功能。描述数据对象的增加、修改、删除、查找。即细化数据流图中的处理框。,西南大学计信院自动化系,(4)应用程序生成:利用第四代语言(4GL)写出处理程序,重用已有构件或创建新的可重用构件,利用环境提供的工具,自动生成,构造出整个的应用系统。 (5)测试与交付,由于大量重用,一般只作总体测试,但新创建的构件还是要测试的,西南大学计信院自动化系,6 其它模型,除了上述五种模型而外,还有并发开发模型和形式方法模型,分别针对并发程序系统和需要作数学验证或函数式,逻辑式程序系统而设的。,西南大学计信院自动化系,11.2 软件生存周期,西南大学计信院自动化系,11.3 软件需求,11.3.1 需求工程 11.3.2 导出需求 11.3.3 分析模型,西南大学计信院自动化系,软件需求分析是软件生命期中重要的一步,也是决定性的一步。,西南大学计信院自动化系,11.3.1 需求工程,对系统应该提供的服务和所受到的约束进行理解、分析、建立文档、检验的过程需求工程。 需求工程过程定义:过程模型(按什么步骤得到需求文档)、过程执行者、过程支持和管理(需要的设备条件、资金、计划)、过程质量和改进(本过程的质量目标,改进措施)。,西南大学计信院自动化系,导出需求:需求来源、导出技术。 需求分析:需求分类、概念建模、体系结构的初步设计、需求分配(按设想的体系机构为子系统,大模块写出需求,把总的需求分配到各个子部分)、需求磋商。对于风险较大的新技术要做关键机制的原型开发。 写出需求规格说明。数据需求、功能需求、质量需求、管理需求、交付物需求。 需求确认。模型确认、原型确认、需求确认。 需求管理:需求追踪、需求变更管理。,西南大学计信院自动化系,需求工程过程,西南大学计信院自动化系,11.3.2 导出需求,(1)问题识别 (2)分析与综合 (3)编制需求分析文档 (4)需求分析评审,西南大学计信院自动化系,需求分析流程,需求分析流程,西南大学计信院自动化系,(1)问题识别,从系统的角度来理解软件并评审软件范围是否恰当 确定对目标系统的综合要求,即软件的需求 提出这些需求实现条件,以及需求应达到的标准,西南大学计信院自动化系,软件的需求包括:,功能需求 性能需求 环境需求 可靠性需求 安全保密要求 用户界面需求,资源使用需求 成本消耗需求 开发进度需求 预先估计以后系统可能达到的目标,西南大学计信院自动化系,问题识别的另一项工作是建立分析所需要的通信途径,以保证能顺利地对问题进行分析。,西南大学计信院自动化系,(2)分析与综合,从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。最终综合成系统的解决方案,给出目标系统的详细逻辑模型。,西南大学计信院自动化系,(3) 编制需求分析阶段的文档,软件需求说明书 数据要求说明书 初步的用户手册 修改、完善与确定软件开发实施计划,西南大学计信院自动化系,西南大学计信院自动化系,西南大学计信院自动化系,(4) 需求分析评审,系统定义的目标是否与用户的要求一致; 系统需求分析阶段提供的文档资料是否齐全; 文档中的所有描述是否完整、清晰、准确反映用户要求; 与所有其它系统成分的重要接口是否都已经描述; 被开发项目的数据流与数据结构是否足够,确定; 所有图表是否清楚,在不补充说明时能否理解; 主要功能是否已包括在规定的软件范围之内,是否都已充分说明; 设计的约束条件或限制条件是否符合实际; 开发的技术风险是什么; 是否考虑过软件需求的其它方案; 是否考虑过将来可能会提出的软件需求; 是否详细制定了检验标准,它们能否对系统定义是否成功进行确认。,西南大学计信院自动化系,11.3.3 分析模型,分析阶段最重要的工作就是建模。 系统模型的建立是对现实世界中存在的有关实体和活动的抽象和精化,包括观察分析、模型表示和模型检查三个阶段。,西南大学计信院自动化系,11.4 软件设计,软件设计分为两部分: 1、顶层(总体、概要)设计 确定系统的整体体系结构、模块结构 2、详细设计 给出软件模块结构中各模块的内部过程描述(算法),西南大学计信院自动化系,11.4.1 软件设计的基本原则,抽象:类是实例的抽象,过程是程序的抽象,类型是变量的抽象。 求精:为抽象增加具体的细节。 分解/模块化:将系统分解为相对独立的模块化。 数据隐藏:接口中数据传递越少越好,不是必须的数据尽量放在模块内部。,西南大学计信院自动化系,模块化,模块化:就是把系统划分为若干个模块,从而获得满足问题需要的一个解的过程。 模块:是指整个软件被划分成若干单独命名和可编址的部分,称之为模块。这些模块可以被组装起来以满足整个问题的需求。 把问题子问题的分解与软件开发中的系统子系统或系统模块对应起来,就能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。,西南大学计信院自动化系,11.4.2 设计模型,系统设计的四方面内容:体系结构设计、模块设计、数据结构与算法设计、用户界面设计。如果将软件系统比喻为人体,那么: (1)体系结构就如同人的骨架。 (2)模块就如同人的器官,具有特定的功能。 (3)数据结构与算法就如同人的血脉和神经,它让器官具有生命并能发挥功能。数据结构与算法分布在体系结构和模块中,它将协调系统的各个功能。 (4)用户界面就如同人的外表。,西南大学计信院自动化系,体系结构是软件系统中最本质的东西:,(1)体系结构是对复杂事物的一种抽象。良好的体系结构是普遍适用的,它可以高效地处理多种多样的个体需求。 (2)体系结构在一定的时间内保持稳定。 良好的体系结构意味着普适、高效和稳定。,西南大学计信院自动化系,模块设计,在设计好软件的体系结构后,就已经在宏观上明确了各个模块应具有什么功能,应放在体系结构的哪个位置。习惯地从功能上划分模块,保持“功能独立”是模块化设计的基本原则。因为,“功能独立”的模块可以降低开发、测试、维护等阶段的代价。但是“功能独立”并不意味着模块之间保持绝对的孤立。一个系统要完成某项任务,需要各个模块相互配合才能实现,此时模块之间就要进行信息交流。,西南大学计信院自动化系,界面设计,管理输入设备(鼠标、键盘);确认用户输入; 处理错误和显示错误消息; 提供输入反馈(如输入自动回声); 提供提示和帮助开发(开发者只要规定符号和提供帮助内容); 窗口、域的显示,重叠和内容滚展; 提供和应用程序的接口; 界面管理功能和应用程序隔离; 允许用户定制界面。,西南大学计信院自动化系,数据结构与算法设计 (过程设计),完成数据、体系结构、界面设计之后,就按处理规格说明,或控制规格说明,或状态转移图,一一写出过程程序,也就是详细设计。选定或设计相应的算法作出设计。此时并非用某种程序设计语言,而是类_xxx语言、PDL、细化图形(设计详细的结构化流程图),西南大学计信院自动化系,详细设计,详细设计的任务 为软件结构图中的每一个模块确定采用的算法和块内数据结构,用某种选定的表达工具给出清晰的描述。 经过整个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把整个描述直接翻译成用某种程序设计语言书写的程序。 详细设计的描述工具 程序流程图 方框图(N-S图) 问题分析图(PDA) 伪码(PDL语言),西南大学计信院自动化系,程序流程图,也称为程序框图,独立于任何一种程序设计语言,比较直观、清晰、易于掌握。 任何复杂的程序流程图都可以由以下不同类型的基本结构组合或嵌套而成: 顺序结构 选择结构(IF-THEN-ELSE) 多分支选择结构(CASE) 先判定循环结构(WHILE) 后判定循环结构(UNTIL),西南大学计信院自动化系,程序流程图,程序流程图中常用的符号,西南大学计信院自动化系,方框图(N-S图),图形描述工具。限制了随意的控制转移。,N-S图的基本符号,西南大学计信院自动化系,11.5 软件构造,软件构造是将设计的结果转变为真实软件(代码块集合或源程序)的过程。 早期构造软件只能编码(写源程序),叫软件编码阶段。 当今软件大量重用,对于简单应用,利用配置语言写几条命令,把库中模块/对象调出、连接就完成了构造。,西南大学计信院自动化系,软件构造与设计的关系,软件设计把复杂的解分解为一个程序员能完全处理的块,原则上设计重点在于“可能”实现该产品的“功能、性能”,构造重点在于“必须可执行”。,西南大学计信院自动化系,工具的作用,软件构造工具分两类。一类是软件构造过程中所用的工具,如编译器、代码生成器、文档编写器等。另一类是自动构造工具。 专用工具箱(辅助Java开发的JDK)以解决与OS、数据库连接的细节问题,使用户集中构造应用逻辑的实现。高层的体系结构规范工具有利于快速构造复杂系统的体系结构。,西南大学计信院自动化系,标准的作用,设计时常常是参照标准,构造则必须按照标准实施才能成为产品。严格遵守标准所支持的资源才能使用。语言、数据库、平台采用什么标准是需求定义时定义的,此时要严格执行。,西南大学计信院自动化系,构造语言,配置语言:从预定义选项中选出部件,定制安装成新的应用。 工具箱语言:将专用的可重用件放在工具箱中,以工具箱界面上的一组命令调用。 专用域语言 编程语言,西南大学计信院自动化系,结构化编码方法,对源程序的编码要求:最基本要求是源程序的正确性,同时还要考虑其可读性、可理解性、可测试性和可维护性。 写程序的风格:一个好的源程序意味着源程序代码逻辑简明清晰,易读易懂。,西南大学计信院自动化系,编码原则,程序内部文档应选取含义鲜明的名字,注解正确,程序清单层次清晰,布局合理。 数据说明和次序应该标准化,个别复杂的数据结构应加注释。 每个语句应该简单直接,不能为提高效率而使程序变得过份复杂。 对输入数据应进行合法性检查;对输出数据要加输出数据的标志。 在程序编码阶段以不影响程序的清晰度和可读性为前提,尽可能提高效率。,西南大学计信院自动化系,11.6 软件测试,1 基本概念 软件测试定义:软件测试是为了发现错误而执行程序的过程。 软件测试分为:单元测试和综合测试。 软件测试在软件生存周期中横跨了两个阶段: 通常在编写出第一个模块之后就对它做必要的测试(称作单元测试)。编码与单元测试属于软件生存周期中的同一阶段。 在结束这个阶段之后,对软件系统还要进行各种综合测试,这是软件生存周期的另一个独立的阶段,即测试阶段。,西南大学计信院自动化系,2 软件测试的目标和原则,测试的目的是为了发现尽可能多的缺陷,并期望通过改错来把缺陷统统消灭,以期提高软件的质量。 好的测试方案是尽可能地发现至今尚未发现的错误的测试方案。,西南大学计信院自动化系,测试的目的,想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。 测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。 实施测试收集到的测试结果数据为可靠性分析提供了依据。 测试不能表明软件中不存在错误。,西南大学计信院自动化系,软件测试的原则,应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。 测试用例应由测试输入数据和对应的预期输出结果这两部分组成。 程序员应避免检查自己的程序。 在设计测试用例时,应包括合理的输入条件和不合理的输入条件。 充分注意测试中的群集现象。经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。 严格执行测试计划,排除测试的随意性。 应当对每一个测试结果做全面检查。 妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。,西南大学计信院自动化系,11.6.1 软件测试策略,测试过程是按单元测试、组装测试、确认测试和系统测试四个步骤进行的。,西南大学计信院自动化系,软件测试与软件开发过程的关系,需求 分析 说明 书,总体 设计 说明 书,详细 设计 说明 书,源程 序代 码,单元 测试,集成 测试,确认 测试,西南大学计信院自动化系,1)单元测试(模块测试Unit Testing),单元测试又称模块测试,是针对软件设计的最小单位 程序模块,进行正确性检验的测试工作。 目的:是发现模块的子程序或过程的实际功能与该模块的功能和接口描述是否相符,以及是否有编码错误存在。 主要内容:模块接口测试;局部数据结构测试;重要路径测试;出错处理能力测试;边界条件测试。,西南大学计信院自动化系,2)组装测试(Integrated Testing),组装测试(集成测试或联合测试) 目的:为了发现程序结构的错误。,西南大学计信院自动化系,3)确认测试(Validation Testing),确认测试(有效性测试)又称有效性测试。组装测试结束后,得到的是一个完整的软件系统。这时需要进行最后的测试,即有效性测试。,西南大学计信院自动化系,确认测试的步骤,选择测试人员,构造测试用例,实际运行测试,软件计划,用户文档,开发文档,源程序文本,支持环境,有效 性测试,软件配 置审查,管理机 构裁决,专家鉴 定会,测试报告,软件配置,交 用 户 运 行 维 护,西南大学计信院自动化系,4)系统测试(System Testing),系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。,西南大学计信院自动化系,11.6.2. 测试技术,选择测试用例是软件测试员最重要的一项工作。 测试用例的属性: 属性 描述 name 测试用例的名称 location 可执行的完全路径名 input 输入数据或命令 oracle 与测试输入相比较的期待测试结果 log 测试生产的输出,西南大学计信院自动化系,动态黑盒测试 闭着眼睛测试软件,不深入代码细节的测试方法称为动态黑盒测试。 软件测试员充当客户来使用它。,西南大学计信院自动化系,动态白盒测试 带上X光眼镜测试,假如知道一个盒子包含一台计算机,而另一个盒子是人用纸笔计算,就会选择不同的测试用例。,了解软件的运作方式会影响测试手段,西南大学计信院自动化系,黑盒测试,黑盒测试又称功能测试或数据驱动测试。 在这种测试方法中,程序对测试者是完全透明的。测试者不考虑程序的内部结构和特性,就好像把程序看作一个不能打开的盒子,只根据程序的需求规格说明中的程序功能或程序的外部特性来设计测试用例。 黑盒测试的方法包括:等价分类法、边缘值分析法。 一般来讲,通常用黑盒法设计基本的测试方案,再利用白盒法做必要的补充。,西南大学计信院自动化系,例:某报表处理系统要求用户输入处理报表的日期,日期限制在2001年1月至2005年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月。 如何用等价类划分法设计测试用例,来测试程序的日期检查功能?,西南大学计信院自动化系,用等价类划分法设计测试用例步骤,(1)形成等价类表,每一等价类规定一个唯一的编号; (2)设计一测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有有效等价类均被测试用例所覆盖; (3)设计一新测试用例,使其只覆盖一个无效等价类,重复这一步骤直到所有无效等价类均被覆盖;,西南大学计信院自动化系,第一步:等价类划分,输入等价类 有效等价类 无效等价类,报表日期的 类型及长度,6个数字字符(1),有非数字字符 (4) 少于6个数字字符 (5) 多于6个数字字符 (6),年份范围,在20012005之间 (2),小于2001 (7) 大于2005 (8),月份范围,在112之间(3),“报表日期”输入条件的等价类表,小于1 (9) 大于12 (10),西南大学计信院自动化系,第二步:为有效等价类设计测试用例,对表中编号为1,2,3的3个有效等价类 用一个测试用例覆盖:,测试数据 期望结果 覆盖范围,200105,等价类(1)(2)(3),输入有效,西南大学计信院自动化系,测试数据 期望结果 覆盖范围,001MAY,等价类(4),输入无效,20015,等价类(5),输入无效,2001005,等价类(6),输入无效,200005,等价类(7),输入无效,200805,等价类(8),输入无效,200100,等价类(9),输入无效,200113,等价类(10),输入无效,不能出现相同 的测试用例,本例的10个等价类至 少需要8个测试用例,第三步:为每一个无效等价类设至少设计一个测试用例,西南大学计信院自动化系,白盒测试,白盒测试又称结构测试或逻辑驱动测试。 所谓“白盒”是指将对象看作一个打开的盒子,测试人员可利用程序内部的逻辑结构及有关的信息来设计或选择测试用例。 白盒测试主要考虑的是测试用例对程序内部逻辑的覆盖程度,而不考虑程序的功能。 对程序模块的所有独立的执行路径至少测试一次; 对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次; 在循环的边界和运行界限内执行循环体; 测试内部数据结构的有效性,等。,西南大学计信院自动化系,2.白盒测试的测试用例设计,逻辑覆盖法 (1)语句覆盖 (2)判定覆盖 (3)条件覆盖 (4)判定/条件覆盖 (5)条件组合覆盖 需要说明的是,上述各种覆盖准则的侧重点不同,覆盖程度也不同。但它们共同的是:任何一种覆盖都不能做到完全测试。,西南大学计信院自动化系,举例:,例:PROCEDURE SAMPAL (A,B, X :REAL); BEGIN IF (A1) AND (B=0) THEN X=X/A IF (A=2) OR (X1) THEN X=X+1 END;,西南大学计信院自动化系,西南大学计信院自动化系,(1)语句覆盖,使程序中每个语句至少执行一次,只需设计一个测试用例: 输入数据:A=2,B=0,X=4 即达到了语句覆盖;,语句覆盖是最弱的逻辑覆盖

温馨提示

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

评论

0/150

提交评论