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

下载本文档

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

文档简介

1、软件技术基础软件技术基础自动化系:黄巧莉自动化系:黄巧莉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 11.1.1 程序开发和软件工程程序开发是软件开发的核心,建立计算模型、设计程序、编写代码、测试程序四个步骤统称程序设计,简称编程。“软件危机”的产生。软件工程思想,以系统工

2、程的方法高效、快速地生产大量合格的软件。软件技术基础西南大学计信院自动化系 windows95有1000万行代码 windows2000有5000万行代码例:exchange2000和 windows2000开发人员结构exchange2000windows2000项目经理项目经理25人人约约250人人开发人员开发人员140人人约约1700人人测试人员测试人员350人人约约3200人人软件技术基础西南大学计信院自动化系软件危机的主要特征 软件开发周期大大超过规定日期; 软件开发成本严重超标; 软件质量难于保证。软件技术基础西南大学计信院自动化系软件工程的产生1968年由nato (北大西洋公约

3、组织)在德国的学术会议上,首先提出了“软件工程”概念。“任何软件都应当和其它产业的产品一样,由专业人员制作(软件中是系统分析员、高级程序员、程序员),以系统的、工程的方法开发制作,并提供全方位的售后服务管理(不能因开发者离开、调走而无人管理)。”软件技术基础西南大学计信院自动化系软件工程的定义 ieee【iee93】给出了一个更加综合的定义: “将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。”软件技术基础西南大学计信院自动化系系统方法 是任何产品都有其创意、开发、生产、调试、使用、维护、退役的全过程,而不是只考虑其中的一部分。 如果按照系统的规范和

4、标准进行开发,就可能大幅度提高软件生产力,就如同工业生产取代手工作坊。软件技术基础西南大学计信院自动化系工程方法 指要有工程规范和工程管理。工程产品不要求绝对完善,只要求在给定时间、给定的经费和当前技术条件下符合规范的要求的最佳。 工程管理要考虑到可行性、计划性、投入/产出、费用/效益。软件技术基础西南大学计信院自动化系软件工程以系统工程的方法制作软件产品 软件的系统(生存期)模型 与此模型相对应的各种规范和标准 为达到这些规范、标准的方法和工具 软件生产、交付、使用、维护的全面管理软件技术基础西南大学计信院自动化系软件开发方法学 软件开发方法学的研究是软件技术发展最活跃的因素。所谓的方法学,

5、是一组规范了的方法,按这组方法执行,可以得到较为理想的结果。把这组方法标准化就是软件开发标准。软件技术基础西南大学计信院自动化系软件工程技术的两个特点 强调规范化 强调文档化软件技术基础西南大学计信院自动化系软件的工业化生产过程应具备的特点:f明确的工作步骤f详细具体的规范化文档f明确的质量评价标准 “一个好的工业,应有一套良好的标准来配套”软件技术基础西南大学计信院自动化系软件产品的标准化软件开发过程的标准化软件技术基础西南大学计信院自动化系软件工程与编程 软件工程是一门学科,一种科学理论来指导软件系统开发,标准化,自动化的过程 考虑如何分解一个系统,以便各人分工开发;考虑如何说明每个部分的

6、规格要求;怎样才能易于维护 单纯的代码编写 是软件工程发展的前身 是软件工程中占据很少时间和空间的一部分软件技术基础西南大学计信院自动化系软件工作的范围只考虑编写程序 涉及整个软件生存周期扩展到扩展到软件技术基础西南大学计信院自动化系开发软件不仅仅是编程设计设计编写编写模块测试模块测试联合测试联合测试分析分析开发开发维护维护软件技术基础西南大学计信院自动化系11.1.2 软件工程概述 软件工程是一门交叉学科 软件工程与一般工程的差异 软件工程知识结构 软件工程教学课程目标软件技术基础西南大学计信院自动化系软件工程是一门交叉学科软件开发技术:软件开发方法学 软件开发过程 软件工具和软件工程环境

