软件工程5ppt课件

上传人:cl****1 文档编号:569846667 上传时间:2024-07-31 格式:PPT 页数:99 大小:576KB
返回 下载 相关 举报
软件工程5ppt课件_第1页
第1页 / 共99页
软件工程5ppt课件_第2页
第2页 / 共99页
软件工程5ppt课件_第3页
第3页 / 共99页
软件工程5ppt课件_第4页
第4页 / 共99页
软件工程5ppt课件_第5页
第5页 / 共99页
点击查看更多>>
资源描述

《软件工程5ppt课件》由会员分享,可在线阅读,更多相关《软件工程5ppt课件(99页珍藏版)》请在金锄头文库上搜索。

1、软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹第第5 5章章 结构化实现结构化实现5.1 5.1 编码编码 5.2 5.2 软件测试基础软件测试基础 5.3 5.3 白盒测试技术白盒测试技术5.4 5.4 黑盒测试技术黑盒测试技术5.5 5.5 软件测试过程及策略软件测试过程及策略5.6 5.6 调试调试5.7 5.7 软件可靠性软件可靠性 瀑陡项宗碌膊菩澜改廷僳彦务胞推庆堕吭胳缩吓蝴岿瑚涟逞蹿岿嗡鸣孝鸳软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件

2、工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹5.1.1 5.1.1 选择程序设计语言须考虑的因素选择程序设计语言须考虑的因素l l用高级语言写的程序容易阅读、测试、调试、维护用高级语言写的程序容易阅读、测试、调试、维护5.1.2 5.1.2 编程风格编程风格 l l可读性、可理解性最重要可读性、可理解性最重要5.1.3 5.1.3 程序效率程序效率 l l占用处理机的时间和存储器的容量占用处理机的时间和存储器的容量珊彪大辞孙妇倔碱签胖姬嗽刻翔肩抽虏辑酝性册泻咖启崔藉昧沃仆枯沉躇软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论

3、教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹 (1 1)系统用户要求;)系统用户要求; (2 2)可以使用的编译程序;)可以使用的编译程序; (3 3)工程规模;)工程规模; (4 4)程序员的知识;)程序员的知识; (5 5)软件可移植性要求)软件可移植性要求 (6 6)软件的应用领域)软件的应用领域 嗡巡挪原积泌谷犊郁舌缆滑羚剖舶洛润镍古进痛料旬蒋绩未糖牌躲坞商铂软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院

4、信息科学与工程学院 卢卢 莹莹 (1)(1)源程序文档化:源程序文档化: 恰当的标识符、适当的注释、良好的视觉组织。恰当的标识符、适当的注释、良好的视觉组织。 (2)(2)数据说明:数据说明: 次序规范;对复杂数据结构加注释。次序规范;对复杂数据结构加注释。 (3)(3)语句结构:语句结构:每个语句简单而直接。每个语句简单而直接。 (4)(4)输入和输出:输入和输出: 输入的检查;输入项组合的合法性检查;输入的检查;输入项组合的合法性检查; 数据的简单格式和结束标记;交互时的提示。数据的简单格式和结束标记;交互时的提示。拈懊佣诚赔粘造换燎叠扛安江弦稍蓟犊吱蝶酣赘盛昧寐镣镜涧毯晤遍抡摇软件工程5

5、ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹 l l效率是性能指标,在需求分析阶段给出目标值效率是性能指标,在需求分析阶段给出目标值 l l不要牺牲程序的清晰性和可读性来提高效率不要牺牲程序的清晰性和可读性来提高效率 l l要靠良好的设计来提高效率要靠良好的设计来提高效率枯必殉堤郸碍取烃缮嘲法蜘倾季障壬擂瑞剪欧锦埠藏疏搐矗裸丫塌赚语呸软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常

6、州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(1 1)程序的运行效率:)程序的运行效率:l l详细设计阶段确定的详细设计阶段确定的算法算法是影响程序效率的决定因素。是影响程序效率的决定因素。l l详细设计向程序代码转换时的指导原则:详细设计向程序代码转换时的指导原则:化简算术和逻辑表达式;化简算术和逻辑表达式;循环嵌套中的语句尽量少;循环嵌套中的语句尽量少;数据结构尽量简单;数据结构尽量简单; 使用快速的算术运算;使用快速的算术运算;少用混合数据类型;少用混合数据类型; 用优化的编译程序。用优化的编译程序。林旺狂髓择押扳阿闭孵举肘呀堵悠鞠厩严忆抗铰篡艺箭正晨绍伙趣川死倚软件工程5pp

7、t课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(2 2)存储器效率:)存储器效率:l l大型机:大型机:考虑操作系统页式调度的特点。考虑操作系统页式调度的特点。l l微型机:微型机:采用有紧缩存储器特性的编译程序。采用有紧缩存储器特性的编译程序。(3 3)输入)输入/ /输出效率:输出效率:l l设置缓冲,减少通信开销设置缓冲,减少通信开销l l辅存的辅存的I/OI/O:简单的存取方法,成块传送:简单的存取方法,成块传送睦载乙毒幅脾昧泻装丽迹义叠禹墙啤泌从摄灯虚碘澈胶葛

8、承扎吠掳买陕腆软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹5.2.1 5.2.1 软件测试概述软件测试概述5.2.2 5.2.2 软件测试准则软件测试准则 5.2.3 5.2.3 常用的测试方法常用的测试方法5.2.4 5.2.4 程序的环路复杂度程序的环路复杂度 菊膨够然玻秤影蜀邵晴甫骋儡参构翁埠窖臀兵闺卖肄冉内福吸式漫霖府彪软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大

9、学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹1.1.软件测试的定义:软件测试的定义: 根据软件开发各阶段的规格说明和程序的内部结构根据软件开发各阶段的规格说明和程序的内部结构 而设计一批而设计一批测试用例测试用例,并利用这些测试用例去,并利用这些测试用例去运运 行程序行程序,以,以发现设计和程序错误发现设计和程序错误的过程。的过程。 测试用例(测试方案):测试用例(测试方案):输入数据及预期输出结果输入数据及预期输出结果很泌循幢沁纳炔书辫周辨台龋辨彼泰瓦啥服媚氓哩露袒洁铺非鸵云阻衬淡软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概

10、论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹2 2软件测试过程:软件测试过程: 软件开发过程是一个自顶向下、逐步细化的过程;软件开发过程是一个自顶向下、逐步细化的过程; 而测试过程则是自底向上、逐步集成的过程。低一级而测试过程则是自底向上、逐步集成的过程。低一级 测试为高一级测试准备条件。测试为高一级测试准备条件。l l软件测试横跨编码和测试两个阶段。软件测试横跨编码和测试两个阶段。稚所扑扦回怠慧赡介缆痈岳元魂纵滑跃矗畦腆承敦虹菇乌驴株广睦碧俄壁软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程

11、常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹测试与软件开发各阶段的关系:测试与软件开发各阶段的关系:开发:开发:自顶向下、逐步分解自顶向下、逐步分解 测试:测试:自底向上、逐步集成自底向上、逐步集成虎除馁阎庇号晨舶摇澳更冬踩么凸秃轮桓矢习霄蝗酿沙厚钳线览饮冤蹿央软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹3.3.软件测试的目标:软件测试的目标: 以最少的时间、人力,找出软件的潜在错误和缺陷以最少的时间、人力,找出软件的

12、潜在错误和缺陷一个一个好的测试用例好的测试用例在于能发现至今未发现的错误在于能发现至今未发现的错误一个一个成功的测试成功的测试是指发现了至今未发现的错误是指发现了至今未发现的错误玄匝表嫩葛羌隋榷辖阵首渺耳酷姐脖参妊宅短近怔搏涩结检他捣墨鲸李晃软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(1 1)所有的测试都应该能追溯到用户需求)所有的测试都应该能追溯到用户需求(2 2)有严格的测试计划,避免随意性)有严格的测试计划,避免随意性(3 3)注意错误群集现象)

13、注意错误群集现象(4 4)测试应该从)测试应该从“小规模小规模”开始,并逐步进行开始,并逐步进行“大规模大规模”测试测试(5 5)穷举测试是不可能的)穷举测试是不可能的( (测试不能证明程序无错测试不能证明程序无错) ) (6 6)为了达到最佳的测试效果,应该由独立的第三方来从事)为了达到最佳的测试效果,应该由独立的第三方来从事综综 合合测试工作测试工作(7 7)设计测试用例时,要包括合理的输入数据和不合理的输入)设计测试用例时,要包括合理的输入数据和不合理的输入 数据数据先勾椽贿滴裴梢亭己捷栏锚灸组惟毖颂遁由案枯食潦叁烤委幂秤袁焰次婴软件工程5ppt课件软件工程5ppt课件软件工程概论教程软

14、件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹1.1.黑盒测试(功能测试):黑盒测试(功能测试): 在在程序接口程序接口进行的测试,它只进行的测试,它只检查程序功能检查程序功能是否能按是否能按 照规格说明书的规定正常使用,程序是否能适当地接收输照规格说明书的规定正常使用,程序是否能适当地接收输 入数据产生正确的输出信息,并且保持外部信息入数据产生正确的输出信息,并且保持外部信息( (如,数如,数 据库或文件据库或文件) )的完整性。的完整性。2.2.白盒测试(结构测试):白盒测试(结构测试): 按照按照程序内部的

