Ch3-软件测试方法-STMT

上传人:豆浆 文档编号:24825232 上传时间:2017-12-07 格式:PPT 页数:59 大小:1.68MB
返回 下载 相关 举报
Ch3-软件测试方法-STMT_第1页
第1页 / 共59页
Ch3-软件测试方法-STMT_第2页
第2页 / 共59页
Ch3-软件测试方法-STMT_第3页
第3页 / 共59页
Ch3-软件测试方法-STMT_第4页
第4页 / 共59页
Ch3-软件测试方法-STMT_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《Ch3-软件测试方法-STMT》由会员分享,可在线阅读,更多相关《Ch3-软件测试方法-STMT(59页珍藏版)》请在金锄头文库上搜索。

1、软件测试方法和技术第2版第3章 软件测试的方法,第2章回顾,软件缺陷是软件质量的对立面软件缺陷(Bug)是什么验证和确认软件测试的分类和阶段- 单元、集成、系统(性能、适用性、兼容性)、验收测试软件测试的工作范畴- 策略、计划、设计、执行、报告、评估,第3章 软件测试的方法,3.1 白盒测试方法3.2 黑盒测试方法3.3 静态测试和动态测试3.4 主动测试和被动测试3.5 形式化测试方法3.6 基于风险的测试3.7 模糊测试方法3.8 ALAC测试和随机测试方法,方法论和具体方法,从方法论看,更多体现了一种哲学的思想,例如辩证统一的方法,在测试中有许多对立统一体,如静态测试和动态测试、白盒测试

2、和黑盒测试、自动化测试和手工测试等。软件测试的方法论来源于软件工程的方法论,例如有面向对象的开发方法,就有面向对象的测试方法;有敏捷方法,就有和敏捷方法对应的测试方法。,黑盒子和白盒子,功能测试数据驱动测试,结构测试逻辑驱动测试,静态的和动态的,运行程序,自动测试和手工测试,手工模拟用户操作,3.1白盒测试方法,3.1.1 语句覆盖3.1.2 判定覆盖3.1.3 条件覆盖3.1.4 判定条件覆盖3.1.5 条件组合覆盖3.1.6 路径覆盖3.1.7 基本路径测试法,白盒测试方法,逻辑覆盖:以程序的内部逻辑结构为基础,分为语句覆盖、判定覆盖、判定-条件覆盖、条件组合覆盖等基本路径测试:在程序控制

3、流程的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。,3.1.1 语句覆盖,语句覆盖法的基本思想是设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次如果是顺序结构,就是让测试从头执行到尾如果有分支、条件和循环,需要利用下面的方法,执行足够的测试覆盖全部语句,3.1.2 判定覆盖,判定覆盖法的基本思想是设计若干用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。一个判定往往代表着程序的一个分支, 所以判定覆盖也被称为分支覆盖。,3.1.3 条件覆盖,条件覆盖的基本思想是设计若干测试用例,执行被测程序以后