7、软件工程管理:软件管理学 软件经济学 软件心理学 软件工程所包含的内容不是一成不变的,随着人们对软软件工程所包含的内容不是一成不变的,随着人们对软件系统的研制开发和生产的理解。应用发展的眼光看待它。件系统的研制开发和生产的理解。应用发展的眼光看待它。软件技术基础西南大学计信院自动化系软件工程与一般工程的差异 软件是逻辑产品而不是实物产品 软件的功能依赖于硬件和软件的运行环境以及对它的操作 软件设计的复杂性 软件特征:功能的多样性 实现的多样性 能见度低 软件结构合理性差 智力密集及知识产权保护软件技术基础西南大学计信院自动化系软件工程知识结构 软件需求 软件设计 软件构造 软件测试 软件维护软

8、件配置管理软件工程管理软件工程过程软件工程工具和方法软件质量软件技术基础西南大学计信院自动化系“软件工程”课程与其它软件专业课的区别(1) 立足于系统的整体。(2) 讲授系统分析、系统设计、测试及维护的理论和方法。(3) 构筑一个软件系统,实践软件开发全过程。软件技术基础西南大学计信院自动化系“软件工程”课程教学的目标 转变对软件的认识: 上升 程序 系统 转变思维定式: 上升程序员 系统工程师(系统分析员)软件技术基础西南大学计信院自动化系 软件开发模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。 软件开发模型也常称为: 软

9、件过程模型、软件生存周期模型、软件工程范型。11.1.3 软件开发模型软件技术基础西南大学计信院自动化系可行性研究与计划需求分析设计编码运行维护测试定义阶段开发阶段维护阶段1 瀑布模型( (waterfall model) )软件技术基础西南大学计信院自动化系早期的瀑布模型即为线性顺序模型。它一次走完分析、设计、编码测试这些框架活动质量保证、文档制作、正式技术评审、配置管理等伞形活动穿插其中特点是严格把关、错误尽早发现并消灭在前一阶段软件技术基础西南大学计信院自动化系2 原型模型(快速原型模型)原型范型用户测试运行原型建造/修改 原型 听取用 户意见软件技术基础西南大学计信院自动化系 基本思想

10、是尽早拿出样板让用户试用,修改或补充了需求再接着开发 它基本上按瀑布模型划分阶段:分析 设计 编码 测试 交付,设计注重上层,找一个或几个最有代表性的子系统快速编码测试,所以也叫快速原型(rapid prototyping) 原型增加了开发的工作量,增加了管理上的困难。特别是原型过程步骤事先难于计划,不知道应反复几次,从哪里开始反复,预算进度均难于控制。但它具有切合实际,成功率较高的优点,故至今仍在使用。软件技术基础西南大学计信院自动化系采用原型模型的软件生存周期分析定义系统需求生成生成原型原型系统设计程序设计编码测试运行和维护原型化含原型化的软件生存期软件技术基础西南大学计信院自动化系3 螺

11、旋模型软件技术基础西南大学计信院自动化系 把软件过程描绘为用户通信计划风险分析做工程(原型)构造与发布用户评审六种活动。 对大型新产品特别有效,从概念开发最初产品开发产品增强开发产品维护改进。软件技术基础西南大学计信院自动化系4 构件组装模型 这类软件的开发过程也采用螺旋模型,只是把作工程和构造及发布合成一个步骤。风险分析后,转入客户评价。步骤如下:(1)先标识本项目需要什么构件;(2)库中查找构件或相似的构件;(3)如果可用转4 否则自行开发或修改,确认后入库;(4)构造为新系统作第m次迭代;(5)测试、确认。软件技术基础西南大学计信院自动化系5 快速应用开发模型rad有以下步骤:(1)业务