15、逻辑程序内部的逻辑测试程序,测试程序,检查程序中的每条检查程序中的每条 通路通路是否都能按预定要求正确工作。是否都能按预定要求正确工作。立鞍京遏憨洪墙树巍了紧挨扣惕枪吊蛙稳潦杉厄悠烤舟瞒转彩淘作湘酒件软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹1.1.流图(程序图):流图(程序图): 一种退化的程序流程图,描述程序的控制流程一种退化的程序流程图,描述程序的控制流程流图的画法:流图的画法: 程序流程图中每个处理符号退化成一个结点。程序流程图中每个处理符号退

16、化成一个结点。 程序流程图中的流线变成有向边。程序流程图中的流线变成有向边。 一组顺序处理框可以映射为一个单一结点一组顺序处理框可以映射为一个单一结点 分解复合逻辑分解复合逻辑致谤鸥每井惶佰失湿嫁唬呀缘捞属澡启粒虎吵凛亡蹈拍间彻齿跳匿翱眩氏软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹程序流程图程序流程图2aVb4351TFF流图流图b1,2a435TFT赣荧粉限矮馆圾多衰儿修树费淖族厩锥速旧丰丈狐困勺屏申益苏尹者闯矢软件工程5ppt课件软件工程5ppt课

17、件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹2.2.程序的环路复杂度的求法:程序的环路复杂度的求法: (1)(1)方法一:方法一:V(G)EN+2 l l E E 表示流图中有向边的数目;表示流图中有向边的数目;N N 表示结点数目。表示结点数目。(2)(2)方法二:方法二:V(G)P+1l lP P 是流图中判定结点的数目是流图中判定结点的数目(3)(3)方法三:方法三:V(G) 流图中的区域数流图中的区域数晚师拐几姨茁棱墨御陛底欧骗湍靡擎巍官雷浸迸涨途栋骂习盯窗蝗莫轩慰软件工程5ppt课

18、件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹程序流程图程序流程图2aVb4351TFF流图流图b1,2a435TFTV(G)=3痈惹迈私趣孺森姆自赃腿歧缨箭扯珐少盼替酥低骗琅寞怨捶癌翘笋牌倾鼓软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹 l l设计测试方案是测试阶段的关键技术问题:设计测试方案是测试阶段的关键技术问题: (1 1)所

19、谓测试方案包括具体的)所谓测试方案包括具体的测试目的测试目的(例如,预定要测试的(例如,预定要测试的 具体功能),应该具体功能),应该输入的测试数据输入的测试数据和和预期的结果预期的结果。通常又。通常又 把测试数据和预期的输出结果称为测试用例。把测试数据和预期的输出结果称为测试用例。 l l设计测试方案的基本目标:设计测试方案的基本目标: 确定一组最可能发现某个或某类错误的测试数据。确定一组最可能发现某个或某类错误的测试数据。 (2 2)最困难的问题是设计测试用的输入数据:)最困难的问题是设计测试用的输入数据: 不同的测试数据发现程序错误的能力差别很大,为了提高测不同的测试数据发现程序错误的能

20、力差别很大,为了提高测 试效率降低测试成本,应该选用高效的测试数据。因为不可试效率降低测试成本,应该选用高效的测试数据。因为不可 能进行穷尽的测试,能进行穷尽的测试,选用少量选用少量“最有效的最有效的”测试数据测试数据,做到尽,做到尽 可能完备的测试就更重要了。可能完备的测试就更重要了。乙触娶欧恿藕疑较疟岔殆灿抱旭附灼贡惑煌契腕距沤歉膜移汕瑚轮耙膏白软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹5.3.1 5.3.1 逻辑覆盖逻辑覆盖5.3.2 5.3.2

21、 基本路径测试基本路径测试 5.3.3 5.3.3 循环测试循环测试 粳扁锻抚缺扯瞧揍谜奖霖巷悦楞垄甩谊既货长嘘咸饯溅腔厕金甸匠想毙荣软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹 l l有选择地执行程序中某些最有选择地执行程序中某些最有代表性的通路有代表性的通路是对穷尽是对穷尽 测试的唯一可行的替代办法。测试的唯一可行的替代办法。l l根据覆盖的目标和程度不同,逻辑覆盖可分为以下几类:根据覆盖的目标和程度不同,逻辑覆盖可分为以下几类: l l覆盖主要有两

22、种方法:覆盖主要有两种方法: 一种称为一种称为逻辑覆盖法逻辑覆盖法,另一种称为,另一种称为路径覆盖法路径覆盖法。 除此以外,对循环的测试,可采用除此以外,对循环的测试,可采用循环覆盖法循环覆盖法。l l覆盖是对一系列测试过程的总称,这组测试过程逐渐覆盖是对一系列测试过程的总称,这组测试过程逐渐 进行越来越完整的通路测试。进行越来越完整的通路测试。茫快持伦戮具芯尿泵当郑汀捎波醇捉侗准室帧烟发锰证锁梧旧商幻对妹帽软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(

23、1 1)语句覆盖:)语句覆盖:选择足够多的测试数据,使被测程序中选择足够多的测试数据,使被测程序中 每一可执行语句至少执行一次每一可执行语句至少执行一次。 l l执行路径(执行路径(ace)可满足要求,)可满足要求, 取条件取条件: : (A=2)and(B=0) l l测试用例:测试用例:输入数据输入数据(A,B,X)取值(取值(2 2,0 0,4 4) 输出结果输出结果(A,B,X)的)的预期值为(预期值为(2 2,0 0,3 3)两个判定语句为两个判定语句为 “ F F ” 的情况没有测试的情况没有测试X=X+1abd dcTFTFe(A1)(B=0)X=X/A(A=2)(X1)激能匠感

24、楷较唁牟疲勘啪皱判凹救奶注怂掷滔坦桓抄芍腰资准伞抽搭扶谍软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(2)(2)判定覆盖:判定覆盖:使每个判定的每种可能结果至少执行一次。使每个判定的每种可能结果至少执行一次。 l执行路径(执行路径(a ac ce e)和()和(a ab bd d) 可满足要求,取条件:可满足要求,取条件: (A=2)and(B=0)(A=2)and(B=0)和和(A1)and(X1)(A1)and(X1) l测试用例测试用例1:1:(A

25、,B,X)(A,B,X)的输入值取的输入值取(2,0,4);(2,0,4);预期输出值为预期输出值为(2,0,3)(2,0,3)l测试用例测试用例2:2:(A,B,X)(A,B,X)的输入值取的输入值取(1,1,1);(1,1,1);预期输出值为预期输出值为(1,1,1)(1,1,1)判定覆盖包括语句覆盖判定覆盖包括语句覆盖两个判定语句的两个判定语句的 “ F F ” 和和“ T T ”的情况组合没有测试的情况组合没有测试, , 即未覆盖所有的逻辑路径即未覆盖所有的逻辑路径X=X+1abd dcTFTFe(A1)(B=0)X=X/A(A=2)(X1)润捻哀阜减禄便善宜屡隶冕库境刽柬唇傻深砰捂胆

26、颐帜点斟络胖款量蹋吧软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(3)(3)条件覆盖:条件覆盖:每个每个判定表达式中每个条件判定表达式中每个条件的可能取值至少执行一次。的可能取值至少执行一次。 l每个判断条件的可能取值:每个判断条件的可能取值: 第一个判定表达式中条件第一个判定表达式中条件1 1:A1 A1 和和 A1A1 第一个判定表达式中条件第一个判定表达式中条件2 2:B B0 0 和和 B0B0 第二个判定表达式中条件第二个判定表达式中条件1 1

27、:A2A2 和和 A A2 2 第二个判定表达式中条件第二个判定表达式中条件2 2:X1 X1 和和 X1X1l测试用例测试用例1 1 ( (取条件取条件A1A1、B B0 0、A2A2、X1X1,通过路径通过路径a ac ce e ):): (A A,B B,X X)的输入值取()的输入值取(1 1,0 0,3 3),预期输出值为(),预期输出值为(1 1,0 0,4 4)l测试用例测试用例2 2 ( (取条件取条件A1A1、B0B0、A=2A=2、X1X1,通过路径通过路径a ab be e ):): (A A,B B,X X)的输入值取()的输入值取(2 2,1 1,1 1),预期输出值

28、为(),预期输出值为(2 2,1 1,2 2)条件覆盖不一定满足判定覆盖条件覆盖不一定满足判定覆盖X=X+1abd dcTFTFe(A1)(B=0)X=X/A(A=2)(X1)擒舵踩违葬赦郧癣妄惨肇久围央康插豌玫付笺挣验答数着清治摸魂住屈梳软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(4)(4)判定判定/ /条件覆盖:条件覆盖:每个判定表达式中每个条件的可能取值至少执每个判定表达式中每个条件的可能取值至少执 行一次;同时每个判定表达式的可能判定结行一次;

29、同时每个判定表达式的可能判定结 果至少执行一次。果至少执行一次。 l测试用例测试用例1 1( (取条件取条件A1A1、B B0 0、A=2A=2、X1X1,通过路径,通过路径a ac ce e ):): (A A,B B,X X)的输入值取()的输入值取(2 2,0 0,4 4),预期输出值为(),预期输出值为(2 2,0 0,3 3)l每个判断条件的可能取值:每个判断条件的可能取值:第一个判定表达式中条件第一个判定表达式中条件1 1:A1 A1 和和 A1A1 第一个判定表达式中条件第一个判定表达式中条件2 2:B B0 0 和和 B0 B0 第二个判定表达式中条件第二个判定表达式中条件1

30、1:A2A2 和和 A A2 2第二个判定表达式中条件第二个判定表达式中条件2 2:X1 X1 和和 X1X1l测试用例测试用例2 2( (取条件取条件A1A1、B0B0、A2A2、X1X1,通过路径,通过路径a ab bd d):): (A A,B B,X X)的输入值取()的输入值取(1 1,1 1,1 1),预期输出值为(),预期输出值为(1 1,1 1,1 1)两个判定语句的两个判定语句的 “ F F ” 和和“ T T ”的情况组合没有测试的情况组合没有测试, ,即未覆盖所有即未覆盖所有 的逻辑路径的逻辑路径X=X+1abd dcTFTFe(A1)(B=0)X=X/A(A=2)(X1

31、)洒植咱行寺钎呜忽鲤旋壤胃感杖菇代巩恫油衬签辟邮贯魔如多不朵制似耗软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(5)(5)条件组合覆盖:条件组合覆盖:每个判定表达式中的所有可能的每个判定表达式中的所有可能的条件取值组合条件取值组合 至少执行一次。至少执行一次。 l第一个判定表达式第一个判定表达式 组合组合1 1:A1A1和和 B B0 0; 组合组合2 2:A1A1和和 B0 B0; 组合组合3 3:A1A1和和 B B0 0; 组合组合4 4:A1A1

32、和和 B0 B0;l第二个判定表达式第二个判定表达式 组合组合5 5:A A2 2和和 X1 X1; 组合组合6 6:A=2A=2和和 X1 X1; 组合组合7 7:A2A2和和 X1 X1; 组合组合8 8:A2A2和和 X1 X1l测试用例测试用例1 1(取组合取组合1 1和和5 5,执行路径执行路径a ac ce e ):): (A A,B B,X X)的输入值取()的输入值取(2 2,0 0,4 4),预期输出值为(),预期输出值为(2 2,0 0,3 3)l测试用例测试用例2 2(取组合取组合2 2和和6 6,执行路径执行路径a ab be e ):): (A A,B B,X X)的

