《部分详细设计》PPT课件.ppt

上传人:小飞机 文档编号:5612633 上传时间:2023-08-02 格式:PPT 页数:136 大小:629KB
返回 下载 相关 举报
《部分详细设计》PPT课件.ppt_第1页
第1页 / 共136页
《部分详细设计》PPT课件.ppt_第2页
第2页 / 共136页
《部分详细设计》PPT课件.ppt_第3页
第3页 / 共136页
《部分详细设计》PPT课件.ppt_第4页
第4页 / 共136页
《部分详细设计》PPT课件.ppt_第5页
第5页 / 共136页
点击查看更多>>
资源描述

《《部分详细设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《部分详细设计》PPT课件.ppt(136页珍藏版)》请在三一办公上搜索。

1、第4章 详细设计,4.1 详细设计的作业内容和作业步骤,系统内部构造设计 程序模块设计 物理数据库设计 性能/容量分析 测试方针作成 开发准备 开发计划,作业步骤,系统详细设计,系统的分解方法模块结构图基本设计原则(模块耦合度与内聚度)设计策略(变换型、事务型)设计优化技巧,一、系统的分解方法,系统分解的方法是把一个复杂的问题分解成简单的要素,把一个统一的整体分解为各个组成部分,然后对各个要素和组成部分分别进行研究。借助于目标系统的逻辑模型(DFD)并根据部门机构设置情况进行系统分解,(1)系统分解的原则,明确系统分解前、后的功能尽量一致每次分解的结果是可以独立开发的子系统(或模块)各子系统(

2、或模块)间的关联尽量少制定子系统(或模块)间的约束规范区别稳定的和易变的子系统(或模块),(2)系统分解的方法,(一)按企业业务管理部门划分 如:生产、销售、供应管理等;按部门设置(二)按完成功能的类型来划分 如:顾客服务、技术与生产数据管理;按实际职能设置,(3)模块化,结构化设计方法的基本思想就是模块化对每一个系统按功能逐步由顶向下,由抽象到具体的逐层分解将系统分解成为多层次的独立功能模块一直分解到能简单地用程序实现为止。,(1)模块,模块的定义:模块是可以组成、分解、更换的系统,是易于处理的基本单位 具有四种属性的一组程序语句称为一个模块,这四种属性分别是:输入输出、逻辑功能;(外部特性

3、)内部数据、程序代码。(内部特性),模块(另一种说法),“模块”,又称“组件”。它一般具有如下三个基本属性:功能:描述该模块实现什么功能逻辑:描述模块内部怎么做状态:该模块使用时的环境和条件,模块(续),模块的例子:int max(int x,int y)int z;z=xy?x:y;return(z);,模块名,数据,内部数据,内部语句,(2)模块化思想:,模块化是好的系统设计的一个基本准则 高层模块 从整体上把握 问题,暂不考虑细节复杂问题 较小问题 分解 可减小解题所需的总的工作,分解,(3)模块和子系统的区别,模块和子系统的概念是有所区别的。子系统仍具有系统的特征(更大),模块则是指为

4、完成某项功能的程序集合体(较小),它是一个不可分割的整体,但模块和子系统的概念有时又是兼容和不可绝对区分的。在日常工作中我们常将完成一个管理功能的程序集称为模块,而它常常由多个很小的程序子模块组成,所以有的地方可称为子系统。,(4)模块结构图MSC,1.结构图的产生 程序流程图 系统流程图和功能图 HIPO技术(功能图和IPO图)结构图(Structure Chart)。,(5)结构图的主要成分,模块用方框表示,方框中写上模块名字,反映了这个模块的功能调用从调用模块指向被调用模块的箭头 数据调用箭头旁的小箭头,表示从一个模块向另一个模块传送的数据,也指出了传送的方向,(6)结构图基本符号及表示