4、,要使每个判断中每个条件的可能取值至少满足一次。,(iN) and (result=maxint),TrueFalse,result=maxint,ib) AND (c(a+b+c)测试发现的错误:布尔操作符 关系操作符布尔变量 算术表达式布尔括弧,3.1.4 判定条件覆盖,判定-条件覆盖是判定和条件覆盖设计方法的交集,即设计足够的测试用例,使得判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次,3.1.5 条件组合测试,条件组合覆盖的基本思想是设计足够的测试用例,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次。它与条件覆盖的差别

5、是它不是简单地要求每个条件都出现“真”与“假”两种结果,而是要求让这些结果的所有可能组合都至少出现一次,3.1.6 路径测试,顾名思义,路径覆盖就是设计所有的测试用例,来覆盖程序中的所有可能的执行路径。,3.1.7 基本路径测试,依据代码绘制流程图确定流程图的圈复杂度(cyclomatic complexity )确定线性独立路径的基本集合( basis set )设计测试用例覆盖每条基本路径,示例 源代码,Procedure: process records1.Do While records remain2.Read record;3.If record field 1 = 0 Then4

6、.store in buffer;5.increment counter;6.Else If record field 2 = 0 Then7.reset counter;8.Else store in file;9.End If10.End If11.End DoEnd,示例 流程图,1,9,10,11,2,4,5,7,8,3,6,V(G) = 4,基本路径测试:流程图简化,1,2,3,4,5,10,11,流程图的圈复杂度,V(G) = 区域数量(由节点、连线包围的区域,包括图形外部区域) V(G) = 连线数量 - 节点数量 + 2 V(G) = 简单可预测节点数量 + 1,圈复杂度(Cy

7、clomatic complexity):代码逻辑复杂度的 度量,提供了被测代码的路径数量。复杂度越高,出错的概率越大,流程图复杂度例子,V(G)=4,Region 4,确定线性独立的路径集合,独立路径: 至少引入一系列新的处理语句或条件的任何路径 基本集: 由独立路径构成的集合 由基本集导出的测试用例,保证每行代码语句至少被执行一次基本集合不一定唯一,Path1: 1-2-3-6-7-9-10-1-11,示例:基本路径测试用例,Path2: 1-2-3-6-8-9-10-1-11,Path3: 1-2-3-4-5-10-1-11,Path4: 1-11,测试用例覆盖集合中每条路径,基本路径测

8、试并不是测试所有路径的组合,仅仅保证每条基本路径被执行一次,不需要活动图, 但最好绘制程序流程图 计算每个逻辑测试,也就是布尔操作符数加1 最好每个单元都进行基本路径测试,对关键组件则是必要的,目标: 在循环内部及边界上执行测试,循环测试 1,1.简单循环(迭代次数n) 完全跳过循环 只经过循环一次 经过循环两次 经过循环m( m n )次 分别经过循环n-1, n, n+1 次,循环测试 2,2. 嵌套(Nested)循环在最里面的循环完成前面所述的简单循环测试,同时设定外部循环的最小迭代次数逐步向外循环进行直到所有循环被测试,循环测试 3,其它非结构循环重新设计!,3. 串行连接的循环独立

9、循环 可以分别看着简单循环测试依赖性循环 可以看着是嵌套循环,3.2 黑盒测试方法,3.2.1 等价类划分法3.2.2 边界值分析法3.2.3 判定表方法3.2.4 因果图法3.2.5 正交试验法3.2.6 功能图法3.2.7 错误推测法,3.2.1 等价类划分方法,将程序可能的输入数据分成若干个子集,从每个子集选取一个代表性的数据作为测试用例,等价类是某个输入域的子集,在该子集中每个输入数据的作用是等效的分为有效等价类和无效等价类。有效等价类是有意义的、合理的输入数据,可检查程序是否实现了规格说明中所规定的功能和性能。无效等价类与有效等价类的意义相反在分析需求规格说明的基础上划分等价类,列出

10、等价类表,设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验。经过正反的测试才能确保软件具有更高的可靠性。,确定等价类的方法,在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类,value,在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类,确定等价类的方法(2),not member of set,member of set,Boolean,Non-Boolean,确定等价类的方式 (3),在规

11、定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。,个人月收入- x 税率 x 101600 45%,等价类测试用例-Example,等价类1: Integer等价类2: Decimal fraction(十进制小数)等价类3: Negative(负数)等价类4: Invalid input,根据等价类创建测试用例的步骤,建立等价类表,列出所有划分出的等价类:为每个等价类规定一个唯一的编号;设计一个新的测试用例,使其尽

12、可能多地覆盖尚未覆盖的有效等价类重复c),最后使得所有有效等价类均被测试用例所覆盖;设计一个新的测试用例,使其只覆盖一个无效等价类。重复e)使所有无效等价类均被覆盖。,3.2.2 边界值分析方法,程序的很多错误发生在输入或输出范围的边界上,因此针对各种边界情况设置测试用例,可以发现不少程序缺陷。BVA Boundary Value Analysis设计方法:确定边界情况(输入或输出等价类的边界)选取正好等于、刚刚大于或刚刚小于边界值作为测试数据,确定边界值的方法,如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。如果输入条件规定了值的个数

13、,则用最大个数、最小个数、比最小个数少一、比最大个数多一的数作为测试数据。,确定边界值的方法(2),如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。,Test cases for ABS(x)绝对值函数 :class x = 0, arbitrary value x = 100classes x = 0, on boundary :x = 0classes x = 0, below and above:x = -1, x = 1,正常值(有效类): X1

14、= 123123边界值: X2 = 12345边界值: X3 = 1234567边界值: X4 = 1边界值: X5 = 0无效类的值: X6 = -123123无效类的值: X7 = asdasd其它?,BVA 示例2,测试 限制性用户输入:6位正整数,无效值: X8 = 000123,X9 = asd123 X10 = Empty,BVA 示例3,Test cases :任意的正常值: 随机选择几个选项 边界值: 选择所有选项 边界值: 一个都不选边界值: 选择一个选项,二进制,0 和 1, byte 由8 bits 构成, 字由4 bytes构成, ,ASCII Table,一些特殊的边界值,数值字符位置数量速度位置体积,First/last, First-1/Last+1Min/Max,Min-1/max+1Star/Finish, Start-1/Finish+1Empty/FullLess than empty/ more than fullSlower/FasterLargest/SmallestOver/Under, just Over/Just UnderShortest/Longest ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

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