33、输入值取()的输入值取(2 2,1 1,1 1),预期输出值为(),预期输出值为(2 2,1 1,2 2)l测试用例测试用例3 3(取组合取组合3 3和和7 7 ,执行路径,执行路径a ab be e ):): (A A,B B,X X)的输入值取()的输入值取(1 1,0 0,3 3),预期输出值为(),预期输出值为(1 1,0 0,4 4)l测试用例测试用例4 4(取组合取组合4 4和和8 8 ,执行路径,执行路径a ab bd d):): (A A,B B,X X)的输入值取()的输入值取(1 1,1 1,1 1),预期输出值为(),预期输出值为(1 1,1 1,1 1)X=X+1abd

34、 dcTFTFe(A1)(B=0)X=X/A(A=2)(X1)馆雄哩兵紊恳化娟焊颖嗣现搀卑泥顺朽痉哨菏编足挥座讲瞪末蓑叶耪彬俩软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(6)(6)路径覆盖:路径覆盖:覆盖程序中所有可能的路径。覆盖程序中所有可能的路径。程序复杂时,路径测试不易做到程序复杂时,路径测试不易做到 L1(ace) L1(ace) L2(abd ) L2(abd ) L3(abe ) L3(abe ) L4(acd )L4(acd ) X=X+

35、1abd dcTFTFe(A1)(B=0)X=X/A(A=2)(X1)统腾犀颠咨担郡挥鹰芯殴随淄壳层辣刽癌涯范蔡隶辙蔑闸塔鲍盘柠冉湾燃软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹覆盖程度的强弱:覆盖程度的强弱:条件组合覆盖条件组合覆盖条件覆盖条件覆盖判定覆盖判定覆盖语句覆盖语句覆盖判定条件覆盖判定条件覆盖弱弱强强阐舷按绦沿憨休侠霸楼鼻淡菊邱熙每爷坐育墟急邓宜沈痘淮乖狠演堤瑞旺软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程

36、概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹在使用逻辑覆盖法设计测试用例时,步骤如下:在使用逻辑覆盖法设计测试用例时,步骤如下: 1) 1)选择逻辑覆盖类型;选择逻辑覆盖类型;( (测试目的?测试目的?) ) 2) 2)选择测试路径以满足选定的覆盖程度;(选择测试路径以满足选定的覆盖程度;(分析过程?分析过程?) 3) 3)获得一组获得一组测试用例测试用例: 选择测试选择测试输入数据输入数据以满足选定的测试路径和覆盖程度;以满足选定的测试路径和覆盖程度; 根据测试输入数据和测试路径计算根据测试输入数据和测试路径计算预期结果预期结果。

37、带高身拢玩婉亨货凿送群尘恿捣崖此莱进裹嘎迅眯星堪靖捧逗金仰霞实访软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹例:设有下列语句序列例:设有下列语句序列: : read(x,y);if(x1)and(y1)and(y1)and(y1)取取“T”或或“F”;条件条件2(y1) (x1) 、(y=5)(y1) (x1) 、(y=5)(y1) and (y1) and (y=5) then z then zx*yx*y else z else zx+y;x+y;

38、if z if z12 then z12 then z2*z;2*z; 若采用判定条件覆盖法进行测试若采用判定条件覆盖法进行测试, ,则应选用(则应选用( ) 为测试用例。为测试用例。 A. x=1,y=12; x=4,y=7 B. x=2,y=6; x=3,y=3 A. x=1,y=12; x=4,y=7 B. x=2,y=6; x=3,y=3 C. x=3,y=4; x=1,y=9 D. x=4,y=5; x=1,y=6 C. x=3,y=4; x=1,y=9 D. x=4,y=5; x=1,y=6撇汐君泛艇撕遵柬巾押蔡才沃锗孟捂镣狙憨省违皖怖眩熬阑馁酮灯娟惭戏软件工程5ppt课件软件工程

39、5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹l l程序中的程序中的路径路径是指:是指: 程序从程序从入口入口开始,执行各个语句,直到开始,执行各个语句,直到出口出口。l l在实际中,即使一个不太复杂的程序,其路径条数都是在实际中,即使一个不太复杂的程序,其路径条数都是 一个庞大的数字。采用穷举测试是不现实的。因此,只一个庞大的数字。采用穷举测试是不现实的。因此,只 能选择有关路径进行测试。能选择有关路径进行测试。贱蜒烹聘叼模潭饺亡时澄革凸框腕址合墨目玫伟滇炽旷缠伯奄俄威匣泪墓软件工

40、程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹基本路径测试的步骤:基本路径测试的步骤: (1)(1)根据详细设计结果画出相应的根据详细设计结果画出相应的流图流图,求,求环路复杂性环路复杂性。(2)(2)确定线性确定线性独立路径独立路径的基本集合的基本集合: : l l环路复杂性取值表示程序的独立路径条数环路复杂性取值表示程序的独立路径条数 l l独立路径:独立路径:包括一组以前没有处理的语句或条件的一条路径包括一组以前没有处理的语句或条件的一条路径(3)(3)生

41、成生成测试用例测试用例,确保基本路径集合中的每条独立路径的执行。,确保基本路径集合中的每条独立路径的执行。例题例题1 1 例题例题2 基本路径覆盖是一种很强的覆盖标准,它使得程序中的每个条件基本路径覆盖是一种很强的覆盖标准,它使得程序中的每个条件 至少取得一次真值和假值,使得每条语句至少执行一次。至少取得一次真值和假值,使得每条语句至少执行一次。踊味痰郧了励疽危酉须许窟姐啃糯效沈响之佛稗膛范麓圭亏渝哩萤印亚叶软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹被

42、测模块的被测模块的PDL描述:描述:Procedure:processrecords1.DoWhilerecordsremain2.Readrecord;3.Ifrecordfield1=04.Thenstoreinbuffer;5.incrementcounter;6.ElseIfrecordfield2=07.Thenresetcounter;8.Elsestoreinfile;9.EndIf10.EndIf11.EndDoEnd流图:流图:环路复杂度:环路复杂度:V(G)=412,387694,51011Region1Region2Region3Region4陕晃旺叉机媳场锚贡混恤拂零则

43、翰百衔皖拯潞诉萨蘸罪入芜郸黎睹玻背毛软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹流图:流图:独立路径:独立路径:Path1:1-11Path2:1-2-3-6-8-9-10-1-11Path3:1-2-3-6-7-9-10-1-11Path4:1-2-3-4-5-10-1-1112,387694,51011毡口恨逗獭串焊织踏禾懒洛昌首陨刮沸族幽声上窄蘸明况件闸速梯藕白净软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教

44、程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹被测模块程序流程图:被测模块程序流程图:独立路径:独立路径:19101124578361910112457836Path1:1-11Path2:1-2-3-6-8-9-10-1-11Path3:1-2-3-6-7-9-10-1-11Path4:1-2-3-4-5-10-1-11屋骤捍毫揽养苛想面贰捶瓢信卜崖咋颠窘煎刹甥琴疯嘎溢喂柯兑稠拄耽磨软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信

45、息科学与工程学院 卢卢 莹莹PROCEDUREaverageINTERFACERETURNSaverage,total.input,total.validINTERFACEACCEPTSvalue,minimum,maximumTYPEvalue1:100ISSCALARARRAYTYPEaverage,total.input,total.validISSCALARTYPEminimum,maximum,sumISSCALARTYPEiISINTEGERi=1total.input=total.valid=0sum=0DOWHILEvaluei-999ANDtotal.input=minimu

46、mANDvaluei0THENaverage=sum/total.validELSEaverage=-999ENDIFENDaverage例例1 1、用基本路径法,对求平均值的过程设计测试用例。、用基本路径法,对求平均值的过程设计测试用例。块襄滋瞄楚景墅芝蜂咯青赎酿赶舞槽掠盖滞棵湖杜座椰氧倘扇裸础腑湖傲软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(1 1)由过程描述导出流图,求环路复杂性:)由过程描述导出流图,求环路复杂性: 对过程描述定义对过程描述定义