5、法,4.模块结构类型,内导结构:是结构图中数据以最低层模块输入,并逐级向高层传递,高一层模块接收低一层模块的输入。,主模块,A1,A4,A3,A2,外导结构:结构图中低一层模块接收上一层模块的数据信息,并把它们转换给下一级模块,直到输出给使用者。,转换结构:数据要在模块内经过一定的处理,下层模块从相应的上层模块接收数据,经转换后返回同一上层模块中去。,4.结构图与数据流图的差别,数据流程图是从数据流着眼,而结构图从程序模块着眼;数据流程图描述的是系统的逻辑模型,而结构图是描述系统的物理模型;数据流程图是用不同的图来表示不同的层次,是“平面图”,而结构图能反映系统的层次结构,是“立体图”;数据流

6、程图是从具体到抽象,描述系统的要求,而结构图是从抽象到具体,描述系统的实现方法。,4.1.1 系统内部结构设计,系统内部构造设计的主要内容就是系统内部模块的划分,根据不同的着眼点系统内部模块划分有多种不同的方法.着眼于数据流的水平分割法/垂直分割法,着眼于程序结构的高聚合低偶合的模块分割方法,回教寺庙房顶型的多层次模块分割法。系统内部结构设计还需要注意把模块影响范围限制在模块的控制区域内,进行模块之间的接口设计评价,尽可能使每个模块功能容易理解。,(一)模块设计的原则,系统的可维护性是系统评价的一个重要因素,可维护性,局部修改,模块间的联系尽可能的少(耦合)而模块内的联系尽可能多(内聚),(1

7、)模块化准则,(1)模块化准则,模块化方法已经为所有工程领域所接受。模块化的主要优点是,模块化设计降低了软件系统的复杂性,使得系统容易修改,同时使得系统各个部分可以并行开发,从而提高了软件的生产率。,并非模块分得越小越好,因为模块之间接口的复杂度和工作量增加。显然,每个软件系统都有一个最佳模块数M。注意选择分解的最佳模块数。图1.7描述了模块化与软件成本的关系。,1.2.5 软件设计,软件结构图表示软件的系统结构,它是软件模块间关系的表示,软件之间的各种关系,均可表示为层次结构。,有关指标:深度:表示软件结构中从顶层模块到最底层模块的层数;宽度:表示控制的总分布;扇出数:指一个模块直接控制下属

8、的模块个数;扇入数:指一个模块的直接上属模块个数。,顶层,1层,2层,扇入为2,扇出为3,扇入为3,3层,4层,图1.6 软件结构示意图,一个好的软件结构的形态准则是:顶部宽度小,中部宽度大,底部宽度次之;在结构顶部有较高的扇出数,在底部有较高的扇入数。,(2)软件的层次结构,软件独立性的含义是指开发具有功能专一,模块之间无过多相互作用的模块。又称为模块独立性准则。软件独立性的度量标准是两个定性指标:,耦合性 用于描述模块之间联系的紧密程度。,内聚性 用于描述模块内部联系的紧密程度。,(3)软件独立性准则,模块的独立性,模块独立的含义:模块完成独立、单一的功能符合信息隐蔽和信息局部化原则模块间

9、关连和依赖程度尽量小,模块独立性的度量之一:耦合度,耦合度是模块间的联结关系,衡量不同模块间的相互依赖的紧密密程度,耦合的强弱取决于模块间接口的复杂程度;进入或访问一个模块的入口点;以及通过接口的数据。耦合度越高,模块独立性越弱,无耦合没有依赖关系,松散耦合有少量依赖关系,紧密耦合有很多依赖关系,模块耦合度(续),(二)模块设计的原则,系统的可维护性是系统评价的一个重要因素,可维护性,局部修改,模块间的联系尽可能的少(耦合)而模块内的联系尽可能多(内聚),耦合度强弱的因素:,一模块对另一模块的引用一模块向另一模块传递的数据量一模块施加到另一模块的控制的数量模块间接口的复杂程度,模块间耦合的类型

