资源描述
例子例子n某装配厂有一座存放零件仓库,仓库中现有各种某装配厂有一座存放零件仓库,仓库中现有各种零件数量以及每种零件库存量临界值等数据统计零件数量以及每种零件库存量临界值等数据统计在库存清单主文件中。在库存清单主文件中。n当仓库中零件数量有改变时,应该及时修改库存当仓库中零件数量有改变时,应该及时修改库存清单主文件,假如哪种零件库存量少于它库存量清单主文件,假如哪种零件库存量少于它库存量临界值,则应该汇报给采购部门方便定货,要求临界值,则应该汇报给采购部门方便定货,要求天天向采购部门送一次定货汇报。天天向采购部门送一次定货汇报。第1页n装配厂使用一台微机处理更新库存清单主文件和装配厂使用一台微机处理更新库存清单主文件和产生定货汇报任务。零件库存量每一次变换称为产生定货汇报任务。零件库存量每一次变换称为一个事务,由仓库一个事务,由仓库CRTCRT终端终端输入到计算机中;输入到计算机中;n系统中库存清单程序负责对事务进行处理,更新系统中库存清单程序负责对事务进行处理,更新存放在存放在磁盘磁盘上库存清单主文件;上库存清单主文件;n必要定货信息写在必要定货信息写在磁带磁带上;上;n天天由汇报生成程序读一次磁带,生成并天天由汇报生成程序读一次磁带,生成并打印打印出出定货汇报;定货汇报;n 库存清单程序;库存清单程序;n 汇报生成程序。汇报生成程序。第2页第3页【例:问题陈说】【例:问题陈说】某家工厂采购部天天需要一张定货报表,报某家工厂采购部天天需要一张定货报表,报表按零件编号排序,表中列出全部需要再次定货表按零件编号排序,表中列出全部需要再次定货零件。对于每个需要再次定货零件应该列出下述零件。对于每个需要再次定货零件应该列出下述数据:零件编号,零件名称,定货数量,当前价数据:零件编号,零件名称,定货数量,当前价格,主要供给者,次要供给者。零件出库或入库格,主要供给者,次要供给者。零件出库或入库称为事务,经过称为事务,经过CRTCRT终端把事务汇报给定货系统。终端把事务汇报给定货系统。某种零件库存量少于库存量临界值时就要再次定某种零件库存量少于库存量临界值时就要再次定货。货。请给出该系统定货情况数据流图。请给出该系统定货情况数据流图。第4页【分析】【分析】第一步:第一步:n确定系统源点和终点确定系统源点和终点仓库管理员仓库管理员是数据源点是数据源点采购员采购员是数据终点是数据终点n处理处理本题应该完成本题应该完成定货系统定货系统这么一个功效这么一个功效第5页n数据流数据流事务事务需从仓库送到系统中,显然事务是一个数需从仓库送到系统中,显然事务是一个数据流;据流;系统要把系统要把定货报表定货报表送给采购部,定货报表也是送给采购部,定货报表也是一个数据流。一个数据流。n依据问题陈说,把整个数据处理过程看作一个加依据问题陈说,把整个数据处理过程看作一个加工,它输入数据和输出数据实际上反应了本系统工,它输入数据和输出数据实际上反应了本系统与外界环境接口。系统顶层数据流图以下所表示:与外界环境接口。系统顶层数据流图以下所表示:第6页任何系统基本模型都由若干个数据源点任何系统基本模型都由若干个数据源点任何系统基本模型都由若干个数据源点任何系统基本模型都由若干个数据源点/终点以及终点以及终点以及终点以及一个处理组成,这个处理就代表了系统对数据加工一个处理组成,这个处理就代表了系统对数据加工一个处理组成,这个处理就代表了系统对数据加工一个处理组成,这个处理就代表了系统对数据加工变换基本功效。变换基本功效。变换基本功效。变换基本功效。第7页第二步:把基本系统模型细化,描绘系统主要功效第二步:把基本系统模型细化,描绘系统主要功效n将数据处理过程将数据处理过程定货系统进行功效分解成定货系统进行功效分解成处理事处理事务务和和产生报表产生报表两部分两部分n考虑相关数据存放问题,题中包括到存放信息有:考虑相关数据存放问题,题中包括到存放信息有:库存清单库存清单、定货信息定货信息处理事务需要处理事务需要“库存清单库存清单”数据数据产生报表和处理事务在不一样时间进行,所以需要存放产生报表和处理事务在不一样时间进行,所以需要存放“定货信息定货信息”第8页第9页第三步:依据需要,对处理功效进行分解第三步:依据需要,对处理功效进行分解n将处理事务深入分解为将处理事务深入分解为接收事务接收事务、更新库存清单更新库存清单、处理定货处理定货三部分三部分n画出深入分解后数据流图画出深入分解后数据流图第10页第11页依据以下描述,画出学生申请依据以下描述,画出学生申请IC借书卡第一层借书卡第一层数据流图。学生入学后到图书馆申请数据流图。学生入学后到图书馆申请IC借书卡,借书卡,图书馆管理人员依据图书馆管理人员依据IC借书卡库存情况分析是否借书卡库存情况分析是否需要购置新需要购置新IC借书卡,如需购置,则向借书卡,如需购置,则向IC借书借书卡提供商购置。各种资金往来经过学校会计科卡提供商购置。各种资金往来经过学校会计科办理。办理。第12页欲开发一个银行活期存取款业务处理系统:储户将填欲开发一个银行活期存取款业务处理系统:储户将填好存好存/取款单和存折交给银行工作人员,然后由系统作以取款单和存折交给银行工作人员,然后由系统作以下处理;下处理;(1)业务分类处理:系统首先依据储户所填存业务分类处理:系统首先依据储户所填存/取款单,确取款单,确定此次业务性质,并将存定此次业务性质,并将存/取款单和存折交下一步处理;取款单和存折交下一步处理;(2)存款处理:系统将存款单上存款金额分别统计在存折存款处理:系统将存款单上存款金额分别统计在存折和帐目文件中,并将现金存入现金库;最终将存折还给储户;和帐目文件中,并将现金存入现金库;最终将存折还给储户;(3)取款处理:系统将取款单上取款金额分别统计在存折取款处理:系统将取款单上取款金额分别统计在存折和帐目文件中,并从现金库提取现金;最终将现金和存折还和帐目文件中,并从现金库提取现金;最终将现金和存折还给储户。给储户。该系统总体图以下列图所表示,请画出该系统零级图。该系统总体图以下列图所表示,请画出该系统零级图。第13页第14页某个学生成绩管理系统部分功效以下:某个学生成绩管理系统部分功效以下:A.基本信息管理:教务管理人员输入或修改学期教学执行计基本信息管理:教务管理人员输入或修改学期教学执行计划、学生名单和教师名单;划、学生名单和教师名单;B.学生选课:学生依据教学执行计划进行选课;学生选课:学生依据教学执行计划进行选课;C.分配任课教师:教务管理人员为符合开课条件课程分配分配任课教师:教务管理人员为符合开课条件课程分配教师,并打印任课通知单给教师;教师,并打印任课通知单给教师;D.成绩管理:每门课程教师在考试评分结束后将考试成绩成绩管理:每门课程教师在考试评分结束后将考试成绩交给教务管理人员,教务管理人员输入、维护成绩,系统可交给教务管理人员,教务管理人员输入、维护成绩,系统可生成成绩单生成成绩单(发给学生发给学生)、成绩统计分析表、成绩统计分析表(发给教务管理人员发给教务管理人员)。依据以上描述依据以上描述,完成以下题目:完成以下题目:(1)请用数据流图描绘本系统功效。请用数据流图描绘本系统功效。(2)请用实体请用实体-联络图描绘本系统功效。联络图描绘本系统功效。第15页IPO1学生信息IPO2学生选课IPO3成绩查询IPO4教师信息IPO6分配教师IPO5成绩录入IPO7教学计划管理第16页例:一个应用软件系统开发成本需例:一个应用软件系统开发成本需50005000元,系元,系统投入运行后每年可节约统投入运行后每年可节约25002500元,当年利率元,当年利率为为1212时,计算该软件系统投资回收期、纯时,计算该软件系统投资回收期、纯收入和投资回收率。收入和投资回收率。年年 未来值未来值 (1+i1+i)现在值现在值 累计现在值累计现在值1 2500 1.12 2232.14 2232.141 2500 1.12 2232.14 2232.142 2500 1.25 1992.98 4225.12 2 2500 1.25 1992.98 4225.12 3 2500 1.40 1779.45 6004.57 3 2500 1.40 1779.45 6004.57 4 2500 1.57 1588.80 7593.37 4 2500 1.57 1588.80 7593.37 5 2500 1.76 1418.57 9011.945 2500 1.76 1418.57 9011.94 9011.94-5000=4011.949011.94-5000=4011.94(元)(元)2+(5000-4225.12)/1779.45=2.442+(5000-4225.12)/1779.45=2.44(年)(年)本题投资回收率为本题投资回收率为41414242。第17页 例:某校教学管理例:某校教学管理ERER图图 对象对象教师属性教师属性学生属性学生属性课程属性课程属性联络属性联络属性关系关系第18页n下面是一个人们打电话时系统状态图。(见书下面是一个人们打电话时系统状态图。(见书6767页)。页)。图中表明,没有些人打电图中表明,没有些人打电图中表明,没有些人打电图中表明,没有些人打电话时电话处于闲置状态;话时电话处于闲置状态;话时电话处于闲置状态;话时电话处于闲置状态;有些人拿起听筒则进入拨有些人拿起听筒则进入拨有些人拿起听筒则进入拨有些人拿起听筒则进入拨号音状态,抵达这个状态号音状态,抵达这个状态号音状态,抵达这个状态号音状态,抵达这个状态后,电话行为是响起拨号后,电话行为是响起拨号后,电话行为是响起拨号后,电话行为是响起拨号音并计时;这时假如拿起音并计时;这时假如拿起音并计时;这时假如拿起音并计时;这时假如拿起听筒人改变主意不想打了,听筒人改变主意不想打了,听筒人改变主意不想打了,听筒人改变主意不想打了,他把听筒放下他把听筒放下他把听筒放下他把听筒放下(挂断挂断挂断挂断),电,电,电,电话重又回到闲置状态;假话重又回到闲置状态;假话重又回到闲置状态;假话重又回到闲置状态;假如拿起听筒很长时间不拨如拿起听筒很长时间不拨如拿起听筒很长时间不拨如拿起听筒很长时间不拨号号号号(超时超时超时超时),则进入超时状,则进入超时状,则进入超时状,则进入超时状态;态;态;态;。第19页n比如,描绘一家计算机企业全部产品数据结构能够用图中比如,描绘一家计算机企业全部产品数据结构能够用图中层次方框图表示。层次方框图表示。第20页n例:用例:用WarnierWarnier图描绘一类软件产品图描绘一类软件产品第21页图图 正文加工系统层次图正文加工系统层次图层次图层次图第22页图图 带编号层次图带编号层次图(H图图)n和和H图中每个图中每个方框相对应,方框相对应,应该有一张应该有一张IPO图描绘这图描绘这个方框代表个方框代表模块处理过模块处理过程。模块在程。模块在H图中编号便图中编号便于追踪了解于追踪了解这个模块在这个模块在软件结构中软件结构中位置。位置。HIPO图图第23页图图 结构图例子结构图例子产生最正确解普通结构产生最正确解普通结构结构图结构图第24页1.1.变换分析例子:汽车数字仪表板设计。变换分析例子:汽车数字仪表板设计。(教材教材P106)P106)假设仪表板将完成下述功效:假设仪表板将完成下述功效:(1)(1)经过模数转换实现传感器和微处理机接口;经过模数转换实现传感器和微处理机接口;(2)(2)在发光二极管面板上显示数据;在发光二极管面板上显示数据;(3)(3)指示每小时英里数指示每小时英里数(mph)(mph),行驶里程,每加仑油行驶英里数,行驶里程,每加仑油行驶英里数(mpg)(mpg)等等;等等;(4)(4)指示加速或减速;指示加速或减速;(5)(5)超速警告:假如车速超出超速警告:假如车速超出5555英里英里/小时,则发出超速警告铃声。小时,则发出超速警告铃声。n在软件需求分析阶段应该对上述每条要求以及系统其它特在软件需求分析阶段应该对上述每条要求以及系统其它特点进行全方面分析评价,建立起必要文档资料,尤其是数点进行全方面分析评价,建立起必要文档资料,尤其是数据流图。据流图。第25页第26页第27页第一级分解第一级分解第28页第29页第30页第31页精化精化第32页n例题:例题:某程序某程序流程图如右图流程图如右图所表示,请分所表示,请分别用别用N-S图和图和PAD图表示。图表示。第33页aUNTILx8jbiceWHILEx5dx1x2x3x4fghUNTILx7x6xi=PAD图:图:第34页x8ajx1bTFfx6TFx7ighCASE xix2x4x3x5cdeN-S图:图:第35页判定表例题:判定表例题:n假设某航空企业要求,乘客能够无偿托运假设某航空企业要求,乘客能够无偿托运重量不超出重量不超出30kg行李。行李。n当行李重量超出当行李重量超出30kg时,对头等舱国内乘时,对头等舱国内乘客超重部分每千克收费客超重部分每千克收费4元,对其它舱国内元,对其它舱国内乘客超重部分每千克收费乘客超重部分每千克收费6元。元。n对外国乘客超重部分每千克收费比国内乘对外国乘客超重部分每千克收费比国内乘客多一倍,对残疾乘客超重部分每千克收客多一倍,对残疾乘客超重部分每千克收费比正常乘客少二分之一。费比正常乘客少二分之一。第36页例:用判定表表示计算行李费算法例:用判定表表示计算行李费算法例:用判定表表示计算行李费算法例:用判定表表示计算行李费算法例:用判定表表示例:用判定表表示计计算行李算行李费费算法算法例:用判定表表示计算行李费算法例:用判定表表示计算行李费算法第37页图图 用判定树表示计算行李费算法用判定树表示计算行李费算法判定树判定树第38页例题:例题:n某某校校制制订订了了教教师师讲讲课课课课时时津津贴贴标标准准。对对于于各各种种性性质质讲讲座座,不不论论教教师师是是什什么么职职称称,每每课时津贴费一律是课时津贴费一律是50元;元;n对对于于普普通通讲讲课课,则则依依据据教教师师职职称称来来决决定定每每课课时时津津贴贴费费:教教授授30元元,副副教教授授25元元,讲讲师师20元,助教元,助教15元。元。n请分别用判定表和判定树表示津贴标准。请分别用判定表和判定树表示津贴标准。第39页1520253050FFFFT讲讲座座TFFF助教助教FTFF讲师讲师FFTF副教授副教授FFFT教授教授54321判定表:判定表:第40页课时津贴课时津贴普通讲课普通讲课讲座讲座教授教授副教授副教授讲师讲师助教助教3025201550判定树:判定树:第41页练习题练习题1:习题:习题6.3n画出以下伪码程序程序流程图和盒图:画出以下伪码程序程序流程图和盒图:STARTIFpTHENWHILEqDOfENDDOELSEBLOCKgnENDBLOCKENDIFSTOP第42页第43页Jackson方法例:方法例:n一个正文文件由若干个统计组成,每个统一个正文文件由若干个统计组成,每个统计是一个字符串。计是一个字符串。n要求统计每个统计中空格字符个数,以及要求统计每个统计中空格字符个数,以及文件中空格字符总个数。文件中空格字符总个数。n要求输出数据格式是,每复制一行输入字要求输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中空符串之后,另起一行印出这个字符串中空格数,最终印出文件中空格总个数。格数,最终印出文件中空格总个数。第44页(1)用)用Jackson图描绘输入、输出数据结构图描绘输入、输出数据结构输入数据格式为:输入数据格式为:若干统计若干统计组成文件组成文件若干字符若干字符组成一条统计组成一条统计字符是由空格与非空格两类元素组成字符是由空格与非空格两类元素组成输出数据格式为:输出数据格式为:一行字符串一行字符串本行字符串中空格数本行字符串中空格数文件中空格总数文件中空格总数第45页(1)用用Jackson图描绘输入输出数据结构。图描绘输入输出数据结构。设计步骤以下:设计步骤以下:第46页(2)分析确定在输入数据结构和输出数据结构分析确定在输入数据结构和输出数据结构中有对应关系数据单元。中有对应关系数据单元。第47页(3)从数据结构图导出程序结构图。从数据结构图导出程序结构图。第48页(4)列出全部操作和条件,而且把它们分配到程序结构图列出全部操作和条件,而且把它们分配到程序结构图适当位置。适当位置。(1)停顿)停顿(2)打开文件)打开文件(3)关闭文件)关闭文件(4)印出字符串)印出字符串(5)印出空格数目)印出空格数目(6)印出空格总数)印出空格总数(7)sum:=sum+1(8)totalsum:=totalsum+sum(9)读入字符串)读入字符串(10)sum:=0(11)totalsum:=0(12)pointer:=1(13)pointer:=pointer+1I(1)文件结束)文件结束I(2)字符串结束)字符串结束S(3)字符是空格)字符是空格第49页(4)列出全部操列出全部操作和条件,作和条件,而且把它们而且把它们分配到程序分配到程序结构图适当结构图适当位置。位置。(5)用伪码表示用伪码表示程序处理过程序处理过程。程。第50页流图表示:流图表示:n结点:结点:用圆表示,用圆表示,一个圆代表一条或一个圆代表一条或多条语句。多条语句。n边:边:箭头线称为边,箭头线称为边,代表控制流。在流代表控制流。在流图中一条边必须终图中一条边必须终止于一个结点,即止于一个结点,即使这个结点并不代使这个结点并不代表任何语句。表任何语句。n区域:区域:由边和结点由边和结点围成面积称为区域,围成面积称为区域,包含图外部未被围包含图外部未被围起来区域。起来区域。第51页映射方法:映射方法:n任何方法表示过程设计结果,都能够翻译成流图。任何方法表示过程设计结果,都能够翻译成流图。n对于次序结构,一个次序处理序列和下一个选择对于次序结构,一个次序处理序列和下一个选择或循环开始语句,能够映射成流图中一个结点。或循环开始语句,能够映射成流图中一个结点。第52页n对于选择结构,开始语句映射成一个结点;两条对于选择结构,开始语句映射成一个结点;两条分支最少各映射成一个结点;结束映射成一个结分支最少各映射成一个结点;结束映射成一个结点。点。第53页n对于循环结构,开始和结束语句各映射成对于循环结构,开始和结束语句各映射成一个结点。一个结点。第54页第55页nV(G)=区域数区域数=4nV(G)=E-N+2=11-9+2=4nV(G)=P+1=3+1=4第56页例:例:第57页逻辑覆盖逻辑覆盖第58页1 1、语句覆盖语句覆盖n选择足够多测试数据,选择足够多测试数据,最少执行程序中全部语句一次。最少执行程序中全部语句一次。在该例子中,只要设计在该例子中,只要设计能经过路径能经过路径SacbdRSacbdR测试测试用例就覆盖了全部语句用例就覆盖了全部语句。所以可选择测试用比如:。所以可选择测试用比如:【A=2 A=2,B=0B=0,X=3 X=3】第59页2.2.判定覆盖判定覆盖(分支覆盖分支覆盖)n程序中每个语句最少执程序中每个语句最少执行一次,而且每个判定行一次,而且每个判定每个可能结果都最少执行一次。每个可能结果都最少执行一次。全部判定分支:全部判定分支:(1)a(1)a点判定为点判定为T T (2)a(2)a点判定为点判定为F F(3)b(3)b点判定为点判定为T T (4)b(4)b点判定为点判定为FF第60页2.2.判定覆盖判定覆盖(分支覆盖分支覆盖)测试用例:测试用例:.满足满足(1)(4)(1)(4)(A=3A=3,B=0B=0,X=1X=1)覆盖覆盖SacbR SacbR .满足满足(2)(3)(2)(3)(A=2A=2,B=1B=1,X=1X=1)覆盖覆盖SabdRSabdR第61页2.2.判定覆盖判定覆盖(分支覆盖分支覆盖)或者:或者:.满足满足(1)(3)(1)(3)(A (A2 2,B B0 0,X X3)3)覆盖覆盖sacbdR sacbdR .满足满足(2)(4)(2)(4)(A (A3 3,B B1 1,X X1)1)覆盖覆盖sabRsabRn特点:比语句覆盖强,但对特点:比语句覆盖强,但对程序逻辑覆盖程度仍不高。程序逻辑覆盖程度仍不高。第62页3.3.条件覆盖条件覆盖n不但每个语句最少执行一次,不但每个语句最少执行一次,而且使判定表示式中每个条而且使判定表示式中每个条件都取到各种可能结果。件都取到各种可能结果。n为到达条件覆盖标准,应选为到达条件覆盖标准,应选取测试数据,使得取测试数据,使得:在在a a点判定有各种结果出现:点判定有各种结果出现:A A1 1 A1A1 B B0 0 B0B0在在b b点判定有各种结果出现:点判定有各种结果出现:A A2 2 A2A2 X X1 1 X1X1第63页3.3.条件覆盖条件覆盖n所以,可选取测试用例:所以,可选取测试用例:满足满足【A=2A=2,B=0B=0,X=4X=4】(满足满足A A1 1,B B0 0,A A2 2,X X1 1条件,条件,执行路径执行路径SacbdR)SacbdR)满足满足【A=1A=1,B=1B=1,X=1X=1】(满足满足A1A1,B0,A2B0,A2,X1X1条件,执行路径条件,执行路径SabR)SabR)第64页3.3.条件覆盖条件覆盖n或者,可选取测试用例:或者,可选取测试用例:满足满足【A=2A=2,B=0B=0,X=1X=1】(满足满足A A1 1,B B0 0,A A2 2,X1X1条件,条件,执行路径执行路径SacbdR)SacbdR)满足满足【A=1A=1,B=1B=1,X=2X=2】(满足满足A1A1,B0,B0,A2A2,X X1 1条件,执行路径条件,执行路径SabdR)SabdR)第65页4.4.判定判定/条件覆盖条件覆盖n选取足够多测试数据,使得判定表示式中每个条件都取到选取足够多测试数据,使得判定表示式中每个条件都取到各种可能值,而且每个判定表示式各种可能值,而且每个判定表示式都取到各种可能结果。都取到各种可能结果。n测试用例:测试用例:.满足条件满足条件和判定和判定A A2 2,B B0 0,X X4 4 覆盖覆盖SacbdR SacbdR .满足条件满足条件和判定和判定A A1 1,B B1 1,X X1 1 覆盖覆盖SabR SabR n特点:有时判定特点:有时判定/条件覆盖也并不比条件覆盖更强。条件覆盖也并不比条件覆盖更强。第66页n在例子中,对于在例子中,对于a a、b b点判定共有八种可能条件组合,它们点判定共有八种可能条件组合,它们是:是:A A1 1,B B00 A A1 1,B0B0 A1 A1,B B00 A1 A1,B0B0 A A2 2,X X11 A A2 2,X1X1 A2 A2,X X1 1 A2 A2,X1X1条件组合覆盖条件组合覆盖第67页n所以,可选取下面四组测试用例,使上面列出八种条件组所以,可选取下面四组测试用例,使上面列出八种条件组合每种最少出现一次:合每种最少出现一次:.A=2.A=2,B=0B=0,X=4X=4(针对针对1 1、5 5两种组合,执行路径两种组合,执行路径SacbdR)SacbdR).A=2.A=2,B=1B=1,X=1X=1(针对针对2 2、6 6两种组合,执行路径两种组合,执行路径SabdR)SabdR).A=1.A=1,B=0B=0,X=2X=2(针对针对3 3、7 7两种组合,执行路径两种组合,执行路径SabdR)SabdR).A=1.A=1,B=1B=1,X=1X=1(针对针对4 4、8 8两种组合,执行路径两种组合,执行路径SabR)SabR)第68页测试用例:【测试用例:【A=2A=2,B=0B=0,X=4X=4】执行路径:执行路径:SacbdRSacbdR点覆盖点覆盖第69页n为使程序执行路径经过程序图边覆盖为使程序执行路径经过程序图边覆盖(1,2,3,4,5,6,7)(1,2,3,4,5,6,7),可使用测试用例:可使用测试用例:【A=3A=3,B=0B=0,X=1X=1】执行路径:执行路径:1-4-5-31-4-5-3【A=2A=2,B=1B=1,X=1X=1】执行路径:执行路径:1-2-6-71-2-6-7第70页8.8.路径覆盖路径覆盖n选取足够多测试数据,使程序每条可能路径都选取足够多测试数据,使程序每条可能路径都最少执行一次最少执行一次(假如程序图中有环,则要求每假如程序图中有环,则要求每个环最少经过一次个环最少经过一次)。n例中共有四条可能执行路径:例中共有四条可能执行路径:n1-2-31-2-3;1-2-6-71-2-6-7;n1-4-5-31-4-5-3;1-4-5-6-71-4-5-6-7。第71页为满足路径覆盖,可使用测试用例:为满足路径覆盖,可使用测试用例:【A=1A=1,B=1B=1,X=1X=1】执行路径:执行路径:1-2-31-2-3【A=1A=1,B=1B=1,X=2X=2】执行路径:执行路径:1-2-6-71-2-6-7【A=3A=3,B=0B=0,X=1X=1】执行路径:执行路径:1-4-5-31-4-5-3【A=2A=2,B=0B=0,X=4X=4】执行路径:执行路径:1-4-5-6-71-4-5-6-7第72页n下面用等价划分法设计一个简单程序测试方案下面用等价划分法设计一个简单程序测试方案(实实例研究例研究):某一某一8 8位计算机,其十六进制常数定义为:以位计算机,其十六进制常数定义为:以0 x0 x或或0X0X开头数是十六进制整数,其值范围是开头数是十六进制整数,其值范围是-7f-7f至至7f7f(大小写字母不加区分),如(大小写字母不加区分),如0 x130 x13,0X6A0X6A,-0 x3c 0 x3c。第73页第一步:建立等价类表第一步:建立等价类表输入条件输入条件有效等价类有效等价类无效等价类无效等价类十六进制整十六进制整数数n1、0 x或0X开头1-2位数字串nn2、以-0 x开头 1-2位数字串nn3、在-7f至7f之间 n4、非0 x或非-开头串 5 5、含有非数字且、含有非数字且(a,b,c,d,e,f)(a,b,c,d,e,f)以外字符以外字符 6 6、多于、多于5 5个字符个字符 n7、-后跟非0多位串 8 8、-0-0后跟数字串后跟数字串 9 9、-后多于后多于3 3个数字个数字 1010、小于、小于-7f-7f 1111、大于、大于 7f 7f 第74页第二步:为有效等价类设计测试用例第二步:为有效等价类设计测试用例测试用例测试用例期望结果期望结果覆盖范围覆盖范围0 x230 x23显示有效输入显示有效输入1 1,3 3-0 x15-0 x15显示有效输入显示有效输入2 2,3 3第75页第三步:为无效等价类最少设计一个测试用例第三步:为无效等价类最少设计一个测试用例测试用例测试用例期望结果期望结果覆盖范围覆盖范围2 2显示无效输入显示无效输入4G12G12显示无效输入显示无效输入5123311123311显示无效输入显示无效输入6-1012-1012显示无效输入显示无效输入7-011-011显示无效输入显示无效输入8-0134-0134显示无效输入显示无效输入9-0 x777-0 x777显示无效输入显示无效输入100 x870 x87显示无效输入显示无效输入11第76页边界值分析边界值分析n例:例:计计算机算机输输出整数范出整数范围围在在-32768-32767之之间间,若,若我我们们要要测试测试机器所能表示整数机器所能表示整数边边界情况,界情况,则则有以下有以下测试测试方案和方案和输输出出结结果:果:1、输输入入-32769,输输出出“无效无效输输入入”2、输输入入-32768,输输出出-327683、输输入入-32767,输输出出-327674、输输入入32766,输输出出327665、输输入入32767,输输出出327676、输输入入32678,输输出出“无效无效输输入入”第77页nGanttGantt(甘特)图(甘特)图n假设有一座陈旧矩形木板房需要重新油漆。这项假设有一座陈旧矩形木板房需要重新油漆。这项工作必须分工作必须分3 3步完成:首先刮掉旧漆,然后刷上新步完成:首先刮掉旧漆,然后刷上新漆,最终去除溅在窗户上油漆。假设一共分配了漆,最终去除溅在窗户上油漆。假设一共分配了1515名工人去完成这项工作,然而工具却有限:只名工人去完成这项工作,然而工具却有限:只有有5 5把刮旧漆用刮板,把刮旧漆用刮板,5 5把刷漆用刷子,把刷漆用刷子,5 5把去除溅把去除溅在窗户上油漆用小刮刀。怎样安排才能使工作进在窗户上油漆用小刮刀。怎样安排才能使工作进行得更有效呢?行得更有效呢?第78页n要提升效率,应该采取要提升效率,应该采取“流水作业法流水作业法”,即首先,即首先由由5 5名工人刮板刮掉第名工人刮板刮掉第1 1面墙上旧漆,当第面墙上旧漆,当第1 1面墙刮面墙刮净后,另外净后,另外5 5名工人马上用刷子给这面墙刷新漆名工人马上用刷子给这面墙刷新漆(与此同时拿刮板(与此同时拿刮板5 5名工人转去刮第名工人转去刮第2 2面墙上旧漆)。面墙上旧漆)。n一旦刮漆工人转到第一旦刮漆工人转到第3 3面墙而且刷新漆工人转到第面墙而且刷新漆工人转到第2 2面墙以后,余下面墙以后,余下5 5名工人马上拿起刮刀去去除溅名工人马上拿起刮刀去去除溅在第在第1 1面墙窗户上油漆,面墙窗户上油漆,。这么安排使每个工。这么安排使每个工人都有活干,所以在较短时间内完成任务。人都有活干,所以在较短时间内完成任务。第79页n表表13.5 13.5 各道工序预计需要用时间(小时)各道工序预计需要用时间(小时)工序工序墙壁墙壁刮旧漆刮旧漆刷新漆刷新漆清理清理1或或32312或或4462图图13.1 13.1 旧木板房刷漆工程旧木板房刷漆工程GanttGantt图图第80页工程网络工程网络n在工程网络中用箭头表示作业在工程网络中用箭头表示作业(比如,刮旧漆,刷比如,刮旧漆,刷新漆,清理等新漆,清理等),用圆圈表示事件,用圆圈表示事件(一项作业开始一项作业开始或结束或结束)。n注意,事件仅仅是能够明确定义时间点,并不消注意,事件仅仅是能够明确定义时间点,并不消耗时间和资源。作业通常既消耗资源又需要连续耗时间和资源。作业通常既消耗资源又需要连续一定时间。一定时间。n用开始事件和结束事件编号标识一个作业,所以用开始事件和结束事件编号标识一个作业,所以“刮第刮第1 1面墙上旧漆面墙上旧漆”是作业是作业1-21-2。第81页n图图13.213.2是旧木板房刷漆工程工程网络。是旧木板房刷漆工程工程网络。图图13.2 旧木板房刷漆工程工程网络旧木板房刷漆工程工程网络第82页 图图13.3 13.3 旧木板房刷漆工程完整工程网络旧木板房刷漆工程完整工程网络第83页作作业业LETLET(结结束)束)EETEET(开始)(开始)n连续时间机机动时间动时间2-42-46 62 23 31 13-53-511116 62 23 34-74-718186 61 111115-65-612128 80 04 45-85-815158 84 43 36-76-7181812120 06 67-97-9202012122 26 68-98-9202015150 05 59-109-10212115151 15 5n表表13.6 13.6 旧木板房刷漆网络中机动时间(小时)旧木板房刷漆网络中机动时间(小时)第84页图图13.4 13.4 旧木板房刷漆工程改进旧木板房刷漆工程改进GanttGantt图之一图之一第85页
展开阅读全文