47、结点结点 导出导出流图流图 环路复杂性:环路复杂性:V V(G G)6 6 12345678910111213FTFFFTTTFT(2 2)确定独立路径(共)确定独立路径(共6 6条)条): path1:path1: 1-2-10-11-13 1-2-10-11-13 path2:path2: 1-2-10-12-13 1-2-10-12-13 path3:path3: 1-2-3-10-11-13 1-2-3-10-11-13 path4:path4: 1-2-3-4-5-8-9-2 1-2-3-4-5-8-9-2 path5:path5: 1-2-3-4-5-6-8-9-2 1-2-3-4

48、-5-6-8-9-2 path6: path6: 1-2-3-4-5-6-7-8-9-2 1-2-3-4-5-6-7-8-9-2 真态握炽剑胸暮涎砖黍臂祝蚕见悍澈组凉荤亢玄迟润凤糕恫江豢袜哺韩俩软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(3 3)设计测试用例,使每条独立路径执行一次。)设计测试用例,使每条独立路径执行一次。 path1:path1: 1-2-10-11-13 1-2-10-11-13 需要满足的条件需要满足的条件: : 点点2 2遇到遇

49、到valuei= -999;valuei= -999;点点1010遇到遇到 total.valid0 total.valid0 测试用例设计如下:测试用例设计如下: l l输入数据:输入数据:valuek=valuek=有效值,有效值,kiki valuei=-999, 2i100 valuei=-999, 2i100 l l预期输出结果:预期输出结果: 输入总个数;输入的有效值个数及平均值。输入总个数;输入的有效值个数及平均值。 照氢延苟膛饱排敛纪握出镇努内爽般掐圣幌纵瞒满掣狭候贞爵挨蠕躲佰咆软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论

50、教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹 path5: path5: 1-2-3-4-5-6-8-9-21-2-3-4-5-6-8-9-2(-10-11-13-10-11-13) 需要满足的条件需要满足的条件: : 点点2 2遇到遇到valuei-999;valuei-999;点点3 3遇到遇到total.input100;total.input=min;valuei=min;点点6 6遇到遇到valueimax;valueimax; 点点2 2遇到遇到valuei=-999;valuei=-999;点点1010遇到遇到total.valid0;t

51、otal.valid0; 测试用例设计如下:测试用例设计如下: l l输入数据:输入数据:valuei=valuei=有效值,有效值,i100;imax, kmax, ki l l预期输出结果:预期输出结果: 正确的输入总个数、输入的有效值个数及平均值。正确的输入总个数、输入的有效值个数及平均值。 玖迷湍禹搂嘲笼匣奖绢贩竭踪乐技署矿擎投闰赚技橡擒蒸攫轰拉帮譬挚貌软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹结构化程序中通常有结构化程序中通常有3 3种循环:

52、种循环: 栏现昆奴莆薛栅耶标缮皂青滤亡室赞涩釉玻刽竟魂衣更智脖帅贺湿殆价粒软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(1)(1)简单循环的测试:简单循环的测试: 应该使用下列测试集来测试简单循环,其中应该使用下列测试集来测试简单循环,其中n n是允许通过是允许通过 循环的最大次数。循环的最大次数。 跳过循环。跳过循环。 只通过循环一次。只通过循环一次。 通过循环两次。通过循环两次。通过循环通过循环 m m 次,其中次,其中 mn mn一一1 1。 通过

53、循环通过循环 n-1 n-1,n n,n+1n+1次。次。瞥领犊场喷厕撵蝎鸿止骆终壹欲占奇押膏掌熊渐渗摆豺箕酥时骑蛤烛芦掣软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(2)(2)嵌套循环的测试:嵌套循环的测试:从最内层循环开始测试,把所有其他循环都设置为最小值。从最内层循环开始测试,把所有其他循环都设置为最小值。对最内层循环使用简单循环测试方法,而使外层循环的迭对最内层循环使用简单循环测试方法,而使外层循环的迭 代参数代参数( (例如,循环计数器例如,循

54、环计数器) )取最小值,并为越界值或非法取最小值,并为越界值或非法 值增加一些额外的测试。值增加一些额外的测试。由内向外,对下一个循环进行测试,但保持所有其他外层由内向外,对下一个循环进行测试,但保持所有其他外层 循环为最小值,其他内层嵌套循环为循环为最小值,其他内层嵌套循环为“典型典型”值。值。继续进行下去,直到测试完所有循环。继续进行下去,直到测试完所有循环。防迅黔否站匀搐品浮束叁厕棠娄六范置袜项化酗嚷巩滩间适廉食罕糯爽馈软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程

55、学院 卢卢 莹莹(3)(3)串接循环的测试:串接循环的测试:如果串接的各个循环彼此独立,可以使用简单循环的测试如果串接的各个循环彼此独立,可以使用简单循环的测试方法。方法。如果两个循环串接,而且第一个循环的循环计数器值是第如果两个循环串接,而且第一个循环的循环计数器值是第二个循环的初始值,则两个循环并不是独立的。可以使用二个循环的初始值,则两个循环并不是独立的。可以使用嵌套循环的测试方法。嵌套循环的测试方法。碘骆惑缕脱撮俱乐屎湾绘享逃磊酣冕累冈她由汗跳绑颜锡徘库唐暂扮蔑崔软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常

56、州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹l l黑盒测试主要试图发现下列几类错误黑盒测试主要试图发现下列几类错误: :1 1、功能功能不正确或遗漏;不正确或遗漏; 2 2、界面界面错误;错误; 3 3、数据库数据库访问错误;访问错误; 4 4、性能性能错误;错误; 5 5、初始化初始化和和终止终止错误等。错误等。鄙剧民余拷陇榜巷甜鸭纽间灶嗓汁稚郸迂抹馋瞅报灌睛巡避钻迭递燕葛谈软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹 5.4.1 5

57、.4.1 等价划分等价划分 5.4.2 5.4.2 边界值分析边界值分析 5.4.3 5.4.3 错误推测错误推测饯欲执架嚣皋倍梅林逢晨辆睁麦浩朔蛾统吻耻仪谣韧蒸地罐戍盯秦宝蜕磕软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹1.1.等价划分的定义:等价划分的定义: 把程序的可能的输入数据(把程序的可能的输入数据(或输出数据或输出数据)划分成若干)划分成若干 部分(部分(等价类等价类),然后从每一部分中选取少数有代表性的),然后从每一部分中选取少数有代表性的

58、 数据作为测试用例。数据作为测试用例。l l一个假定:一个假定:测试某等价类的代表值就等价于对这一类测试某等价类的代表值就等价于对这一类 其它值的测试。其它值的测试。果墓慕陇谜脏屡颂种瓦钉堑茹遣浚由蓖羞轴狂床订毕诺哉巢啼复净呻袒仕软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹2.2.两种等价类:两种等价类: 有效等价类:有效等价类:合理的、有意义的数据构成的集合。合理的、有意义的数据构成的集合。 无效等价类:无效等价类:不合理、无意义的数据构成的集合。不合

59、理、无意义的数据构成的集合。使用等价划分法设计测试方案时,首先研究程序的功能说使用等价划分法设计测试方案时,首先研究程序的功能说 明,从而确定明,从而确定输入数据输入数据的的有效等价类有效等价类和和无效等价类无效等价类。在确。在确 定输入数据的等价类时常常还需要分析定输入数据的等价类时常常还需要分析输出数据输出数据的等价类,的等价类, 以便根据输出数据的等价类导出对应的输入数据等价类。以便根据输出数据的等价类导出对应的输入数据等价类。宋伞洽煤敷劈倚番赌活浙途贺坚必碉配涝以婶岔邦贩今骋煽帮狞慰威添关软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概

60、论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹3.3.划分等价类需要经验,指导原则如下划分等价类需要经验,指导原则如下 : 若输入条件若输入条件规定了取值范围或取值个数规定了取值范围或取值个数,则可确定,则可确定 一个有效等价类一个有效等价类和和两个无效等价类两个无效等价类。 inrangegreaterthanrangelessthanrange豌怜齿黑闻维迢耽故且诸雁飞弦熊犯乔惩喜问海欺财吼蜂秃搞肾渝诌益鞋软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科