10、:,低 非直接耦合耦 数据耦合合 标记耦合性 控制耦合 高 内容耦合,模块独立性,弱,(低耦合),强,(中耦合),(较强耦合),(强耦合),公共耦合,模块化设计对耦合度的要求:,耦合是影响系统复杂程度和设计质量的重要因素目标:建立模块间耦合度尽可能松散的系统,(三)如何降低模块间耦合度:,(1)如模块必须存在耦合,选择适当的耦合类型原则:尽量使用数据耦合少用控制耦合限制公共耦合的范围坚决避免使用内容耦合,如何降低模块间耦合度:,(2)降低模块间接口的复杂性,接口复杂性与耦合类型的关系:,接口复杂性,接口方式,接口数据的复杂性,无接口关系,直接引用,过程调用语句,数据项作参数,数据结构,变量名作

11、参数,内容耦合,其它耦合,开关量,起控制变量作用,公用数据区,全程变量,,数据耦合,标记耦合,控制耦合,公共耦合,非直接耦合,4.模块独立性的度量之二:内聚度,衡量一个模块内部各成分之间彼此结合的紧密程度设计目标:高内聚(一模块的所有成分都直接参与并且对于完成同一功能来说都是最基本的),模块的内聚性类型:,低 偶然内聚 内 逻辑内聚 聚 时间内聚 性 过程内聚 通信内聚 顺序内聚 高 功能内聚,模块独立性,弱(功能分散),强(功能单一),5.耦合、内聚与模块独立性关系,耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度。但耦合是直接的主导因素,内聚则辅助耦合共同对模块独立性进行衡量

12、。,内聚与耦合密切相关,同其它模块强耦合的模块意味着弱内聚,强内聚模块意味着与其它模块间松散耦合.设计目标:力争 强内聚、弱耦合,5.耦合、内聚与模块独立性关系(续),三 数据流图导出初始结构图,从数据流程图导出系统的初始结构图,首先要区分数据流程图的结构类型,然后根据不同的类型采用不同的方法把数据流图映象成相应的模块结构。,(一)数据流程图DFD的结构类型,1变换型DFD一个数据流程图可以明显地分成输入、处理和输出三部分。2事务型DFD事务型数据流程图一般呈束状形。,(1)变换型结构,由输入、变换中心(或称主加工)和输出三部分组成。基本模型:,变换中心,输入路径,输出路径,变换流示意图,信息

13、,时间,信息流,输入流,输出流,变换流,外部表示,内部表示,变换型数据流图,输入信息,物理输入,格式检查,处理,显示,正确信息,结果,物理输出,数据,变换中心,输出,逻辑输入,逻辑输出,输入,(2)事务型结构,特征:具有在多种事物中选择 执行某类事物的能力基本模型:,事务中心,接受路径,动作路径,(3)大型系统DFD中,变换型和事务型结构往往共存:,T,事务中心,传入,变换,传出,(二)DFD导出初始MSC的过程,两种转换策略/技术 变换分析 事务分析一般过程 先设计模块结构顶端的主模块 然后“由顶向下逐步细化”最后得到一个与数据流图相对应的程序结构,SD方法的两种转换方法,变换型DFD,事务

14、型DFD,初始MSC,初始MSC,变换分析,事务分析,“由顶向下逐步细化”的思想,找出“顶”在哪里,设计一个相应的主控模块每创建一个新的模块时,必须决定该模块的外部特征 该模块的功能,即该模块“做什么”该模块同其调用模块的界面,即调用时传送的参数对已创建的模块进行细化,考虑这个模块应该“怎样做”才能完成它的功能,于是又要创建下一层的新模块,再回到上一步。,(三)变换分析设计方法(Transform Analysis),步骤:1 找出主加工、逻辑输入和逻辑输出2 设计模块结构的顶层和第一层3 设计中、下层模块,1 区分输入、主加工、输出部分,在DFD上标明分界线,(1)确定逻辑输入离物理输入端最