12、模型:以什么信息驱动业务过程运作? 要生成什么信息? 谁生成它? 信息流的去向? 由谁处理? 可以辅之以数据流图(2)数据模型:为支持业务过程的数据流,找数据对象集合,定义数据对象属性,与其它数据对象的关系构成数据模型,可辅之以e-r图。(3)做处理模型:如何使数据对象在信息流中完成各业务功能。描述数据对象的增加、修改、删除、查找。即细化数据流图中的处理框。软件技术基础西南大学计信院自动化系业务模型应用生成测试与交付处理模型数据模型 #1小组60-90天(4)应用程序生成:利用第四代语言(4gl)写出处理程序,重用已有构件或创建新的可重用构件,利用环境提供的工具,自动生成,构造出整个的应用系统

13、。(5)测试与交付,由于大量重用,一般只作总体测试,但新创建的构件还是要测试的软件技术基础西南大学计信院自动化系6 其它模型 除了上述五种模型而外,还有并发开发模型和形式方法模型,分别针对并发程序系统和需要作数学验证或函数式,逻辑式程序系统而设的。软件技术基础西南大学计信院自动化系11.2 软件生存周期问 题需求分析维 护构 造设 计测 试用户需求规范说明、可行性报告、初步用户手册体系结构设计、子规范说明、各模块实现设计的说明各模块代码和单元测试测试计划、测试设计、系统测试及各种目的测试、测试报告发布计划、培训计划及教材、反馈信息、维护档案软件技术基础西南大学计信院自动化系11.3 软件需求1

14、1.3.1 需求工程11.3.2 导出需求11.3.3 分析模型软件技术基础西南大学计信院自动化系(维护报告)开发时期运行时期计划时期(目标与范围说明书)(可行性论证论告)(测试报告)(程序)(设计文档)(需求说明书)软件需求分析是软件生命期中重要的一步,也是决定性的一步。软件需求分析是软件生命期中重要的一步,也是决定性的一步。软件技术基础西南大学计信院自动化系11.3.1 需求工程 对系统应该提供的服务和所受到的约束进行理解、分析、建立文档、检验的过程需求工程。 需求工程过程定义:过程模型(按什么步骤得到需求文档)、过程执行者、过程支持和管理(需要的设备条件、资金、计划)、过程质量和改进(本

15、过程的质量目标,改进措施)。软件技术基础西南大学计信院自动化系导出需求:需求来源、导出技术。需求分析:需求分类、概念建模、体系结构的初步设计、需求分配(按设想的体系机构为子系统,大模块写出需求,把总的需求分配到各个子部分)、需求磋商。对于风险较大的新技术要做关键机制的原型开发。写出需求规格说明。数据需求、功能需求、质量需求、管理需求、交付物需求。需求确认。模型确认、原型确认、需求确认。需求管理:需求追踪、需求变更管理。软件技术基础西南大学计信院自动化系需求工程过程问题识别问题识别分析与综合分析与综合编写文档编写文档分析评审分析评审可行性研究可行性研究需求导出需求导出和分析和分析需求描述需求描述

16、需求有效性需求有效性验证验证可行性报告可行性报告系统模型系统模型用户需求和用户需求和系统需求系统需求需求文挡需求文挡可行性研究可行性研究需求导出需求导出和分析和分析需求描述需求描述需求有效性需求有效性验证验证可行性报告可行性报告系统模型系统模型用户需求和用户需求和系统需求系统需求需求文挡需求文挡软件技术基础西南大学计信院自动化系11.3.2 导出需求(1)问题识别(2)分析与综合(3)编制需求分析文档(4)需求分析评审软件技术基础西南大学计信院自动化系软件技术基础西南大学计信院自动化系(1)问题识别 从系统的角度来理解软件并评审软件范围是否恰当 确定对目标系统的综合要求,即软件的需求 提出这些

17、需求实现条件,以及需求应达到的标准软件技术基础西南大学计信院自动化系软件的需求包括: 功能需求 性能需求 环境需求 可靠性需求 安全保密要求 用户界面需求 资源使用需求 成本消耗需求 开发进度需求 预先估计以后系统可能达到的目标软件技术基础西南大学计信院自动化系问题识别的另一项工作是建立分析所需要的通信途径,以保证能顺利地对问题进行分析。软件技术基础西南大学计信院自动化系(2)分析与综合从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。最终综合成系统的解决方案,给出目标系统的