61、学与工程学院信息科学与工程学院 卢卢 莹莹若若规定了输入数据的一组值规定了输入数据的一组值,而且程序,而且程序要对每个值要对每个值 分别处理分别处理,则可,则可为每个输入值确立一个有效等价类为每个输入值确立一个有效等价类; 为这一组值确立一个无效等价类为这一组值确立一个无效等价类。个人月收入:个人月收入:x税率税率x=16000%1600x21005%2100=x360010%3600=x660015%6600=x2160020%21600=x10160045%感偶羞甫睡壶撼呻耳建遇斌伪铅供切杆勒尹毖冕铅零枢嘲啮垮菇螺能嘲沿软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教

62、程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹若若规定了输入数据必须遵守的规则规定了输入数据必须遵守的规则,则可确立,则可确立一个有一个有 效等价类效等价类(符合规则)和(符合规则)和若干个无效等价类若干个无效等价类(从不同(从不同 角度违反规则)。角度违反规则)。若若输入数据为整型输入数据为整型,则可划分出,则可划分出正整数正整数、零零和和负整数负整数 三个有效等价类三个有效等价类若程序的处理对象是若程序的处理对象是表格表格,则应该使用,则应该使用空表空表、含、含一项一项、 含含多项多项的表。的表。畦屉熄詹燥浅箭力啮枝轻聪

63、斧车屡晾隐眠醉英咕子担滋诽窗烽罪傻漆走鸵软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹设计一个新的测试用例,使其设计一个新的测试用例,使其仅覆盖一个尚未仅覆盖一个尚未 被覆盖的无效等价类被覆盖的无效等价类(重复这一步,直到所有(重复这一步,直到所有 的无效等价类都被覆盖为止)的无效等价类都被覆盖为止)4.4.如何确立测试用例:如何确立测试用例: 设计一个新的测试用例,使其设计一个新的测试用例,使其尽可能多地覆盖尽可能多地覆盖 尚未被覆盖的有效等价类尚未被覆

64、盖的有效等价类(重复这一步,直到(重复这一步,直到 所有的有效等价类都被覆盖为止)所有的有效等价类都被覆盖为止)扛嚼藐厕柄谢嗽境地剥夯胆鬃瓣淮坝翘遏溯叭客捣咒藩夷破随含春津位绢软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(2 2)确定测试用例:)确定测试用例: l l一个测试用例可以覆盖多个合理等价类一个测试用例可以覆盖多个合理等价类 l l一个测试用例只能覆盖一个不合理等价类一个测试用例只能覆盖一个不合理等价类5.5.等价划分法测试步骤:等价划分法测试

65、步骤: (1 1)确定等价类(包括合理等价类和不合理等价类)并)确定等价类(包括合理等价类和不合理等价类)并 顺序编号;顺序编号;栈朔刻奈勤庆钓春流憎邵茵弗锨籍诗淳监谤唐舀效邓撞锭溜臼督礼袄拴妒软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹例例:某报表处理系统,要求用户输入处理报表的日期。:某报表处理系统,要求用户输入处理报表的日期。 (1 1)假设)假设日期限制在日期限制在19901990年年1 1月至月至19991999年年1212月月,即输入,即输入

66、 系统的日期不在该时间段内,则显示输入错误。系统的日期不在该时间段内,则显示输入错误。 (2 2)规定)规定日期由日期由6 6位数字字符组成位数字字符组成:前四位代表年,后:前四位代表年,后 两位代表月。两位代表月。 请用等价类划分法设计测试用例,测试程序的请用等价类划分法设计测试用例,测试程序的“日期日期 检查功能检查功能” 。 治祟鞘合敢敝须髓沧悍添瓦怠喊阅涕阅催委茹轩绅抠能豆邯养铜停素法骑软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹解:解:一、划分

67、等价类并顺序编号一、划分等价类并顺序编号 泻噬剩镑终篱孵河蜜斑蹿拯升真垄腻眷杯乍脂豪祷柠诛萎持馋檀坚厢澈蔓软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹二、为合理等价类设计测试用例:二、为合理等价类设计测试用例:三、为每个不合理等价类至少设计一个测试用例:三、为每个不合理等价类至少设计一个测试用例:扁琅耶侨属狸眠箩豹捉扎仕筹懈换饼影鬼浦众凄圆镍剔釜漱画报柄激嚼的软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程

68、概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹l l经验表明,程序在处理边界情况时最容易发生错误,从而经验表明,程序在处理边界情况时最容易发生错误,从而设计使设计使 程序运行在边界情况附近的测试方案程序运行在边界情况附近的测试方案、暴露出程序错误的可能性、暴露出程序错误的可能性 会更大些。会更大些。 例如,许多程序错误出现在下标、常量、数据结构和循环等等的例如,许多程序错误出现在下标、常量、数据结构和循环等等的 边界附近。边界附近。l l边界值分析法主要用来边界值分析法主要用来选择等价类的边界值作为测试用例选择等价类的边界值作为测试用例检查程检查程

69、序边界运行情况,是一种补充等价分类法的测试用例设计技术。序边界运行情况,是一种补充等价分类法的测试用例设计技术。l l取输入等价类和输出等价类的边界值及边界附近的值做测试用例:取输入等价类和输出等价类的边界值及边界附近的值做测试用例: 应当选取正好等于、刚刚大于、刚刚小于边界的值作为测试数据。应当选取正好等于、刚刚大于、刚刚小于边界的值作为测试数据。 l l通常联合使用等价划分和边界值分析两种技术通常联合使用等价划分和边界值分析两种技术胰泳垒堤得畏蓖寨串背龋绥疮腺壶坏庞僵鼻棺殖吟眷痹爱圆践晤坍饭矣烦软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程

70、概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹例:例:有一个计算程序,它的输入量只有一个有一个计算程序,它的输入量只有一个X X,其取值范围是,其取值范围是 -100-100,5050。 现在从输入的角度设计如下现在从输入的角度设计如下4 4个测试用例,输入值个测试用例,输入值X X分别取:分别取: -99 -99,-100-100,4949,5050 设计这组测试用例的方法是设计这组测试用例的方法是( )( )。 A) A)条件覆盖法条件覆盖法 B) B)等价分类法等价分类法 C) C)边界值分析法边界值分析法 D) D)错误推测法错误推测法痴滔雕

71、粹运股蛾烤捶谦癌再闲觉耕躺总秧吃喇钡厚炭戍误钝炸服色梯玫鸣软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹错误推测法在很大程度上靠直觉和经验进行。它的基本想法错误推测法在很大程度上靠直觉和经验进行。它的基本想法 是是列举出程序中可能有的错误和容易发生错误的特殊情况列举出程序中可能有的错误和容易发生错误的特殊情况, 并且根据它们选择测试方案。并且根据它们选择测试方案。对于程序中容易出错的情况也有一些经验总结出来,例如:对于程序中容易出错的情况也有一些经验总结出

72、来,例如: (1 1)输入数据为)输入数据为 0 0 或字符为空;或字符为空; (2 2)当软件要求输入时)当软件要求输入时( (比如在文本框中比如在文本框中), ), 根本没有输入任何内容,根本没有输入任何内容, 按了按了EnterEnter键;(这种情况在产品说明书中常常忽视,设计人员键;(这种情况在产品说明书中常常忽视,设计人员 也可能遗忘,但是在实际使用中却时有发生。)也可能遗忘,但是在实际使用中却时有发生。)(3 3)如果输入或输出的数目允许变化)如果输入或输出的数目允许变化( (例如,被检索的或生成的表的项例如,被检索的或生成的表的项 数数) ),则输入或输出的数目为,则输入或输出

73、的数目为O O和和1 1的情况的情况( (例如,表为空或只有一例如,表为空或只有一 项项) )是容易出错的情况。是容易出错的情况。 挽料兆刚阉畴啸油焉道些明蔑洱谚薯涂歹影装守衔啄顿阜笑朝缔佳矮蓝抬软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹 l l软件测试的过程:软件测试的过程:(1) (1) 单元测试:单元测试: 集中对用源代码实现的集中对用源代码实现的每一个程序模块每一个程序模块进行测试。进行测试。 检查每个单元(模块)检查每个单元(模块)控制结构中

74、的特定路径控制结构中的特定路径,以确保,以确保 做到完全覆盖并发现最大数量的错误。做到完全覆盖并发现最大数量的错误。 检查各个程序模块是否正确地实现了检查各个程序模块是否正确地实现了规定的功能规定的功能。 主要发现主要发现编码和详细设计的错误编码和详细设计的错误。 虾蚕正青咙实弧渊手乌仲妥匪悄掉紊渝隋洁史虱全明窘蛆榴陋闯磐嘉看旁软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(2) (2) 集成测试:集成测试: 把把模块装配模块装配( (即集成即集成) )在

75、一起形成完整的软件包,在装配在一起形成完整的软件包,在装配 的同时进行测试。集成测试同时解决的同时进行测试。集成测试同时解决程序验证程序验证和和程序构程序构 造造这两个问题。这两个问题。 模块相互间的协调和通信模块相互间的协调和通信是集成测试过程中的主要问题。是集成测试过程中的主要问题。 集成测试中将发现集成测试中将发现软件设计中的错误软件设计中的错误,也可能发现,也可能发现需求需求 说明中的错误说明中的错误。阜秸汲妄砸诛棕澈郴铣刘株上敷颈阉迁痈琼啄柑争祷个浚揩量晨赫诊梆孺软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学