15、远的,但仍可被看作系统输入的那个数据流 方法:从物理输入端开始,一步步向系统的中间移动,直至达到这样一个数据流:它已不能再被看作为系统的输入,则其前一个数据流就是系统的逻辑输入。,1 区分输入、主加工、输出部分,在DFD上标明分界线(续),(2)确定逻辑输出离物理输出端最远的,但仍可被看作系统输出的那个数据流 方法:从物理输出端开始,一步步向系统的中间反方向移动,直至达到这样一个数据流:它已不能再被看作为系统的输出,则其后一个数据流就是系统的逻辑输出。,1 区分输入、主加工、输出部分,在DFD上标明分界线(续),(3)对系统的每一股输入和输出,都用上 面的方法找出相应的逻辑输入、输出(4)确定

16、主加工位于逻辑输入和逻辑输出之间的加工,就是系统的主加工,1 区分输入、主加工、输出部分,在DFD上标明分界线(续),(5)几点说明:有的系统只有输入和输出两部分,没有主加工根据经验,几股数据流的汇合处往往是 系统的主加工每个人都可以有自己的看法,找出来的主加工可能也不同,但一般不会相差太远。,1,2,3,4,5,6,7,a,b,c,e,d,r,p,u,w,v,变换中心,输入部分,输出部分,输入,输出,加工,2 设计MSC的顶层和第一层模块:,(1)设计一个顶层模块(主模块),它的功能是完成整个程序要做的工作。(2)设计结构的第一层:为逻辑输入设计一个输入模块,它的功能是向主模块提供数据为逻辑

17、输出设计一个输出模块,它的功能是输出主模块提供的数据为主加工设计一个变换模块,它的功能是将逻辑输入变换成逻辑输出 第一层模块同顶层主模块之间传送的数据应与数据流图相对应。这里主模块控制并协调一层的输入、变换、输出模块的工作,注意识别出选择或循环调用以及调用条件。,第一级分解后的MSC,MC,MT,MA,ME,第一层,顶层,c,e,c,e,u,w,u,w,传送信息,第二级分解(分解MSC各分支)自顶向下分解,设计出每个分支(输入、加工、输出)的中、下层模块:,(1)为每一个输入模块设计两个下层模块,一个是输入模块,接受数据来源;另一个是变换模块,模块调用时传送的参数应同数据流图相对应,(2)输出

18、模块也有两部分组成,一部分是变换模块,将数据变换成输出的形式;另一部分是输出模块 上述设计过程由顶向下递归进行,直至达到系统的输入端或输出端(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图,任何情况下

19、都可使用变换分析方法设计软件结构,但如数据流具有明显的事务特点时(有一个明显的事务中心),以采用事务分析方法为宜。,(四)事务分析设计方法,事务分析设计方法步骤:,(1)在DFD上确定事务中心。(2)为DFD上的事务中心设计主模块,再为每一种类型的事务处理设计一个事务处理模块。(3)为每个事务处理模块设计下面的操作模块,再为操作模块设计细节模块。某些操作模块和细节模块可以被几个上一层模块共用。,事务型DFD的划分,T,事务中心,传入,变换,传出,接收部分,发送部分,a,事务型MSC的上层结构(1),事务控制,Get a,顶层,第一层,a,事务1,事务型MSC的上层结构(2),事务控制,事务分析

20、,发送,动作分支的典型结构,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)数据在源泉和吸收之间进行的处理称为数据变换(Trans

21、formation),着眼于数据流的模块分割方法,TR分割法 是按照各个不同的事务处理单位进行模块划分,把各种不同的输入处理事务(TR:Transaction),划分成各个不同的独立的模块。按照这种方式划分的模块,仍然是眼于数据流向的类型,可以更进一步按照STS分割法进行讨论。或者可以说,TR分割法可以作为研究STS分割法的前期准备。这种模块分割方法,又被称为水平分割法。,TR(Transaction)分割,共通处理功能分割,共通功能分割法,(如图4.2 的实例所示)是把按照水平分割法分割后的模块进行更进一步的功能划分,抽出共通的功能模块。例如:日期输入后的正确性检查、数据库访问出错处理等,这