18、详细逻辑模型。软件技术基础西南大学计信院自动化系(3) 编制需求分析阶段的文档 软件需求说明书 数据要求说明书 初步的用户手册 修改、完善与确定软件开发实施计划软件技术基础西南大学计信院自动化系软件技术基础西南大学计信院自动化系软件技术基础西南大学计信院自动化系(4) 需求分析评审系统定义的目标是否与用户的要求一致;系统需求分析阶段提供的文档资料是否齐全;文档中的所有描述是否完整、清晰、准确反映用户要求;与所有其它系统成分的重要接口是否都已经描述;被开发项目的数据流与数据结构是否足够,确定;所有图表是否清楚,在不补充说明时能否理解;主要功能是否已包括在规定的软件范围之内,是否都已充分说明;设计

19、的约束条件或限制条件是否符合实际;开发的技术风险是什么;是否考虑过软件需求的其它方案;是否考虑过将来可能会提出的软件需求;是否详细制定了检验标准,它们能否对系统定义是否成功进行确认。软件技术基础西南大学计信院自动化系11.3.3 分析模型 分析阶段最重要的工作就是建模。 系统模型的建立是对现实世界中存在的有关实体和活动的抽象和精化,包括观察分析、模型表示和模型检查三个阶段。软件技术基础西南大学计信院自动化系11.4 软件设计软件设计分为两部分:1、顶层(总体、概要)设计 确定系统的整体体系结构、模块结构 2、详细设计 给出软件模块结构中各模块的内部过程描述(算法)软件技术基础西南大学计信院自动

20、化系11.4.1 软件设计的基本原则 抽象:类是实例的抽象,过程是程序的抽象,类型是变量的抽象。 求精:为抽象增加具体的细节。 分解/模块化:将系统分解为相对独立的模块化。 数据隐藏:接口中数据传递越少越好,不是必须的数据尽量放在模块内部。软件技术基础西南大学计信院自动化系模块化 模块化:就是把系统划分为若干个模块,从而获得满足问题需要的一个解的过程。 模块:是指整个软件被划分成若干单独命名和可编址的部分,称之为模块。这些模块可以被组装起来以满足整个问题的需求。 把问题子问题的分解与软件开发中的系统子系统或系统模块对应起来,就能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。软件

21、技术基础西南大学计信院自动化系11.4.2 设计模型 系统设计的四方面内容:体系结构设计、模块设计、数据结构与算法设计、用户界面设计。如果将软件系统比喻为人体,那么:(1)体系结构就如同人的骨架。(2)模块就如同人的器官,具有特定的功能。(3)数据结构与算法就如同人的血脉和神经,它让器官具有生命并能发挥功能。数据结构与算法分布在体系结构和模块中,它将协调系统的各个功能。(4)用户界面就如同人的外表。软件技术基础西南大学计信院自动化系体系结构是软件系统中最本质的东西:(1)体系结构是对复杂事物的一种抽象。良好的体系结构是普遍适用的,它可以高效地处理多种多样的个体需求。(2)体系结构在一定的时间内

22、保持稳定。 良好的体系结构意味着普适、高效和稳定。软件技术基础西南大学计信院自动化系模块设计 在设计好软件的体系结构后,就已经在宏观上明确了各个模块应具有什么功能,应放在体系结构的哪个位置。习惯地从功能上划分模块,保持“功能独立”是模块化设计的基本原则。因为,“功能独立”的模块可以降低开发、测试、维护等阶段的代价。但是“功能独立”并不意味着模块之间保持绝对的孤立。一个系统要完成某项任务,需要各个模块相互配合才能实现,此时模块之间就要进行信息交流。软件技术基础西南大学计信院自动化系界面设计管理输入设备(鼠标、键盘);确认用户输入;处理错误和显示错误消息;提供输入反馈(如输入自动回声);提供提示和