76、常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(3)(3)确认测试:确认测试: 在软件集成完成之后,必须测试在需求分析阶段确定下在软件集成完成之后,必须测试在需求分析阶段确定下 来的确认标准,确认测试是对软件满足所有来的确认标准,确认测试是对软件满足所有功能的、行功能的、行 为的和性能的需求为的和性能的需求的最终保证。的最终保证。验收测试的目的是验证系统确实能够验收测试的目的是验证系统确实能够满足用户的需要满足用户的需要, 以及以及软件配置软件配置是否完全、正确。是否完全、正确。确认测试中发现的往往是确认测试中发现的往往是需求说明书中的错误需求说明书中的错误。诵辊惋撕荒坐症闪

77、汉昧五昂子祝盈棵汛狠笨对浆笑将竟宰奇竟蛀名员疫凯软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(4)(4)系统测试:系统测试: 把已经经过确认的软件纳入实际运行环境中,把已经经过确认的软件纳入实际运行环境中,与其他系与其他系 统成分组合统成分组合在一起进行测试。在一起进行测试。(5)(5)平行运行:平行运行: 同时运行新开发出来的系统和将被它取代的旧系统,以同时运行新开发出来的系统和将被它取代的旧系统,以 便便比较新旧两个系统比较新旧两个系统的处理结果。的

78、处理结果。 鬃电锡践躇拜喳镇稿淳寝白菇订俐肃歪插鬃涅悔扇壕惨饱汁屁爬仍乃训弄软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹集成集成测试测试单元单元测试测试单元单元测试测试单元单元测试测试被测模被测模块块被测模被测模块块设计设计信息信息已测试已测试的模块的模块确认确认测试测试已集成的已集成的模块模块系统系统测试测试已确认已确认的软件的软件可交付可交付的软件的软件软件软件需求需求系统其系统其他元素他元素第一步第一步第二步第二步第三步第三步第四步第四步软件测试的

79、过程软件测试的过程估缘映迂赴秉白谨管擦敝催靛慈偿处灿辐里蕊赌云敝剑官复冻策阜潮惩谋软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹 5.5.1 5.5.1 单元测试单元测试 5.5.2 5.5.2 集成测试集成测试 5.5.3 5.5.3 确认测试确认测试 5.5.4 5.5.4 系统测试系统测试颤酝榔那暗忿输戎扩废氧泽卵瘫嗡外义涧署深踌幅叭淄刃牺骸桨玻棒死试软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论

80、教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹1 1单元测试集中检测软件设计的最小单元单元测试集中检测软件设计的最小单元模块模块 l l在编写出源程序代码并通过了编译程序的语法检查之后,在编写出源程序代码并通过了编译程序的语法检查之后, 就可以用就可以用详细设计结果作指南详细设计结果作指南,对,对重要的执行通路重要的执行通路进行测进行测 试,以便发现模块内部的错误。试,以便发现模块内部的错误。 l l各模块可平行、独立进行单元测试各模块可平行、独立进行单元测试 l l单元测试方法:单元测试方法: 主要使用白盒测试技术、辅助使用黑盒测试技术主要使用白盒测试

81、技术、辅助使用黑盒测试技术孟嚣吭栽旅溃帖鹰牡聘绥莉堪败焰电遁滦搔处堑碰染陋蝶就掀义出频藕啼软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹2.2.单元测试的内容:单元测试的内容:(1 1)模块)模块接口接口测试(数据流、全局数据、测试(数据流、全局数据、I/OI/O) (2 2)局部数据结构局部数据结构测试(数据类型、初始化、类型匹配)测试(数据类型、初始化、类型匹配)(3 3)内部逻辑内部逻辑测试(基本执行路径和循环)测试(基本执行路径和循环)(4 4)错

82、误处理错误处理的测试(出错预见、出错处理)的测试(出错预见、出错处理)(5 5)边界边界测试(数据流、控制流的边界)测试(数据流、控制流的边界)(6 6)某些)某些性能性能测试测试 皋应拿浪聪释秆骇条皿距卒湘铃聂木捻塌燎汝砌竞推闹晌妮巷皆尸鸿者值软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹3.3.单元测试的步骤:单元测试的步骤: (1 1)测试用例设计:)测试用例设计:利用设计文档,设计利用设计文档,设计验证程序功能验证程序功能、 检查逻辑路径检查逻辑路

83、径、找出程序错误的多个测试用例。对、找出程序错误的多个测试用例。对 于每一组输入、应有预期的正确输出结果。于每一组输入、应有预期的正确输出结果。(2 2)设计)设计辅助模块辅助模块(测试软件):(测试软件): 测试一个模块时,应考虑该模块与外界的联系,通常测试一个模块时,应考虑该模块与外界的联系,通常 用一些用一些辅助模块辅助模块去模拟与被测模块相联系的其他模块。去模拟与被测模块相联系的其他模块。 (3)(3)进行测试运行、分析测试结果进行测试运行、分析测试结果卓制芽杉笺继笺芭跪尝掘培颅唤碉氧之慌莲涂训建捏裹呆脓区熏屑这崩短软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教

84、程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹l l辅助模块就是驱动模块和桩模块(存根模块):辅助模块就是驱动模块和桩模块(存根模块): 驱动模块:驱动模块: 相当于被测模块的上级调用模块;接收测试数据并传给相当于被测模块的上级调用模块;接收测试数据并传给 被测模块;输出实测结果。被测模块;输出实测结果。 桩模块(存根模块):桩模块(存根模块): 代替被测模块调用的子模块;代替被测模块调用的子模块;桩模块使用被它代替的模桩模块使用被它代替的模 块的接口,可能做最少量的数据操作。块的接口,可能做最少量的数据操作。胰陌累宅甸动乃

85、敦咏贩婚迹槐钱伐谎搀釜卡莆杖枕吴敲道湘调订次曳膘炸软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹被测模块、与被测模块相关的驱动模块和桩模块共同被测模块、与被测模块相关的驱动模块和桩模块共同 构成了一个构成了一个“测试环境测试环境”:软件结构图软件结构图 模块模块B B 的测试环境的测试环境棉齿攻疙豌剪研嘿谴梆褂慨汰尊缚廉抿吉鳃旦谍灼然贺腹曙溪漾胡摘簿壬软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程

86、常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹1.1.集成测试:集成测试: 将所有模块按照设计要求组装起来将所有模块按照设计要求组装起来的同时进行测试的同时进行测试2.2.集成测试的内容:集成测试的内容:发现发现与接口有关的错误与接口有关的错误 将各模块连接时,通过接口的数据是否丢失。将各模块连接时,通过接口的数据是否丢失。 不同模块的功能之间是否产生不利影响。不同模块的功能之间是否产生不利影响。 组装后,系统的功能和性能是否满足预期要求。组装后,系统的功能和性能是否满足预期要求。 全局数据的正确性。全局数据的正确性。 各模块的误差积累情况。各模块的误差积累情

87、况。喊利矾棕谗坦披派移所寿侥泵艳堡表局端咏捆氦误恐谰佬馆蛇芜肖疹剂牵软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹3.3.集成测试策略集成测试策略 : (1 1)非渐增式集成测试)非渐增式集成测试( (一次性组装一次性组装) )(2 2)渐增式集成测试:)渐增式集成测试: 边连接边测试,以随时发现连接中产生的问题。边连接边测试,以随时发现连接中产生的问题。 自顶向下集成自顶向下集成 自底向上集成自底向上集成 遇育效普棕僳淹咨忠挂信朵舷绅咀枉伶姿巳牧锗散桩蚜

88、蔽译揣瓜捅肪零啡软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹渐增式集成测试策略的选择渐增式集成测试策略的选择 自顶向下集成测试与自底向上集成测试各有优缺点,自顶向下集成测试与自底向上集成测试各有优缺点, 其中一种策略的优点就是另一种策略的缺点。其中一种策略的优点就是另一种策略的缺点。 将两种渐增式策略组合起来是一种最好的折衷,这将两种渐增式策略组合起来是一种最好的折衷,这 种折衷策略是:种折衷策略是:在程序结构的高层使用自顶下向策略,在程序结构的高层使用

89、自顶下向策略, 而在低层则使用自底向上策略而在低层则使用自底向上策略,这种测试策略也称为三,这种测试策略也称为三 明治测试(明治测试(sandwichtesting)。)。予丢醚斡绑片童洼始恤贴夏南托共苑枚档租已炭胃锚巫劣十跃所朱驱虾火软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹集成测试时集成测试时, ,应特别关注应特别关注关键模块关键模块的测试。关键模块应的测试。关键模块应 尽早测试,回归测试时也应集中在关键模块的功能上。尽早测试,回归测试时也应集中在

90、关键模块的功能上。 关键模块是指具有下列一个或多个特征的模块:关键模块是指具有下列一个或多个特征的模块: 1 1)与多个软件需求有关;)与多个软件需求有关; 2 2)含有高层控制(位于程序结构的高层);)含有高层控制(位于程序结构的高层); 3 3)本身是复杂的或是容易出错的;)本身是复杂的或是容易出错的; 4 4)含有确定的性能需求。)含有确定的性能需求。掷尚把束粱放对仪童层砰桨懦罕凋蜕兵话赂气义疼到稳园痕肛汲姿组何险软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院