22、种可以抽出的共通处理模块有很多。像这种抽出共通处理功能的分割法被称为垂直功能分割法。,着眼于程序结构、提高聚合降低偶合,功能内聚:实现一个完整的功能信息内聚:统一对特定数据集的存取 通信内聚:在相同数据上执行有序动作过程内聚:模块执行的若干动作之间有顺序关系时间内聚:模块内多个任务与时间有关逻辑内聚:模块内有多个相关功能,执行一系列相关的动作偶然内聚:一个模块执行多个完全互不相关的动作,非直接耦合:模块之间没有直接关系数据耦合:只有数据项的参数调用关系 数据结构耦合:有结构体的参数调用控制耦合:有控制信息的参数调用关系共通耦合:模块之间具有公共的存取空间(全局数据结构、共享的通信区)外部耦合:

23、模块之间具有公共的一般外部存取空间(全局简单变量)内容耦合:一个模块直接参考其他模块的内容,耦合度强弱的因素:,一模块对另一模块的引用一模块向另一模块传递的数据量一模块施加到另一模块的控制的数量模块间接口的复杂程度,回教寺院型(多层次)的模块控制结构,把模块影响区域限制在模块控制区域内,影响区域,控制区域,输入,输出,出错,出错,影响区域,控制区域,出错输出,输入,输出,控制区域:控制上层模块调用下层模块的范围影响区域:根据一个模块内设定的条件执行的操作所影响的范围,出错,图4.5 控制区域和影响区域,模块的接口评价 接口过于复杂或冗长,往往会影响系统的性能。在接口评价的阶段,应使得模块之间传

24、递的信息量减少到最小的程度。设计容易理解的功能模块 就是像“黑箱”一样处理一个功能单一和结果可预测的模块可以被看成是一个“黑箱”,不论内部处理细节如何,对于相同的输入数据,总能产生同样的结果。这样的模块我们认为是容易理解的模块,最理想的模块是具有功能聚合的独立性强的模块。通常在设计过程中,将模块的行数控制在50100行左右,模块划分的基本方法和注意事项,1水平分割与垂直分割2提高聚合降低偶合3回教寺院型的模块结构4把模块影响区域限制在模块控制区域内5模块的接口评价6容易理解的模块功能7一个模块50100条指令,2、系统内部设计的作业内容,子系统的内部结构/程序结构的设计 程序处理概要的记述 共

25、通处理功能的设计 共通表的设计 出错处理的设计,子系统的内部结构/程序结构的设计,进行开发软件系统的内部结构设计,按照模块划分的基本方法和注意事项进行程序内部模块划分,把分割之后的程序内部模块或子模块,按照一定的关联关系和层次结构描述成程序功能结构图。为了设计出具有充分的维护性和扩展性、独立性强的程序结构,我们常常使用复合设计或结构化设计的设计方法。其设计的关键在于以下2点:,以程序修改的影响度小、容易进行局部的维护为目的,设计出高聚合(信息内聚/功能内聚)低偶合(数据偶合)的程序结构。优化程序结构,使模块与子模块之间的接口更为简单。,程序处理概要的记述,对各个程序模块/子模块,按照IPO(输

26、入-处理-输出)的形式进行以下内容的描述。程序模块处理的概要说明 根据概要设计的子系统划分一览表的各个功能模块的概要,写出该程序模块的功能概要。程序模块使用的文件和数据库表等接口的说明 根据概要设计的子系统业务流程图,确认该程序模块要使用的输入输出文件和数据库表的名称,根据设计式样,文件和数据库表的描述可以使用图形或文字。,设计上的限制和制约条件 设计上有制约条件时,例如,使用规定的文件路径、窗体启动条件、数据登录和显示的最大记录条数等,要在适当的位置加以说明。处理流程及必要的特殊处理概要说明 程序功能处理概要主要描述该程序模块的主要处理功能,即该程序的主控制模块的功能和下一层模块的处理条件和

