第7讲软件测试.ppt

上传人:本田雅阁 文档编号:3132464 上传时间:2019-07-15 格式:PPT 页数:43 大小:595.52KB
返回 下载 相关 举报
第7讲软件测试.ppt_第1页
第1页 / 共43页
第7讲软件测试.ppt_第2页
第2页 / 共43页
第7讲软件测试.ppt_第3页
第3页 / 共43页
第7讲软件测试.ppt_第4页
第4页 / 共43页
第7讲软件测试.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《第7讲软件测试.ppt》由会员分享,可在线阅读,更多相关《第7讲软件测试.ppt(43页珍藏版)》请在三一文库上搜索。

1、第7讲 软件测试,毛新军 教授 计算机科学与技术系602教研室 0731-(45)73649,软件工程导论 之,用工程化的方法来开发软件,Copyright Xinjun Mao,软件测试,2,序言,初步的软件系统存在错误,如何: 发现错误? 纠正错误? 软件测试是软件质量保证活动中关键步骤 对SRS、设计规格说明书以及编码的最后复审 其工作量往往占软件开发总工作量的40%以上 软件测试是确保软件质量的一种有效 (可操作)手段 软件测试有其特殊性和规律 因为软件是逻辑产品,Copyright Xinjun Mao,软件测试,3,本讲内容,基本概念 软件测试技术 软件测试策略 基于CASE的软

2、件测试和排错,Copyright Xinjun Mao,软件测试,4,软件测试的基本概念,软件错误 软件系统的功能和性能与预期的功能和性能不一致 软件测试是发现软件错误的过程,Copyright Xinjun Mao,软件测试,5,软件测试的目标,目标 发现软件中的错误,提高软件质量 注意 软件测试中没有发现错误并不意味着软件就没有错误 = 测试不充分, 潜在错误不能发现,Copyright Xinjun Mao,软件测试,6,软件测试的信息流程,软件测试思想 数据处理 设计测试用例 判断结果,Copyright Xinjun Mao,软件测试,7,软件测试方法,二种测试方法 白盒测试 黑盒测

3、试,Copyright Xinjun Mao,软件测试,8,白盒测试,思想 已知程序内部工作流程,通过测试检验程序内部动作是否按规格说明书规定正常运作 依据 程序的内部逻辑结构,针对程序的逻辑路径设计测试用例 特点 必须了解程序的内部工作流程,Copyright Xinjun Mao,软件测试,9,黑盒测试,思想 根据已知程序的功能和性能(而不是内部细节),通过测试检验每个功能和性能是否正常 依据 程序的功能和性能描述 特点 知道程序的功能和性能,不必了解程序的内部结构和处理细节,Copyright Xinjun Mao,软件测试,10,软件测试步骤,软件开发 从高抽象层次向低层次抽象过渡 软

4、件测试 从低层次抽象向高层次抽象过渡 软件测试的层次 单元测试:测试程序中每个模块是否有错误(白盒) 集成测试:测试软件总体结构是否有错误(黑盒) 确认测试:测试软件是否满足用户需求(黑盒),Copyright Xinjun Mao,软件测试,11,需求分析,概要设计,详细设计,编码,单元测试,集成测试,确认测试,软件开发过程,软件测试过程,软件开发活动和软件测试活动间的关系,Copyright Xinjun Mao,软件测试,12,本讲内容,基本概念 软件测试技术 软件测试策略 基于CASE的软件测试和排错,Copyright Xinjun Mao,软件测试,13,软件测试技术,白盒测试 白

5、盒测试是根据程序的控制结构来设计测试用例,Copyright Xinjun Mao,软件测试,14,白盒测试,要设计多少测试用例? 覆盖准则 语句覆盖 分支覆盖 路径覆盖: 程序通道 基本路径覆盖,Copyright Xinjun Mao,软件测试,15,基本路径测试的思想,基本路径 至少引入一个新语句或者新判断的程序通道 思想 路径 = 基本路径 = 基本路径测试 前提 软件模块的逻辑结构(流程图) 如何设计测试用例确保基本路径覆盖 = 哪些基本路径 = 流图 = 流程图,Copyright Xinjun Mao,软件测试,16,流程图和流图示意图,Copyright Xinjun Mao,

6、软件测试,17,步骤1:根据程序逻辑画出流程图,void Func(int nPosX, int nPosY) while (nPosX 0) int nSum = nPosX + nPosY; if (nSum 1) nPosX-; nPosY-; else if (nSum -1) nPosX -= 2; else nPosX -= 4; / end of while ,Copyright Xinjun Mao,软件测试,18,步骤2:将流程图转换为流图(1/2),流图刻画了程序的控制结构但不涉及程序的过程性细节 节点(过程块,结合点,判定点) 有向边 判定点不含复合条件,否则应按照下列方

7、式增加判定点,Copyright Xinjun Mao,软件测试,19,步骤2:将流程图转换为流图(2/2),Copyright Xinjun Mao,软件测试,20,步骤3:确定基本路径的集合(1/2),基本路径 流图Cyclomatic复杂度正好是基本路径的数目 V(G) = E N + 2 V(G) = 11 - 9 + 2 = 4,Copyright Xinjun Mao,软件测试,21,步骤3:确定测试路径的集合(2/2),1 - 11 1 - 2, 3 - 6 - 7 - 9 - 10 - 1 - 11 1 - 2, 3 - 4, 5 - 10 - 1 - 11 1 - 2, 3