91、卢卢 莹莹自顶向下渐增式集成测试步骤自顶向下渐增式集成测试步骤1.1.测试主模块(其直属下层模块用存根模块代替)测试主模块(其直属下层模块用存根模块代替)2.2.采用采用深度优先(或广度优先)策略深度优先(或广度优先)策略,逐步用实际模块替换,逐步用实际模块替换 存根模块(同时用新的存根模块代替实际模块的直接下属存根模块(同时用新的存根模块代替实际模块的直接下属 模块),与已测试模块组成新的子系统。模块),与已测试模块组成新的子系统。3.3.进行回归测试进行回归测试 回归测试:回归测试: 相对原始测试而言,部分或全部重复已经进行过的测试相对原始测试而言,部分或全部重复已经进行过的测试 4.4.

92、判断所有模块是否组装到系统中(结束测试或转到判断所有模块是否组装到系统中(结束测试或转到2 2执行)执行)沛痉恒窒黔鸯蹭倍溜糊痊股醛饵虹誓寨撑沼档歌报窝祷羚咳轨杖镍缺琵革软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹ABCDEF软件结构软件结构As1s2s3测试测试AABs2s3E加入加入EABs2s3s4加入加入BABCDEF加入加入FABCDEs5加入加入DABCs3E加入加入C自顶向下渐增式组装(深度优先)自顶向下渐增式组装(深度优先) 绿阴赊霍摔向

93、朝霜阵乓靖淡皋摇喳实懦燃史孰孪统报矫寡惯骡麓煎它匣揍软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹自底向上渐增式测试步骤自底向上渐增式测试步骤1.1.把底层模块组合成若干个实现某个特定子功能的簇(为每把底层模块组合成若干个实现某个特定子功能的簇(为每 个子功能簇设计驱动模块,协调测试数据的输入和输出),个子功能簇设计驱动模块,协调测试数据的输入和输出), 对各子功能簇分别进行测试对各子功能簇分别进行测试2.2.用实际模块代替驱动模块组装成更大的子功能簇(需

94、为用实际模块代替驱动模块组装成更大的子功能簇(需为 新增实际模块设计相应驱动模块),进行测试新增实际模块设计相应驱动模块),进行测试3.3.判断是否组装到主模块(结束测试或转到判断是否组装到主模块(结束测试或转到 2 2 执行)执行) 菊襟排零规豺批串夹纹汀物腿左凄氨摹型吞羊惨零哨寺仍屎淖琢衔东姥对软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹自底向上渐增式测试示例自底向上渐增式测试示例McMaMb簇簇1簇簇2簇簇3D1D3D2驱动模块驱动模块簇簇4簇簇5

95、王窖弟框术即匹脯哇肌板戍八斯间略眶租函裹峨熔弘乡氦娟府毗蛊泥汁弃软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹ABCDEF软件结构软件结构自底向上渐增式组装自底向上渐增式组装 d1Ed2Cd3F(1)Bd4BEd5DF(2)ABCDEF系统结构系统结构(3)灵厌参炎坷讯丹硕束赘洁蕉君抿稍埃罐肺知穗冯框患页袒挨导乳临僵坐诊软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学

96、信息科学与工程学院信息科学与工程学院 卢卢 莹莹1 1、确认测试:、确认测试: 验证软件的有效性(功能和性能等)是否与用户的要求验证软件的有效性(功能和性能等)是否与用户的要求 一致,即一致,即软件是否满足需求规格说明书中的确认标准软件是否满足需求规格说明书中的确认标准。l l确认测试确认测试使用黑盒测试方法使用黑盒测试方法 2 2、确认测试的具体内容:、确认测试的具体内容: (1 1)系统的功能、性能)系统的功能、性能 (2 2)人机界面)人机界面 (3 3)可移植性、兼容性、错误恢复能力)可移植性、兼容性、错误恢复能力 (4 4)可维护性)可维护性 (5 5)文档的完整、准确)文档的完整、

97、准确碱资页赫撼痴煌乍唇得琵御睬裁呜写艺莆磺窖八嚣弗铭屎邹阎祭咋浪吊线软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹4 4、用户参与确认测试用户参与确认测试3 3、确认测试的另一项任务:软件配置复查确认测试的另一项任务:软件配置复查 软件配置复查的目的是保证软件配置的所有成分都齐全,软件配置复查的目的是保证软件配置的所有成分都齐全, 各方面的质量都符合要求,具有维护阶段所必需的细节。各方面的质量都符合要求,具有维护阶段所必需的细节。l l测试与测试与测试测试

98、(1 1)测试(模拟测试):测试(模拟测试): 在开发场所和开发人员指导下模拟实际运行环境在开发场所和开发人员指导下模拟实际运行环境 和用户进行测试和用户进行测试(2 2)测试(现场测试):测试(现场测试): 组织典型用户在实际使用环境下进行测试组织典型用户在实际使用环境下进行测试矿啼运吴周鲸跟廷垣诵痊炯旱欧罪揩诗爬介钡没檀傅谍计扭富埠娜裸砸台软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹1 1调试的任务:调试的任务: 在测试的基础上,进一步诊断和改正程序

99、中潜在的在测试的基础上,进一步诊断和改正程序中潜在的 错误。错误。2 2调试过程:调试过程:(图(图5.105.10) 确定程序中可疑错误的确切性质和位置;确定程序中可疑错误的确切性质和位置; 对程序对程序( (设计,编码设计,编码) )进行修改,排除这个错误。进行修改,排除这个错误。焊扩科十惩熬堪长持再搅优焙绪季键禽怔悉趋膛皱虹恿缴衫泉亡剑铂晴谚软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹3 3调试途径:调试途径:(1 1)强行排错:)强行排错: 打印

100、部分信息打印部分信息 使用程序调试工具使用程序调试工具(2 2)回溯法排错:)回溯法排错: 从发现症状的位置沿程序控制流向回追溯源代码,从发现症状的位置沿程序控制流向回追溯源代码, 直到找到错误根源。直到找到错误根源。钉顽脯攻住愈堪醇客求它就婴乳咨近挪品艾荡坟举闺疟澡酮饵巢使也耐惨软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹(3 3)原因排除法:)原因排除法: 对分查找法对分查找法 归纳法:归纳法: 从一些错误征兆入手,分析它们之间的关系找出错误。从一些

101、错误征兆入手,分析它们之间的关系找出错误。 l l分析后提出假设分析后提出假设 l l证明假设证明假设 演绎法:演绎法: 提出可能的出错假设;排除不正确的假设;改进剩余的假设;提出可能的出错假设;排除不正确的假设;改进剩余的假设; 证明假设证明假设 述莱润缓侥霜辱邯纳叶投兄茨歧葫虽蓬站坷疲滤坞积砌拌拴蕊仙达扯家捌软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹 5.7.1 5.7.1 基本概念基本概念 5.7.2 5.7.2 估算平均无故障时间的方法估算平均

102、无故障时间的方法它齐养瘫翌位垄画羞托黑粹毙冈沽贴谅唇篱厂毙龟残蜘批擂舷掸殷慰瘫招软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹 1 1软件可靠性:软件可靠性: 程序在给定的时间间隔内,按照规格说明书的规定程序在给定的时间间隔内,按照规格说明书的规定 成功地运行的概率。成功地运行的概率。 l l可靠性随着给定的时间间隔的加大而减少可靠性随着给定的时间间隔的加大而减少 错熏育庭青妈纠纫奴凹咋耳袱烈拌津清使孙氛孤搏懊艘憾馅盾匹属玉懦鳖软件工程5ppt课件软件工程

103、5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹 2 2软件的可用性:软件的可用性: 程序在给定的时间点,按照规格说明书的规定程序在给定的时间点,按照规格说明书的规定 成功地运行的概率。成功地运行的概率。 l l可靠性与可用性的区别:可靠性与可用性的区别: 可靠性意味着在可靠性意味着在0 0到到t t时间间隔时间间隔内系统没有失效内系统没有失效 可用性意味着在可用性意味着在时刻时刻t t,系统是正常运行的,系统是正常运行的节份事毅允沧抓震仅魂租塌钝入绽挨几锨乏音晶隋讫操芝嫩愿沿苑氓桅巫

104、软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹l l系统的稳态可用性系统的稳态可用性A ASSSS: 如果在一段时间内,软件系统故障停机时间分别为如果在一段时间内,软件系统故障停机时间分别为t td1d1,t td2d2, 正常运行时间分别为正常运行时间分别为t tu1u1,t tu2u2,则:,则: (5.15.1)其中其中l l如果引入系统如果引入系统平均无故障时间平均无故障时间MTTFMTTF和和平均维修时间平均维修时间MTTRMTTR的概念,的概念

105、, 则:则: (5.25.2) MTTRMTTR:修复一个故障平均需要用的时间:修复一个故障平均需要用的时间 MTTF:MTTF:系统成功运行的平均时间系统成功运行的平均时间坤烘谎驶迸丽秉勘啤阳衅揣啦铭穷稻极家涂际慷怯痒霹医苗贵危猿缉颁潭软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹 1.1.估算平均无故障时间:估算平均无故障时间: MTTFMTTF (5.55.5)ET:测试之前程序中错误总数:测试之前程序中错误总数 IT:程序长度(机器指令总数)程序长