23、帮助开发(开发者只要规定符号和提供帮助内容);窗口、域的显示,重叠和内容滚展;提供和应用程序的接口;界面管理功能和应用程序隔离;允许用户定制界面。软件技术基础西南大学计信院自动化系数据结构与算法设计 (过程设计) 完成数据、体系结构、界面设计之后,就按处理规格说明,或控制规格说明,或状态转移图,一一写出过程程序,也就是详细设计。选定或设计相应的算法作出设计。此时并非用某种程序设计语言,而是类_xxx语言、pdl、细化图形(设计详细的结构化流程图)软件技术基础西南大学计信院自动化系详细设计 详细设计的任务 为软件结构图中的每一个模块确定采用的算法和块内数据结构,用某种选定的表达工具给出清晰的描述

24、。 经过整个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把整个描述直接翻译成用某种程序设计语言书写的程序。 详细设计的描述工具 程序流程图 方框图(n-s图) 问题分析图(pda) 伪码(pdl语言)软件技术基础西南大学计信院自动化系程序流程图 也称为程序框图,独立于任何一种程序设计语言,比较直观、清晰、易于掌握。 任何复杂的程序流程图都可以由以下不同类型的基本结构组合或嵌套而成: 顺序结构 选择结构(if-then-else) 多分支选择结构(case) 先判定循环结构(while) 后判定循环结构(until)软件技术基础西南大学计信院自动化系程序流程图程序流程图中常用

25、的符号 起止端点 数据 处理 准备或预处理 预先定义的处理 条件判断 循环上界限 循环下界限 文档 流线 虚线 省略符 并行方式 注释 软件技术基础西南大学计信院自动化系方框图(n-s图) 图形描述工具。限制了随意的控制转移。 值 1 case1 部分 case条件 第一个任务 第二个任务 第三个任务 (a) 顺序结构 f 条件 t else 部分 then 部分 (b) 选择结构 (c) 多分支结构 循环条件 do_while 部分 循环条件 do_until 部分 (d) 循环结构 a (e) 调用子程序 a 值 2 case2 部分 值 n casen 部分 n-s图的基本符号 软件技术

26、基础西南大学计信院自动化系11.5 软件构造 软件构造是将设计的结果转变为真实软件(代码块集合或源程序)的过程。 早期构造软件只能编码(写源程序),叫软件编码阶段。 当今软件大量重用,对于简单应用,利用配置语言写几条命令,把库中模块/对象调出、连接就完成了构造。软件技术基础西南大学计信院自动化系软件构造与设计的关系 软件设计把复杂的解分解为一个程序员能完全处理的块,原则上设计重点在于“可能”实现该产品的“功能、性能”,构造重点在于“必须可执行”。软件技术基础西南大学计信院自动化系工具的作用 软件构造工具分两类。一类是软件构造过程中所用的工具,如编译器、代码生成器、文档编写器等。另一类是自动构造

27、工具。 专用工具箱(辅助java开发的jdk)以解决与os、数据库连接的细节问题,使用户集中构造应用逻辑的实现。高层的体系结构规范工具有利于快速构造复杂系统的体系结构。软件技术基础西南大学计信院自动化系标准的作用 设计时常常是参照标准,构造则必须按照标准实施才能成为产品。严格遵守标准所支持的资源才能使用。语言、数据库、平台采用什么标准是需求定义时定义的,此时要严格执行。软件技术基础西南大学计信院自动化系构造语言 配置语言:从预定义选项中选出部件,定制安装成新的应用。 工具箱语言:将专用的可重用件放在工具箱中,以工具箱界面上的一组命令调用。 专用域语言 编程语言软件技术基础西南大学计信院自动化系