8、- 6 - 8 - 9 - 10 - 1 - 11,Copyright Xinjun Mao,软件测试,22,void Func(int nPosX, int nPosY) while (nPosX 0) int nSum = nPosX + nPosY; if (nSum 1) nPosX-; nPosY-; else if (nSum -1) nPosX -= 2; else nPosX -= 4; / end of while ,Copyright Xinjun Mao,软件测试,23,步骤4:针对测试路径设计测试用例,1-11 nPosX 取-1, nPosY取任意值 1 - 2, 3

9、 - 4, 5 - 10 - 1 - 11 nPosX 取1, nPosY取1 1- 2, 3 - 6 - 7 - 9 - 10 - 1 11 nPosX 取1, nPosY取-1 1- 2, 3 - 6 - 8 - 9 - 10 - 1 - 11 nPosX 取1, nPosY取-3,Copyright Xinjun Mao,软件测试,24,void Func(int nPosX, int nPosY) while (nPosX 0) int nSum = nPosX + nPosY; if (nSum 1) nPosX-; nPosY-; else if (nSum -1) nPosX -

10、= 2; else nPosX -= 4; / end of while ,Copyright Xinjun Mao,软件测试,25,黑盒测试,黑盒测试技术 测试软件是否满足功能和性能要求,它不涉及模块的内部过程性细节 主要的黑盒测试技术 等价分类法 边界分类法,Copyright Xinjun Mao,软件测试,26,等价分类法(1/2),思想 把程序的输入数据集合按输入条件划分为若干个等价类,每一个等价类对于输入条件而言为一组有效或者无效的输入,然后为每一个等价类设计一个测试用例 优点 减少测试次数,不丢失发现错误的机会,Copyright Xinjun Mao,软件测试,27,等价分类法

11、(2/2),输入条件为一范围 划分出三个等价类:(1) 有效等价类(在范围内),(2) 大于输入最大值,(3)小于输入最少值 输入条件为一值 划分为三个等价类: (1) 有效,(2) 大于,(3) 小于 输入条件为集合 划分二个等价类: (1) 有效(在集合内),(2) 无效(在集合外) 输入条件为一个布尔量 划分二个等价类,(1) 有效(此布尔量),(2)无效(布尔量的非),Copyright Xinjun Mao,软件测试,28,等价分类法例子,z = func(x, y): 当 0 x 1024 并且 y = 0, z = -1 否则,z = x * lg(y) 关于x的等价类: (0,

12、 1024), (-#, 0, 1024, +#) 关于y的等价类: 0, (-#, 0), (0, +#),测试用例: 9个 , , ; , , ; , , ,Copyright Xinjun Mao,软件测试,29,边界值分析法,输入条件是一范围(a,b) a,b以及紧挨a,b左右的值应作为测试用例 输入条件为一组数 选择这组数的最大者和最小者,次大和次小者作为测试用例 如果程序的内部数据结构是有界的 应设计测试用例使它能够检查该数据结构的边界,Copyright Xinjun Mao,软件测试,30,本讲内容,基本概念 软件测试技术 软件测试策略 基于CASE的软件测试和排错,Copyr

13、ight Xinjun Mao,软件测试,31,单元测试,对软件的最小单元模块进行测试多采用白盒测试 (1) 模块接口测试 (2) 模块局部数据结构测试 (3) 模块独立执行路径测试 (4) 模块中各条错误处理通道测试 (5) 模块边界条件测试,Copyright Xinjun Mao,软件测试,32,单元测试(续),Copyright Xinjun Mao,软件测试,33,集成测试,模块相互调用时引入接口问题 = 集成测试 集成测试方法 (1) 自顶向下集成 从目标软件系统的主控模块开始,按照软件的控制层次结构,以深度优先或者广度优先的策略把各个模块集成在一起进行测试 (2) 自底向上集成

14、从软件结构最底层模块开始自底向上进行组装和测试,Copyright Xinjun Mao,软件测试,34,集成测试例子,Copyright Xinjun Mao,软件测试,35,确认测试,任务 判断目标软件系统是否满足用户的功能和性能需求; 文档资料是否完整、准确 依据和标准 软件需求规格说明书 确认测试的类型 测试 测试,Copyright Xinjun Mao,软件测试,36,排错(1/2),测试是为了发现错误,当发现错误后就要将它改正,改正错误主要依靠排错技术 排错过程,Copyright Xinjun Mao,软件测试,37,排错(2/2),排错方法 原始法 回溯法 排除法 基于归纳和

15、演绎的方法:收集与出错有关的所有数据,假想一组出错的原因,用这组数据证明或者反驳之,Copyright Xinjun Mao,软件测试,38,本讲内容,基本概念 软件测试技术 软件测试策略 基于CASE的软件测试和排错,Copyright Xinjun Mao,软件测试,39,基于CASE的软件测试和排错,静态分析器 通过静态的扫描源程序,找出可能导致程序出错的异常情况 代码审查器 检查源程序代码是否满足最基本的代码标准 断言处理器 检查程序员关于程序行为的断言在程序执行过程中是否成立 测试数据产生器,Copyright Xinjun Mao,软件测试,40,软件测试和软件调试,目的 发现错误

16、;定位和纠正错误 独立性 可有独立的测试小组进行;必须由开发人员完成,Copyright Xinjun Mao,软件测试,41,本讲小结,基本概念(软件测试的概念、目标, 方法和过程等) 软件测试技术(白盒和黑盒软件测试方法) 软件测试策略(步骤,方法等) 基于CASE的软件测试和排错,Copyright Xinjun Mao,软件测试,42,思考题,思考题 只要设计足够多的测试用例,软件测试是否完全可以发现软件中的所有错误?,Copyright Xinjun Mao,软件测试,43,Q & A,An Introduction to Software Engineering,Practice, Practice, and Practice,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1