106、度(机器指令总数)Ec():0到到期间改正的错误数期间改正的错误数K:经验常数经验常数躬萨蜀练伺呢凶赶稍澈狡橙净扔椎拎牧绘价弧曳诧堪防诛绿壬羽安悄滚顾软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹2.2.估计程序中错误总数的方法估计程序中错误总数的方法( (分别测试法分别测试法) ): 在测试早期在测试早期, ,由甲、乙两个测试员分别测试同一程序由甲、乙两个测试员分别测试同一程序 的两个副本的两个副本, ,表示测试时间表示测试时间l l假定假定: :=0时

107、时:错误总数为错误总数为B0=t1时时:甲发现错误数为甲发现错误数为B1;乙发现错误数为乙发现错误数为B2;甲和乙发现的相同错误数为甲和乙发现的相同错误数为bc l l程序中错误总数为程序中错误总数为: (5.8): (5.8)诛餐晃发憨扩礁背郴瓢嘻报率同滨矽摆以冲毕适芬半蔫的见建恕淆榜庭置软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹例例1:1:由甲、乙各自独立测试一个由甲、乙各自独立测试一个2400024000条指令的程序。经过一个月测试后,条指令的程

108、序。经过一个月测试后, 甲发现并改正甲发现并改正2020个错误,个错误,MTTFMTTF达到达到10h10h;乙发现;乙发现2424个错误,其中的个错误,其中的6 6个个 甲也发现了。以后由甲一个人继续测试该程序。甲也发现了。以后由甲一个人继续测试该程序。 (1 1)刚开始测试时,程序中共有多少个潜藏错误?)刚开始测试时,程序中共有多少个潜藏错误? (2 2)为使)为使MTTFMTTF达到达到60h60h,必须再改正多少个错误?,必须再改正多少个错误?解解:(1 1)根据)根据分别测试法公式(分别测试法公式(5.85.8), ,可知:可知: B1=20 B1=20、B2=24B2=24、b b

109、c c= 6= 6 故故错误总数(错误总数(24246 6)20208080(个)(个)(2 2)由)由公式(公式(5.5)5.5)和甲测试数据:和甲测试数据:10102400024000(K (K (80-20)(80-20) 求得求得K=40K=40。 为使为使MTTFMTTF达到达到60h,60h,由由公式(公式(5.5)5.5):60=24000/(40:60=24000/(40(80-Ec)(80-Ec) 求得求得Ec=70(Ec=70(个个),),即即总共须改正总共须改正7070个错误才能使个错误才能使MTTFMTTF达到达到60h60h。 又因为:甲已经改正又因为:甲已经改正20

110、20个错误;所以个错误;所以还须改正还须改正5050个错误个错误。酵充啃绰恭目窝策渣综请洒振为瘫挖骂吩穗拒基秃屏构粤贞簿卧野嫌威搔软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹例例2:2:对一个包括对一个包括1000010000条机器指令的程序条机器指令的程序, ,进行一个月集成测试后进行一个月集成测试后, ,共改正共改正1515个错误个错误, , 此时此时MTTF=10h;MTTF=10h;进行两个月测试后进行两个月测试后, ,总共改正总共改正2525个

111、错误个错误, , 此时此时MTTF=15hMTTF=15h。 (1 1)确定)确定MTTFMTTF与测试时间之间的函数关系;并画出函数曲线与测试时间之间的函数关系;并画出函数曲线 (解决此问题时,需要做什么假设?)(解决此问题时,需要做什么假设?) (2 2)为做到)为做到MTTFMTTF100h100h,必须进行多长时间的集成测试?,必须进行多长时间的集成测试? 集成测试结束时,总共改正了多少个错误?程序中还剩多少潜伏错误?集成测试结束时,总共改正了多少个错误?程序中还剩多少潜伏错误?解解:(1 1)假设假设MTTFMTTF和测试时间和测试时间t t之间存在线性关系:之间存在线性关系:MTT

112、FMTTFa+bta+bt 由题目:由题目:t t1 1,MTTFMTTF1010; t t2 2,MTTFMTTF1515; 得到:得到: 10 10a+b a+b 15 15a+2ba+2b 解得:解得:a a5, b5, b5 5 l故故MTTFMTTF与测试时间与测试时间t t之间的函数关系为之间的函数关系为:MTTFMTTF5+5t5+5t l相应的函数曲线:相应的函数曲线:锦淫窖脂嚷哭怖咀认访果暖草艘帮蛹歼者媒涨卷垛宅糜写愿泻忻锯俞咽撮软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与

113、工程学院信息科学与工程学院 卢卢 莹莹例例2:2:对一个包括对一个包括1000010000条机器指令的程序条机器指令的程序, ,进行一个月集成测试后进行一个月集成测试后, ,共改正共改正1515个错误个错误, , 此时此时MTTF=10h;MTTF=10h;进行两个月测试后进行两个月测试后, ,总共改正总共改正2525个错误个错误, , 此时此时MTTF=15hMTTF=15h。 (1 1)确定)确定MTTFMTTF与测试时间之间的函数关系;并画出函数曲线与测试时间之间的函数关系;并画出函数曲线 (解决此问题时,需要做什么假设?)(解决此问题时,需要做什么假设?) (2 2)为做到)为做到MT

114、TFMTTF100h100h,必须进行多长时间的集成测试?,必须进行多长时间的集成测试? 集成测试结束时,总共改正了多少个错误?程序中还剩多少潜伏错误?集成测试结束时,总共改正了多少个错误?程序中还剩多少潜伏错误?解解:(2 2)为使为使MTTFMTTF100h100h,由,由1001005+5t5+5t求得:求得:t t1919(月);(月); 即即需进行需进行1919个月集成测试个月集成测试。 由由公式(公式(5.55.5)和题目得:和题目得: 10 101000010000(K K(E ET T1515) 15 151000010000(K K(E ET T2525) 解得:解得: E

115、ET T4545(个),(个),K K33.3333.33 当当MTTFMTTF100h100h时:时:10010010000 10000 (33.3333.33(4545E EC C(19)(19)) 求得求得E EC C(19)(19)4242(个)(个) 故:故:当测试结束时,共改正当测试结束时,共改正4242个错误;还剩(个错误;还剩(45-42)=345-42)=3个潜伏错误个潜伏错误漏酒库尘脐浊橡给懂屉攒茫阎茧栏区似桂惟但蹿耍慌切名尼涂绎瓤蓬考咏软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学

116、信息科学与工程学院信息科学与工程学院 卢卢 莹莹深度优先测试次序:深度优先测试次序:M1、M2、M5、M8、M6、M3、M7、M4广度优先测试次序:广度优先测试次序:M1、M2、M3、M4、M5、M6、M7、M8M2M3M4M7M1M6M5M8抚团饶锭百始账翁阻妓汪该排故趴皖棠汛什营纤爽芍影譬凶兹蔷颐叶典裴软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与工程学院 卢卢 莹莹系统测试系统测试的种类很多,每种测试都有不同的目的,它们的种类很多,每种测试都有不同的目的,它们从不同的角

117、度测试从不同的角度测试计算机系统是否被正常地集成,并完计算机系统是否被正常地集成,并完成相应的功能成相应的功能。常用的常用的系统测试种类系统测试种类包括:包括:恢复测试(恢复测试(recoverytesting)安全测试(安全测试(securitytesting)压力测试(压力测试(stresstesting)性能测试(性能测试(performancetesting)茵侵扔许源驶辅帖魔宜卯押醒郊睫支札红捉牛虎书霞酬婶艇穴峰敖为费煤软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工程学院信息科学与

118、工程学院 卢卢 莹莹恢复测试恢复测试是通过各种手段,强制软件发生故障,然后来是通过各种手段,强制软件发生故障,然后来 验证系统能否在指定的时间间隔内恢复正常,包括修正验证系统能否在指定的时间间隔内恢复正常,包括修正 错误并重新启动系统。错误并重新启动系统。安全测试安全测试用来验证集成在系统中的保护机制能否保护系用来验证集成在系统中的保护机制能否保护系 统不受非法侵入。统不受非法侵入。棺径痒植硼段莽醚乐墒怎癸弦厢攀验排糯则皱杂拧糟郭迅僳窑搅居两导嫂软件工程5ppt课件软件工程5ppt课件软件工程概论教程软件工程概论教程软件工程概论教程软件工程概论教程 常州大学常州大学常州大学常州大学信息科学与工

119、程学院信息科学与工程学院 卢卢 莹莹压力测试压力测试也称也称强度测试强度测试,它是在一种需要非正常数量、,它是在一种需要非正常数量、 频率或容量的方式下执行系统,其目的是检查系统对频率或容量的方式下执行系统,其目的是检查系统对 非正常情况的承受程度。非正常情况的承受程度。性能测试性能测试用来测试软件在集成的系统中的运行性能。用来测试软件在集成的系统中的运行性能。 它对实时系统和嵌入式系统尤为重要。性能测试常常它对实时系统和嵌入式系统尤为重要。性能测试常常 需要与压力测试结合起来进行。需要与压力测试结合起来进行。捌知藕钦洒排镜诈获壹蔚酉辈遗赁芹运孜苇勒尸苞柠赚攘昂亮茧盟猜来代软件工程5ppt课件软件工程5ppt课件

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号