28、结构化编码方法 对源程序的编码要求:最基本要求是源程序的正确性,同时还要考虑其可读性、可理解性、可测试性和可维护性。 写程序的风格:一个好的源程序意味着源程序代码逻辑简明清晰,易读易懂。软件技术基础西南大学计信院自动化系编码原则 程序内部文档应选取含义鲜明的名字,注解正确,程序清单层次清晰,布局合理。 数据说明和次序应该标准化,个别复杂的数据结构应加注释。 每个语句应该简单直接,不能为提高效率而使程序变得过份复杂。 对输入数据应进行合法性检查;对输出数据要加输出数据的标志。 在程序编码阶段以不影响程序的清晰度和可读性为前提,尽可能提高效率。软件技术基础西南大学计信院自动化系11.6 软件测试1

29、 基本概念软件测试定义:软件测试是为了发现错误而执行程序的过程。软件测试分为:单元测试和综合测试。软件测试在软件生存周期中横跨了两个阶段:通常在编写出第一个模块之后就对它做必要的测试(称作单元测试)。编码与单元测试属于软件生存周期中的同一阶段。在结束这个阶段之后,对软件系统还要进行各种综合测试,这是软件生存周期的另一个独立的阶段,即测试阶段。软件技术基础西南大学计信院自动化系2 软件测试的目标和原则 测试的目的是为了发现尽可能多的缺陷,并期望通过改错来把缺陷统统消灭,以期提高软件的质量。 好的测试方案是尽可能地发现至今尚未发现的错误的测试方案。软件技术基础西南大学计信院自动化系测试的目的 想以

30、最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。 测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。 实施测试收集到的测试结果数据为可靠性分析提供了依据。 测试不能表明软件中不存在错误。软件技术基础西南大学计信院自动化系软件测试的原则1.应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。2.测试用例应由测试输入数据和对应的预期输出结果这两部分组成。3.程序员应避免检查自己的程序。4.在设计测试用例时,应包括合理的输入条件和不合理的输入条件。5.充分注意测试中的群集现象。经验表明,测试后程序中残存的错误数目与该程

31、序中已发现的错误数目成正比。6.严格执行测试计划,排除测试的随意性。7.应当对每一个测试结果做全面检查。8.妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。软件技术基础西南大学计信院自动化系11.6.1 软件测试策略 测试过程是按单元测试、组装测试、确认测试和系统测试四个步骤进行的。单元测试单元测试单元测试组装测试确认测试系统测试被测模块被测模块被测模块已测试的模块设计信息软件要求系统其它元素已集成的软件已确认的软件可交付的软件软件技术基础西南大学计信院自动化系软件测试与软件开发过程的关系需求分析设计编程单元测试集成测试有效性测试需求分析说明书总体设计说明书详细设计说明书源

32、程序代码单元测试集成测试确认测试软件技术基础西南大学计信院自动化系1)单元测试(模块测试unit testing) 单元测试又称模块测试,是针对软件设计的最小单位 程序模块,进行正确性检验的测试工作。 目的:是发现模块的子程序或过程的实际功能与该模块的功能和接口描述是否相符,以及是否有编码错误存在。 主要内容:模块接口测试;局部数据结构测试;重要路径测试;出错处理能力测试;边界条件测试。软件技术基础西南大学计信院自动化系2)组装测试(integrated testing) 组装测试(集成测试或联合测试) 目的:为了发现程序结构的错误。软件技术基础西南大学计信院自动化系3)确认测试(valida

33、tion testing) 确认测试(有效性测试)又称有效性测试。组装测试结束后,得到的是一个完整的软件系统。这时需要进行最后的测试,即有效性测试。软件技术基础西南大学计信院自动化系确认测试的步骤选择测试人员构造测试用例实际运行测试软件计划用户文档开发文档源程序文本支持环境有效有效性测试性测试软件配软件配置审查置审查管理机管理机构裁决构裁决专家鉴专家鉴定会定会测试报告软件配置交用户运行维护软件技术基础西南大学计信院自动化系4)系统测试(system testing) 系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结