27、流程。,共通处理功能的设计,根据新系统的物理DFD和程序结构图,抽出共通处理功能模块,确定共通处理的功能(共通程序、共通处理内容、接口)。做成共通程序设计说明书。确定的共同处理程序也要在程序结构图中反映出来。,共通表的设计,抽出作成共通表的数据项目(系统全体的共通项目、依存于各种处理的从属项目、按照某种规定发生变化的项目)。对共通表的数据项目进行分类(按照从属关系、有无更新处理、是否为恢复对像、初期值设定方法等进行分类处理)。,确定各种表的格式(数据字段名称、类型、长度等),给出必要的补充说明,作出共通表的项目设计书。进一步研究和确认共通表的管理内容 确认有无需要进行编码设计的数据项目,追加和

28、修改编码体系一览表。,出错处理的设计,出错处理的体系化 共通性的出错处理模块 要进行错误类型划分 出错信息标准化 出错信息的显示处理,4.1.2 程序模块的详细设计,1、程序处理功能的描述 2、程序内部模块的设计 3、模块之间的接口描述,初期显示处理模块,初期处理主要有数据库连结、文件打开、画面窗体显示内容和工作变量的初期设定等内容。在画面窗体初期显示内容的设计时,首先要根据概要设计阶段的窗体设计式样,详细说明各个输入输出项目的显示内容和编辑方法。输入项目的初期值的设定时,要站在用户的立场多为用户使用该系统提供方便,减少不必要的输入操作而设定适当的初期值,要说明下拉式菜单的显示内容和初期显示值

29、,数据输入检查模块,为了保证进入开发系统的所有数据都是有效且正确的,我们必须对数据输入检查通常有单个项目检查、多个项目的关联检查、存在检查和个别项目的特别检查等处理,根据需要,可以把输入数据检查的设计说明作成“输入数据检查项目表”单个项目的单独检查 多个项目的关联检查 存在检查和特别检查,4.1.3 数据库的物理设计,确定数据库管理系统平台,即选定具体的DBMS;利用数据库系统提供的命令的语句,建立表、索引、触发器、存储过程、视图等;列出表与功能模块之间的关系矩阵图,便于进行详细设计和程序制造开发。,4.1.5 测试方针,在系统内部结构设计和程序功能模块设计等基本完成、进入制造、测试工程之前,

30、我们要开始着手制定开发系统各个阶段的测试方针和测试实施计划。,1、单元测试的测试方针,单元测试目的和测试内容 前提条件 作业体制(人员安排)测试计划作成 作业分工 质量目标 测试完成标准,程序编制人员(PG):,a)按照详细设计书作成PCLb)程序修改、疏通测试c)作成测试数据d)根据PCL实施测试,记录测试结果。,设计人员(SE):,a)对照详细设计书检查PCLb)针对测试中发生的设计问题,修改详细设计书c)验收单元测试结果d)收集测试问题管理票(B票),进行质量管理e)再次验收程序修改后的测试结果,2、组合测试的测试方针,组合测试的目的和测试内容(CCL表)组合测试内容有三个方面:一是数据

31、输入之后,按照正常的业务处理流程,输出正确的数据结果的测试,主要验证窗体的迁移、数据显示和报表打印、DB数据更新和文件输出结果、数据传输结果等是否正确。二是数据输入之后,在异常情况下的出错信息的显示以及出错处理的测试。三是设计一些特殊的输入数据或边界处理条件,进行边界值或极限值的测试,同时,还要对程序之间、外部数据传输过程中的接口进行测试。,前提条件(准备)作业体制(人员安排)测试计划作成 质量目标 测试完成标准,3、系统测试的测试方针,系统测试目的和测试内容 容量测试 负荷测试 性能测试 故障测试/恢复测试 可靠性测试 系统架构测试 安全性测试 维护测试,4、系统测试的准备工作,设置必要的物

