《部分详细设计》PPT课件.ppt_第1页
《部分详细设计》PPT课件.ppt_第2页
《部分详细设计》PPT课件.ppt_第3页
《部分详细设计》PPT课件.ppt_第4页
《部分详细设计》PPT课件.ppt_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

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

文档简介

第4章 详细设计,4.1 详细设计的 作业内容和作业步骤,系统内部构造设计 程序模块设计 物理数据库设计 性能/容量分析 测试方针作成 开发准备 开发计划, 作业步骤,系统详细设计,系统的分解方法 模块结构图 基本设计原则 (模块耦合度与内聚度) 设计策略 (变换型、事务型) 设计优化技巧,一、系统的分解方法,系统分解的方法是把一个复杂的问题分解成简单的要素,把一个统一的整体分解为各个组成部分,然后对各个要素和组成部分分别进行研究。 借助于目标系统的逻辑模型(DFD)并根据部门机构设置情况进行系统分解,(1)系统分解的原则,明确系统分解前、后的功能尽量一致 每次分解的结果是可以独立开发的子系统(或模块) 各子系统(或模块)间的关联尽量少 制定子系统(或模块)间的约束规范 区别稳定的和易变的子系统(或模块),(2)系统分解的方法,(一)按企业业务管理部门划分 如:生产、销售、供应管理等;按部门设置 (二)按完成功能的类型来划分 如:顾客服务、技术与生产数据管理;按实际职能设置,(3)模块化,结构化设计方法的基本思想就是模块化 对每一个系统按功能逐步由顶向下,由抽象到具体的逐层分解 将系统分解成为多层次的独立功能模块 一直分解到能简单地用程序实现为止。,(1) 模块,模块的定义: 模块是可以组成、分解、更换的系统,是易于处理的基本单位 具有四种属性的一组程序语句称为一个模块,这四种属性分别是: 输入输出、逻辑功能;(外部特性) 内部数据、程序代码。(内部特性),模块(另一种说法),“模块”,又称“组件”。它一般具有如下三个基本属性: 功能:描述该模块实现什么功能 逻辑:描述模块内部怎么做 状态:该模块使用时的环境和条件,模块(续),模块的例子: int max( int x, int y) int z; z=xy? x: y; return(z); ,模块名,数据,内部数据,内部语句,(2) 模块化思想:,模块化是好的系统设计的一个基本准则 高层模块 从整体上把握 问题,暂不考虑细节 复杂问题 较小问题 分解 可减小解题所需的总的工作,分解,(3) 模块和子系统的区别,模块和子系统的概念是有所区别的。子系统仍具有系统的特征(更大),模块则是指为完成某项功能的程序集合体(较小),它是一个不可分割的整体,但模块和子系统的概念有时又是兼容和不可绝对区分的。在日常工作中我们常将完成一个管理功能的程序集称为模块,而它常常由多个很小的程序子模块组成,所以有的地方可称为子系统。,(4) 模块结构图MSC,1. 结构图的产生 程序流程图 系统流程图和功能图 HIPO技术(功能图和IPO图) 结构图(Structure Chart)。,(5)结构图的主要成分,模块用方框表示,方框中写上模块名字,反映了这个模块的功能 调用从调用模块指向被调用模块的箭头 数据调用箭头旁的小箭头,表示从一个模块向另一个模块传送的数据,也指出了传送的方向,(6)结构图基本符号及表示法,4.模块结构类型,内导结构:是结构图中数据以最低层模块输入,并逐级向高层传递,高一层模块接收低一层模块的输入。,主模块,A1,A4,A3,A2,外导结构:结构图中低一层模块接收上一层模块的数据信息,并把它们转换给下一级模块,直到输出给使用者。,转换结构:数据要在模块内经过一定的处理,下层模块从相应的上层模块接收数据,经转换后返回同一上层模块中去。,4.结构图与数据流图的差别,数据流程图是从数据流着眼,而结构图从程序模块着眼; 数据流程图描述的是系统的逻辑模型,而结构图是描述系统的物理模型; 数据流程图是用不同的图来表示不同的层次,是“平面图”,而结构图能反映系统的层次结构,是“立体图”; 数据流程图是从具体到抽象,描述系统的要求,而结构图是从抽象到具体,描述系统的实现方法。,4.1.1 系统内部结构设计,系统内部构造设计的主要内容就是系统内部模块的划分,根据不同的着眼点系统内部模块划分有多种不同的方法. 着眼于数据流的水平分割法/垂直分割法,着眼于程序结构的高聚合低偶合的模块分割方法,回教寺庙房顶型的多层次模块分割法。 系统内部结构设计还需要注意把模块影响范围限制在模块的控制区域内,进行模块之间的接口设计评价,尽可能使每个模块功能容易理解。,(一)模块设计的原则,系统的可维护性是系统评价的一个重要因素,可维护性,局部修改,模块间的联系尽可能的少 (耦合) 而模块内的联系尽可能多(内聚),(1)模块化准则,(1)模块化准则,模块化方法已经为所有工程领域所接受。模块化的主要优点是,模块化设计降低了软件系统的复杂性,使得系统容易修改,同时使得系统各个部分可以并行开发,从而提高了软件的生产率。,并非模块分得越小越好,因为模块之间接口的复杂度和工作量增加。显然,每个软件系统都有一个最佳模块数M。注意选择分解的最佳模块数。图1.7描述了模块化与软件成本的关系。,1.2.5 软件设计,软件结构图表示软件的系统结构,它是软件模块间关系的表示,软件之间的各种关系,均可表示为层次结构。,有关指标: 深度:表示软件结构中从顶层模块到最底层模块的层数; 宽度:表示控制的总分布; 扇出数:指一个模块直接控制下属的模块个数; 扇入数:指一个模块的直接上属模块个数。,顶层,1层,2层,扇入为2,扇出为3,扇入为3,3层,4层,图1.6 软件结构示意图,一个好的软件结构的形态准则是:顶部宽度小,中部宽度大,底部宽度次之;在结构顶部有较高的扇出数,在底部有较高的扇入数。,(2)软件的层次结构,软件独立性的含义是指开发具有功能专一,模块之间无过多相互作用的模块。又称为模块独立性准则。 软件独立性的度量标准是两个定性指标:,耦合性 用于描述模块之间联系的紧密程度。,内聚性 用于描述模块内部联系的紧密程度。,(3)软件独立性准则,模块的独立性,模块独立的含义: 模块完成独立、单一的功能 符合信息隐蔽和信息局部化原则 模块间关连和依赖程度尽量小,模块独立性的度量之一:耦合度,耦合度是模块间的联结关系,衡量不同模块间的相互依赖的紧密密程度,耦合的强弱取决于模块间接口的复杂程度;进入或访问一个模块的入口点;以及通过接口的数据。 耦合度越高,模块独立性越弱,无耦合没有依赖关系,松散耦合有 少量依赖关系,紧密耦合有 很多依赖关系,模块耦合度(续),(二) 模块设计的原则,系统的可维护性是系统评价的一个重要因素,可维护性,局部修改,模块间的联系尽可能的少 (耦合) 而模块内的联系尽可能多(内聚),耦合度强弱的因素:,一模块对另一模块的引用 一模块向另一模块传递的数据量 一模块施加到另一模块的控制的数量 模块间接口的复杂程度,模块间耦合的类型:,低 非直接耦合 耦 数据耦合 合 标记耦合 性 控制耦合 高 内容耦合,模 块 独 立 性,弱,(低耦合),强,(中耦合),(较强耦合),(强耦合),公共耦合,模块化设计对耦合度的要求:,耦合是影响系统复杂程度和设计 质量的重要因素 目标:建立模块间耦合度尽可能 松散的系统,(三)如何降低模块间耦合度:,(1) 如模块必须存在耦合, 选择适当的耦合类型 原则:尽量使用数据耦合 少用控制耦合 限制公共耦合的范围 坚决避免使用内容耦合,如何降低模块间耦合度:,(2) 降低模块间接口的复杂性,接口复杂性与耦合类型的关系:,接 口 复 杂 性,接口方式,接口数据 的复杂性,无接口关系,直接引用,过程调用语句,数据项作参数,数据结构,变 量名作参数,内容耦合,其它耦合,开关量,起 控制变量作用,公用数据区,全程变量,,数据耦合,标记耦合,控制耦合,公共耦合,非直接耦合,4. 模块独立性的度量之二:内聚度,衡量一个模块内部各成分之间彼此结合的紧密程度 设计目标:高内聚(一模块的所有 成分都直接参与并且 对于完成同一功能来 说都是最基本的),模块的内聚性类型:,低 偶然内聚 内 逻辑内聚 聚 时间内聚 性 过程内聚 通信内聚 顺序内聚 高 功能内聚,模 块 独 立 性,弱(功能分散),强(功能单一),5. 耦合、内聚与模块独立性关系,耦合与内聚都是模块独立性的 定性标准,都反映模块独立性 的良好程度。但耦合是直接的 主导因素,内聚则辅助耦合共 同对模块独立性进行衡量。,内聚与耦合密切相关,同其它模块强耦合的模块意味着弱内聚,强内聚模块意味着与其它模块间松散耦合. 设计目标:力争 强内聚、 弱耦合,5. 耦合、内聚与模块独立性关系(续),三 数据流图导出初始结构图,从数据流程图导出系统的初始结构图,首先要区分数据流程图的结构类型,然后根据不同的类型采用不同的方法把数据流图映象成相应的模块结构。,(一)数据流程图DFD的结构类型,1变换型DFD 一个数据流程图可以明显地分成输入、处理和输出三部分。 2事务型DFD 事务型数据流程图一般呈束状形。,(1) 变换型结构,由输入、变换中心(或称主加工)和输出三部分组成。 基本模型:,变换 中心,输入 路径,输出 路径,变换流示意图,信息,时间,信息流,输入流,输出流,变换流,外部 表示,内部 表示,变换型数据流图,输入 信息,物理 输入,格式 检查,处理,显示,正确 信息,结果,物理 输出,数据,变换中心,输出,逻辑 输入,逻辑 输出,输入,(2) 事务型结构,特征:具有在多种事物中选择 执行某类事物的能力 基本模型:,事务 中心,接受路径,动作 路径,(3)大型系统DFD中,变换型和事务型结构往往共存:,T,事务中心,传入,变换,传出,(二)DFD导出初始MSC的过程,两种转换策略/技术 变换分析 事务分析 一般过程 先设计模块结构顶端的主模块 然后“由顶向下逐步细化” 最后得到一个与数据流图相对应的程序结构,SD方法的两种转换方法,变换型DFD,事务型DFD,初始MSC,初始MSC,变换分析,事务分析,“由顶向下逐步细化”的思想,找出“顶”在哪里,设计一个相应的主控模块 每创建一个新的模块时,必须决定该模块的外部特征 该模块的功能,即该模块“做什么” 该模块同其调用模块的界面,即调用时传送的参数 对已创建的模块进行细化,考虑这个模块应该“怎样做”才能完成它的功能,于是又要创建下一层的新模块,再回到上一步。,(三)变换分析设计方法 (Transform Analysis),步骤: 1 找出主加工、逻辑输入和逻辑输出 2 设计模块结构的顶层和第一层 3 设计中、下层模块,1 区分输入、主加工、输出部分,在DFD上标明分界线,(1)确定逻辑输入离物理输入端最远的,但仍可被看作系统输入的那个数据流 方法:从物理输入端开始,一步步向系统的中间移动,直至达到这样一个数据流:它已不能再被看作为系统的输入,则其前一个数据流就是系统的逻辑输入。,1 区分输入、主加工、输出部分,在DFD上标明分界线(续),(2)确定逻辑输出离物理输出端最远的,但仍可被看作系统输出的那个数据流 方法:从物理输出端开始,一步步向系统的中间反方向移动,直至达到这样一个数据流:它已不能再被看作为系统的输出,则其后一个数据流就是系统的逻辑输出。,1 区分输入、主加工、输出部分,在DFD上标明分界线(续),(3)对系统的每一股输入和输出,都用上 面的方法找出相应的逻辑输入、输出 (4)确定主加工位于逻辑输入和逻辑输出之间的加工,就是系统的主加工,1 区分输入、主加工、输出部分,在DFD上标明分界线(续),(5)几点说明: 有的系统只有输入和输出两部分,没有主加工 根据经验,几股数据流的汇合处往往是 系统的主加工 每个人都可以有自己的看法,找出来的主加工可能也不同,但一般不会相差太远。,1,2,3,4,5,6,7,a,b,c,e,d,r,p,u,w,v,变换中心,输入部分,输出部分,输入,输出,加工,2 设计MSC的顶层和第一层模块:,(1) 设计一个顶层模块(主模块),它的功能是完成整个程序要做的工作。 (2) 设计结构的第一层: 为逻辑输入设计一个输入模块,它的功能是向主模块提供数据 为逻辑输出设计一个输出模块,它的功能是输出主模块提供的数据 为主加工设计一个变换模块,它的功能是将逻辑输入变换成逻辑输出 第一层模块同顶层主模块之间传送的数据应与数据流图相对应。这里主模块控制并协调一层的输入、变换、输出模块的工作,注意识别出选择或循环调用以及调用条件。,第一级分解后的MSC,MC,MT,MA,ME,第一层,顶层,c,e,c,e,u,w,u,w,传送信息,第二级分解(分解MSC各分支)自顶向下分解,设计出每个分支(输入、加工、输出)的中、下层模块:,(1)为每一个输入模块设计两个下层模块,一个是输入模块,接受数据来源;另一个是变换模块,模块调用时传送的参数应同数据流图相对应,(2)输出模块也有两部分组成,一部分是变换模块,将数据变换成输出的形式;另一部分是输出模块 上述设计过程由顶向下递归进行,直至达到系统的输入端或输出端 (3) 变换模块的下层模块,根据数据流图中相应加工的组成情况而定。,输入分支的分解,MA,Get C,b,a,c,Read D,d,e,c,e,B to C,b,c,d,e,a,b,Get E,Get B,D to E,A to B,Read A,DFD图,输出分支的分解,ME,Write V,u,u,w,u,v,v,Put U,U to V,Write W,w,DFD图,加工分支的分解,MT,5,4,6,e,c,p,r,u,w,p,r,DFD图,任何情况下都可使用变换 分析方法设计软件结构, 但如数据流具有明显的事 务特点时(有一个明显的事 务中心),以采用事务分析 方法为宜。,(四) 事务分析设计方法,事务分析设计方法步骤:,(1)在DFD上确定事务中心。 (2)为DFD上的事务中心设计主模块,再为每一种类型的事务处理设计一个事务处理模块。 (3)为每个事务处理模块设计下面的操作模块,再为操作模块设计细节模块。某些操作模块和细节模块可以被几个上一层模块共用。,事务型DFD的划分,T,事务 中心,传入,变换,传出,接收部分,发送 部 分,a,事务型MSC的上层结构(1),事务控制,Get a,顶层,第一层,a,事务1,事务型MSC的上层结构 (2),事务控制,事务分析,发送,动作分支的典型结构,P,T 2,T 1,T i,A 2,D 2,A 1,D 1,A 3,A j,D k,事务层,操作层,细节层,处理层,变换分析举例-DFD,变换分析举例-转换后的MSC,事务分析举例-转换后的MSC,练习:将DFD用变换分析和事务型 分析导出初始MSC,初始MSC,着眼于数据流的模块分割方法有STS分割法、TR分割法和共通功能分割法。 STS把数据从输入设备进行的输入处理开始,经过转换,最终通过输出设备输出所需要的结果的过程进行模块划分 数据输入处理(入口)为源泉(Source) 最终的输出处理(出口)为吸收(Sink) 数据在源泉和吸收之间进行的处理称为数据变换(Transformation), 着眼于数据流的模块分割方法,TR分割法 是按照各个不同的事务处理单位进行模块划分,把各种不同的输入处理事务(TR: Transaction),划分成各个不同的独立的模块。 按照这种方式划分的模块,仍然是眼于数据流向的类型,可以更进一步按照STS分割法进行讨论。或者可以说,TR分割法可以作为研究STS分割法的前期准备。这种模块分割方法,又被称为水平分割法。,TR(Transaction)分割,共通处理功能分割,共通功能分割法,(如图4.2 的实例所示)是把按照水平分割法分割后的模块进行更进一步的功能划分,抽出共通的功能模块。例如:日期输入后的正确性检查、数据库访问出错处理等,这种可以抽出的共通处理模块有很多。像这种抽出共通处理功能的分割法被称为垂直功能分割法。, 着眼于程序结构、提高聚合降低偶合,功能内聚:实现一个完整的功能 信息内聚:统一对特定数据集的存取 通信内聚:在相同数据上执行有序动作 过程内聚:模块执行的若干动作之间有顺序关系 时间内聚:模块内多个任务与时间有关 逻辑内聚:模块内有多个相关功能,执行一系列相关的动作 偶然内聚:一个模块执行多个完全互不相关的动作,非直接耦合:模块之间没有直接关系 数据耦合:只有数据项的参数调用关系 数据结构耦合:有结构体的参数调用 控制耦合:有控制信息的参数调用关系 共通耦合:模块之间具有公共的存取空间 (全局数据结构、共享的通信区) 外部耦合: 模块之间具有公共的一般外部存取空间(全局简单变量) 内容耦合: 一个模块直接参考其他模块的内容,耦合度强弱的因素:,一模块对另一模块的引用 一模块向另一模块传递的数据量 一模块施加到另一模块的控制的数量 模块间接口的复杂程度, 回教寺院型(多层次)的模块控制结构, 把模块影响区域限制在模块控制区域内,影响区域,控制区域,输入,输出,出错,出错,影响区域,控制区域,出错输出,输入,输出,控制区域:控制上层模块调用下层模块的范围 影响区域:根据一个模块内设定的条件执行的操作所影响的范围,出错,图4.5 控制区域和影响区域, 模块的接口评价 接口过于复杂或冗长,往往会影响系统的性能。在接口评价的阶段,应使得模块之间传递的信息量减少到最小的程度。 设计容易理解的功能模块 就是像“黑箱”一样处理一个功能单一和结果可预测的模块可以被看成是一个“黑箱”,不论内部处理细节如何,对于相同的输入数据,总能产生同样的结果。这样的模块我们认为是容易理解的模块,最理想的模块是具有功能聚合的独立性强的模块。 通常在设计过程中,将模块的行数控制在50100行左右,模块划分的基本方法和注意事项,1水平分割与垂直分割 2提高聚合降低偶合 3回教寺院型的模块结构 4把模块影响区域限制在模块控制区域内 5模块的接口评价 6容易理解的模块功能 7一个模块50100条指令,2、系统内部设计的作业内容, 子系统的内部结构/程序结构的设计 程序处理概要的记述 共通处理功能的设计 共通表的设计 出错处理的设计, 子系统的内部结构/程序结构的设计,进行开发软件系统的内部结构设计,按照模块划分的基本方法和注意事项进行程序内部模块划分,把分割之后的程序内部模块或子模块,按照一定的关联关系和层次结构描述成程序功能结构图。 为了设计出具有充分的维护性和扩展性、独立性强的程序结构,我们常常使用复合设计或结构化设计的设计方法。其设计的关键在于以下2点:, 以程序修改的影响度小、容易进行局部的维护为目的,设计出高聚合(信息内聚/功能内聚)低偶合(数据偶合)的程序结构。 优化程序结构,使模块与子模块之间的接口更为简单。, 程序处理概要的记述,对各个程序模块/子模块,按照IPO(输入-处理-输出)的形式进行以下内容的描述。 程序模块处理的概要说明 根据概要设计的子系统划分一览表的各个功能模块的概要,写出该程序模块的功能概要。 程序模块使用的文件和数据库表等接口的说明 根据概要设计的子系统业务流程图,确认该程序模块要使用的输入输出文件和数据库表的名称,根据设计式样,文件和数据库表的描述可以使用图形或文字。, 设计上的限制和制约条件 设计上有制约条件时,例如,使用规定的文件路径、窗体启动条件、数据登录和显示的最大记录条数等,要在适当的位置加以说明。 处理流程及必要的特殊处理概要说明 程序功能处理概要主要描述该程序模块的主要处理功能,即该程序的主控制模块的功能和下一层模块的处理条件和流程。, 共通处理功能的设计,根据新系统的物理DFD和程序结构图,抽出共通处理功能模块,确定共通处理的功能(共通程序、共通处理内容、接口)。 做成共通程序设计说明书。确定的共同处理程序也要在程序结构图中反映出来。, 共通表的设计, 抽出作成共通表的数据项目(系统全体的共通项目、依存于各种处理的从属项目、按照某种规定发生变化的项目)。 对共通表的数据项目进行分类(按照从属关系、有无更新处理、是否为恢复对像、初期值设定方法等进行分类处理)。, 确定各种表的格式(数据字段名称、类型、长度等),给出必要的补充说明,作出共通表的项目设计书。 进一步研究和确认共通表的管理内容 确认有无需要进行编码设计的数据项目,追加和修改编码体系一览表。, 出错处理的设计, 出错处理的体系化 共通性的出错处理模块 要进行错误类型划分 出错信息标准化 出错信息的显示处理,4.1.2 程序模块的详细设计,1、程序处理功能的描述 2、程序内部模块的设计 3、模块之间的接口描述, 初期显示处理模块,初期处理主要有数据库连结、文件打开、画面窗体显示内容和工作变量的初期设定等内容。在画面窗体初期显示内容的设计时,首先要根据概要设计阶段的窗体设计式样,详细说明各个输入输出项目的显示内容和编辑方法。输入项目的初期值的设定时,要站在用户的立场多为用户使用该系统提供方便,减少不必要的输入操作而设定适当的初期值,要说明下拉式菜单的显示内容和初期显示值, 数据输入检查模块,为了保证进入开发系统的所有数据都是有效且正确的,我们必须对数据输入检查通常有单个项目检查、多个项目的关联检查、存在检查和个别项目的特别检查等处理,根据需要,可以把输入数据检查的设计说明作成“输入数据检查项目表” 单个项目的单独检查 多个项目的关联检查 存在检查和特别检查,4.1.3 数据库的物理设计, 确定数据库管理系统平台,即选定具体的DBMS; 利用数据库系统提供的命令的语句,建立表、索引、触发器、存储过程、视图等; 列出表与功能模块之间的关系矩阵图,便于进行详细设计和程序制造开发。,4.1.5 测试方针,在系统内部结构设计和程序功能模块设计等基本完成、进入制造、测试工程之前,我们要开始着手制定开发系统各个阶段的测试方针和测试实施计划。,1、单元测试的测试方针, 单元测试目的和测试内容 前提条件 作业体制(人员安排) 测试计划作成 作业分工 质量目标 测试完成标准,程序编制人员(PG):,a) 按照详细设计书作成PCL b) 程序修改、疏通测试 c) 作成测试数据 d) 根据PCL实施测试,记录测试结果。,设计人员(SE):,a) 对照详细设计书检查PCL b) 针对测试中发生的设计问题,修改详细设计书 c) 验收单元测试结果 d) 收集测试问题管理票(B票),进行质量管理 e) 再次验收程序修改后的测试结果,2、组合测试的测试方针, 组合测试的目的和测试内容(CCL表) 组合测试内容有三个方面: 一是数据输入之后,按照正常的业务处理流程,输出正确的数据结果的测试,主要验证窗体的迁移、数据显示和报表打印、DB数据更新和文件输出结果、数据传输结果等是否正确。 二是数据输入之后,在异常情况下的出错信息的显示以及出错处理的测试。 三是设计一些特殊的输入数据或边界处理条件,进行边界值或极限值的测试,同时,还要对程序之间、外部数据传输过程中的接口进行测试。, 前提条件 (准备) 作业体制(人员安排) 测试计划作成 质量目标 测试完成标准,3、系统测试的测试方针, 系统测试目的和测试内容 容量测试 负荷测试 性能测试 故障测试/恢复测试 可靠性测试 系统架构测试 安全性测试 维护测试,4、系统测试的准备工作, 设置必要的物理环境和模拟运行环境。 根据前面设定的剪彩标准和系统测试方针,作出各种类型的测试方案。 按照测试项目设计基准,以发现和排除系统、故障测试系统功能为目的设计出具体的测试项目。以设计出的测试项目为基础,确认和修改测试验证基准。 按照各个测试项目,作出测试数据,并对测试数据的内容是否恰当进行判断。 记述各个测试项目的确认内容(预期的结果),作出系统测试项目表(SCL)。,测试计划和单元测试,本章目标,计划测试过程 制定单元测试说明书 明确测试用例设计技术 单元测试的测试手段,基本测试过程,基本测试过程原则:尽早测试、经常测试、充分测试。 开发过程与测试过程:分析、测试、设计、测试、编码、测试 。 测试计划应该是按照开发者的要求并用具体例子来描述一个测试计划的层次结构以及各个测试计划相联系的标准模版。,测试的五个问题,谁执行了测试? 测试什么? 什么时候测试? 怎样测试? 测试应进行到何种程度?,测试方案设计,良好的测试设计由以下的若干个方面组成: 测试策略 测试计划 测试说明书 测试规范 这些方案适用于从单元测试到系统测试等各个级别的测试。测试设计需要根据软件说明书来进行。,单元测试 2-1,概况 定义: 检验程序最小单位有无错误。一般在编码之后,由开发人员完成。 单元:软件开发中的最小的独立部分 C语言中的单元:函数或者是子过程 C+语言中的单元:类,单元测试 2-2,单元测试目前状况: 实施效果非常好,但是实施阻力比较大(主要是人员和管理因素),一般只在关键的程序单元中实施 有比较系统的理论和方法,但也依赖于系统的特殊性和开发人员的经验 有大量的辅助工具,开发人员也经常自己开发测试代码和测试工具 主要使用白盒测试和静态分析,也使用黑盒测试,单元测试流程,管理流程 主要指动态测试应用流程,针对测试目标,规定测试任务、资源分配、人员角色、进度安排等。,根据测试计划,设计测试用例,包括:测试步骤、测试场景、测试代码、测试数据(包括预期结果)。,根据测试计划,配置测试环境,并手动或者自动执行测试设计。,根据测试计划,忠实地记录测试执行的过程和结果。,分析测试记录,如果发现与预期结果不同,确定并重现缺陷。,检查测试设计是否全部执行完毕,缺陷是否全部关闭。,记录、分发、评估、关闭缺陷报告。,分析测试过程和缺陷报告,评估测试质量和测试效果,给出是否通过测试的建议。,测试用例 2-1,测试用例是数据输入和期望结果组成的对 。,测试用例 2-2,ANSI/IEEE829标准列出了测试用例应该包含在内的重要信息: 标识符 测试项 输入说明 输出说明 环境要求 特殊要求 用例依赖性,单元测试说明书的组成,单元测试说明书由一系列单元测试用例组成。每个单元测试用例都应该包括四个基本要素(对照ANSI/IEEE标准): 单元的初始状态说明 单元的输入 测试用例实际要测试的内容 测试用例的预期结果,单元测试说明书(例)测试计划,编号 如:stb-tp0013 标题 如:文字排版功能.字间距.MayCourse 版本号 如:V1.0 执行状态 如:未执行 修改记录 如:2003年7月28日;编制/修改;原因 测试目标 如:语句覆盖 测试人员 如:1负责执行测试用例xxx;2负责执行测试用例xxx 测试用例编号(多个) 如:stb-fg00021/stb-fg00031/stb-fg00035 被测试单元代码位置 如:$tag1/layout/MayCourse.cpp,单元测试说明书(例) 测试用例,编号 如:stb-tp00014 标题 如:测试“文字排版功能.字间距.MayCourse” 版本号 如:V1.3 执行状态 如:已经执行 修改记录 如:2003年7月29日;编制/修改;原因 测试步骤 如:配置运行环境;输入测试数据;执行X功能/测试代码;观察/记录XX 测试场景 如:在联网的环境下 测试代码 如:stb-tp00021(位置)/stb-tp00035(位置) 测试数据 如:输入数据(输入文件、文字描述);预期结果(性能、图片、文字描述),单元测试说明书(例) 测试记录,编号 如:stb-tp00015 标题 如:记录测试“文字排版功能.字间距.MayCourse”结果 填写记录 如:2003年7月30日;填写;原因 测试用例编号 如:stb-tp0015 输出结果 如:图片、文字描述 测试观察 符合/不符合期望结果,单元测试说明书(例)缺陷跟踪报告,编号 如:stb-tp00016 标题 如:文字排版功能.字间距.MayCourse计算错误 版本号 如:V1.3 执行状态 如:空白/草稿/提交/审批/分发/正在修改/修改完毕/正在确认/关闭 修改记录 如:2003年7月31日;编制/修改;原因 测试环境和版本号码、程序编写人员 错误严重程度和优先级别 错误详细描述 重现步骤和方

温馨提示

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

评论

0/150

提交评论