34、合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。软件技术基础西南大学计信院自动化系11.6.2. 测试技术选择测试用例是软件测试员最重要的一项工作。测试用例的属性:属性 描述name 测试用例的名称 location 可执行的完全路径名 input 输入数据或命令oracle 与测试输入相比较的期待测试结果log 测试生产的输出软件技术基础西南大学计信院自动化系动态黑盒测试 闭着眼睛测试软件 不深入代码细节的测试方法称为动态黑盒测试。软件测试员充当客户来使用它。软件输入输出软件技术基础西南大学计信院自动化系动态白盒测试 带上x光眼镜测试?3581322.29341998

35、5680302829734315250*(1+0.015)*(1+0.015)360-1)/0.015 250*(1+0.015)*(1+0.015)360-1)/0.015 假如知道一个盒子包含一台计算机,而另一个盒子是人用纸笔计算,就会选择不同的测试用例。了解软件的运作方式会影响测试手段软件技术基础西南大学计信院自动化系黑盒测试 黑盒测试又称功能测试或数据驱动测试。 在这种测试方法中,程序对测试者是完全透明的。测试者不考虑程序的内部结构和特性,就好像把程序看作一个不能打开的盒子,只根据程序的需求规格说明中的程序功能或程序的外部特性来设计测试用例。 黑盒测试的方法包括:等价分类法、边缘值分析

36、法。 一般来讲,通常用黑盒法设计基本的测试方案,再利用白盒法做必要的补充。软件技术基础西南大学计信院自动化系 例:某报表处理系统要求用户输入处理报表的日期,日期限制在2001年1月至2005年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月。 如何用等价类划分法设计测试用例,来测试程序的日期检查功能?软件技术基础西南大学计信院自动化系用等价类划分法设计测试用例步骤(1)形成等价类表,每一等价类规定一个唯一的编号;(2)设计一测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到

37、所有有效等价类均被测试用例所覆盖;(3)设计一新测试用例,使其只覆盖一个无效等价类,重复这一步骤直到所有无效等价类均被覆盖;软件技术基础西南大学计信院自动化系第一步:等价类划分 输入等价类 有效等价类 无效等价类 报表日期的类型及长度6个数字字符(1)有非数字字符 (4)少于6个数字字符 (5)多于6个数字字符 (6)年份范围在20012005之间 (2)小于2001 (7)大于2005 (8)月份范围在112之间(3)“报表日期”输入条件的等价类表小于1 (9)大于12 (10)软件技术基础西南大学计信院自动化系第二步:为有效等价类设计测试用例对表中编号为1,2,3的3个有效等价类 用一个测

38、试用例覆盖: 测试数据 期望结果 覆盖范围200105等价类(1)(2)(3)输入有效软件技术基础西南大学计信院自动化系 测试数据 期望结果 覆盖范围001may等价类(4)输入无效20015等价类(5)输入无效2001005等价类(6)输入无效200005等价类(7)输入无效200805等价类(8)输入无效200100等价类(9)输入无效200113等价类(10)输入无效不能出现相同不能出现相同的测试用例的测试用例本例的本例的1010个等价类至个等价类至少需要少需要8 8个测试用例个测试用例第三步:为每一个无效等价类设至少设计一个测试用例软件技术基础西南大学计信院自动化系白盒测试白盒测试又称

39、结构测试或逻辑驱动测试。所谓“白盒”是指将对象看作一个打开的盒子,测试人员可利用程序内部的逻辑结构及有关的信息来设计或选择测试用例。白盒测试主要考虑的是测试用例对程序内部逻辑的覆盖程度,而不考虑程序的功能。对程序模块的所有独立的执行路径至少测试一次;对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;在循环的边界和运行界限内执行循环体;测试内部数据结构的有效性,等。软件技术基础西南大学计信院自动化系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; 软件技术基础西南大学计信院自动化系开始开始(a1) and (b=0)(a=2) or (x1)返回返回x=x/ax=x+1ffttabdce软件技术基础西南大学计信院自动化系(1)语句覆盖 使程

温馨提示

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

评论

0/150

提交评论