32、理环境和模拟运行环境。根据前面设定的剪彩标准和系统测试方针,作出各种类型的测试方案。按照测试项目设计基准,以发现和排除系统、故障测试系统功能为目的设计出具体的测试项目。以设计出的测试项目为基础,确认和修改测试验证基准。按照各个测试项目,作出测试数据,并对测试数据的内容是否恰当进行判断。记述各个测试项目的确认内容(预期的结果),作出系统测试项目表(SCL)。,测试计划和单元测试,本章目标,计划测试过程制定单元测试说明书明确测试用例设计技术单元测试的测试手段,基本测试过程,基本测试过程原则:尽早测试、经常测试、充分测试。开发过程与测试过程:分析、测试、设计、测试、编码、测试。测试计划应该是按照开发

33、者的要求并用具体例子来描述一个测试计划的层次结构以及各个测试计划相联系的标准模版。,测试的五个问题,谁执行了测试?测试什么?什么时候测试?怎样测试?测试应进行到何种程度?,测试方案设计,良好的测试设计由以下的若干个方面组成:测试策略测试计划测试说明书测试规范这些方案适用于从单元测试到系统测试等各个级别的测试。测试设计需要根据软件说明书来进行。,单元测试 2-1,概况定义:检验程序最小单位有无错误。一般在编码之后,由开发人员完成。单元:软件开发中的最小的独立部分 C语言中的单元:函数或者是子过程 C+语言中的单元:类,单元测试 2-2,单元测试目前状况:实施效果非常好,但是实施阻力比较大(主要是

34、人员和管理因素),一般只在关键的程序单元中实施有比较系统的理论和方法,但也依赖于系统的特殊性和开发人员的经验有大量的辅助工具,开发人员也经常自己开发测试代码和测试工具主要使用白盒测试和静态分析,也使用黑盒测试,单元测试流程,管理流程主要指动态测试应用流程,针对测试目标,规定测试任务、资源分配、人员角色、进度安排等。,根据测试计划,设计测试用例,包括:测试步骤、测试场景、测试代码、测试数据(包括预期结果)。,根据测试计划,配置测试环境,并手动或者自动执行测试设计。,根据测试计划,忠实地记录测试执行的过程和结果。,分析测试记录,如果发现与预期结果不同,确定并重现缺陷。,检查测试设计是否全部执行完毕

35、,缺陷是否全部关闭。,记录、分发、评估、关闭缺陷报告。,分析测试过程和缺陷报告,评估测试质量和测试效果,给出是否通过测试的建议。,测试用例 2-1,测试用例是数据输入和期望结果组成的对。,测试用例 2-2,ANSI/IEEE829标准列出了测试用例应该包含在内的重要信息:标识符测试项输入说明输出说明环境要求特殊要求用例依赖性,单元测试说明书的组成,单元测试说明书由一系列单元测试用例组成。每个单元测试用例都应该包括四个基本要素(对照ANSI/IEEE标准):单元的初始状态说明单元的输入测试用例实际要测试的内容测试用例的预期结果,单元测试说明书(例)测试计划,编号 如:stb-tp0013标题 如

36、:文字排版功能.字间距.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日;编制/修改;

37、原因测试步骤 如:配置运行环境;输入测试数据;执行X功能/测试代码;观察/记录XX测试场景 如:在联网的环境下测试代码 如:stb-tp00021(位置)/stb-tp00035(位置)测试数据 如:输入数据(输入文件、文字描述);预期结果(性能、图片、文字描述),单元测试说明书(例)测试记录,编号 如:stb-tp00015标题 如:记录测试“文字排版功能.字间距.MayCourse”结果填写记录 如:2003年7月30日;填写;原因测试用例编号 如:stb-tp0015输出结果 如:图片、文字描述测试观察 符合/不符合期望结果,单元测试说明书(例)缺陷跟踪报告,编号 如:stb-tp000

38、16标题 如:文字排版功能.字间距.MayCourse计算错误版本号 如:V1.3执行状态 如:空白/草稿/提交/审批/分发/正在修改/修改完毕/正在确认/关闭修改记录 如:2003年7月31日;编制/修改;原因测试环境和版本号码、程序编写人员错误严重程度和优先级别错误详细描述重现步骤和方式、对应的测试记录编码附件建议修改方式修改内容、结果及修改人员签字/日期确认内容、结果及确认人员签字/日期,单元测试说明书(例)总结报告,编号 如:stb-tp00017标题 如:文字排版功能.字间距.MayCourse单元测试总结报告版本号 如:V1.5执行状态 如:已经提交修改记录 如:2003年8月1日

39、;编制/修改;原因测试计划编号计划执行情况缺陷统计(缺陷总数/未解决数目)及为解决缺陷列表后续处理措施是否通过单元测试,制定单元测试说明书步骤,包含一组单独的单元测试用例的单元测试说明书的设计过程:步骤 1 运行简单测试用例步骤 2 正面测试步骤 3 负面测试步骤 4 考虑特殊事项步骤 5 覆盖完成率测试步骤 6 完善说明书,进行相对完整测试,测试用例设计技术,测试用例设计技术可以大体分成两个主要类别:黑盒技术使用的是单元的接口和对功能的描述,而无需知道单元内部是如何构建的。白盒技术使用的是有关单元内部如何工作的信息。此外还有其他的技术,它们都不能归入上面的类别中,例如错误猜测。,黑盒测试测试

40、手段 2-1,根据说明书进行的测试测试用例是通过通读相关的说明书而设计得到的。每个测试用例都应该测试说明书的一条或多条陈述。等价划分基本做法是将要测试的软件的输入和输出分成若干部分,对于特定部分中的任意值,软件行为都是等价的。,黑盒测试测试手段 2-2,边界值分析它使用与等价划分相同的方法分析各个部分。但是,它假定错误最可能出现在各部分之间的边界处。状态变换测试当软件被设计成状态机或者软件实现的是以状态机为模型的需求的时候,状态变换测试特别有用。测试用例通过生成导致转变的事件来测试状态之间的转换。,白盒测试测试手段 2-1,分支测试测试用例被设计为检验对单元中的流分支或判定点的控制。通常来说它

41、的目的是要达到目标级别的判定覆盖率。条件测试条件测试的目标是设计测试用例以表明逻辑条件的单个组件和单个组件的组合是正确的。,白盒测试测试手段 2-2,数据定义 使用测试它将测试用例设计为对成对的数据定义和使用进行测试。设置数据项的值的地方就是数据定义,读取或使用数据的地方就是数据使用。次边界值测试很多情况下,各部分和它们的边界可以通过单元功能说明书来识别。但是,单元可能会有内部边界值,它只能通过结构说明书来识别。,错误猜测,错误猜测主要是凭经验,同时还需要诸如边界值分析等其他技术的一些辅助。凭借经验,测试设计者猜测特定类型的软件中可能出现的错误类型,并设计测试用例来找到它们。由有经验的工程师来进行错误猜测可能是最有效地设计能发现错误的测试的唯一方法。相反,任用不合适的人来进行错误猜测可能会浪费时间。,总结,良好的测试设计由若干个防范组成。在单元测试中,测试应设计为检验各个单元是否实现了该单元的设计说明书中的所有设计判定。单元测试说明书由一系列单元测试用例组成。测试用例设计技术可以大体分成黑盒和白盒两个主要类别。错误猜测主要凭借测试设计者的经验。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号