黑盒测试用例设计技术.ppt_第1页
黑盒测试用例设计技术.ppt_第2页
黑盒测试用例设计技术.ppt_第3页
黑盒测试用例设计技术.ppt_第4页
黑盒测试用例设计技术.ppt_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

黑盒测试用例设计技术 内容提要 黑盒测试的概念: 等价类划分法 :等价类划分法测试技术是依据软件系统输入集合、输出集合 或操作集合实现功 能的相同性为依据,对其进行的子集划分,并对每个子集产生一个测试用 例的测试用例设计方法。 边界条件法 :等价类划分法的扩张。 决策表法:决策表是分析和表达多逻辑条件下执行不同操作情况的工具,它 可以把复杂的逻辑关系 和多种条件组合的情况表达得既具体又明确。 因果图法:因果图是从用自然语言书写的程序规格说明的描述中找到因(输 入条件)和果(输出或 程序状态的改变),通过因果图转化为决策表。 正交表测试法:正交测试源于正交试验设计方法,是从大量的数据中挑选适 量的、有代表性的点, 从而合理地安排测试的一种科学的试验设计方法。正交测试法就是使用已 经造好了的正交表格来 安排试验并进行数据分析的一种方法。 黑盒测试的其他方法 特殊值测试:特殊值测试就是指定软件中某些特殊值 为测试用例而对软件实施的测试。 故障猜测法:根据经验和直觉猜测软件中可能存在的 各种故障,从而有针对性地编写测试这些故障 的测试用例。 随机测试:对于给定的被测软件系统和软件系统的定 义域,按照定义域中样本取值的概率,随机的 选择其样本并作为其测试数据的过程称为随机测试 。 黑盒测试 黑盒测试(Black Box Testing)又叫功能测试( Functional Testing)。 主要关注于被测软件的功能 实现,而不是内部逻辑。 在黑盒测试中,被测对象的内部结构、运作情况对 测试人员是不可见的。 测试人员对被测产品的验证主要是根据其规格,验 证其与规格的一致性。 黑盒测试发现的缺陷类型 功能错误或遗漏 界面错误 外部数据库访问错误 性能错误 初始化和终止错误 等价类划分法 等价类划分法测试技术是依据软件系统输入集合、输 出集合或操作集合实现功能的相同性为依据,对其进行的子 集划分,并对每个子集产生一个测试用例的测试用例设计方 法。 等价分配:是指分步骤地把过多(无限)的测试案例减 小到同样有效的小范围的过程。 等价类别或者等价区间是指测试相同目标或者暴露相同 软件缺陷的一组测试。 在寻找等价区间时,想办法把软件的相似输入、输出、 操作分成组。这些组是等价区间。 定义等价类的规则 如果输入集合、输出集合或操作集合规定了取值范围,或者值的个 数,则可以确定一个有效等价类和两个无效等价类; 如果输入集合、输出集合或操作集合规定了集合取值范围,或者是 规定了必要条件,这时可以确定一个有效等价类和一个无效等价类; 如果输入集合、输出集合或操作集合是一个布尔量,则可以确定 一个有效等价类和一个无效等价类; 如果输入集合、输出集合或操作集合是一组值,而软件要对每一 组值分别进行处理,这时要对每个规定的输入值确定一个等价类,而对 于这组值之外的所有值确定一个等价类; 如果规定了输入集合、输出集合和操作集合必须遵守的规则,则 可以确立一个有效等价类(即遵守规则的数据)和若干无效等价类(从 各种角度违反规则的数据)。 等价类测试 弱一般等价类测试用例 a g e d x1 x2 f bc 标准等价类测试不考虑无效数据值 等价类测试 强一般等价类测试用例 a g e d x1 x2 f bc 等价类测试 弱健壮等价类测试用例 a g e d x1 x2 f bc 等价类测试 强健壮等价类测试用例 a g e d x1 x2 f bc 练习 写出三角形问题的输入等价类和输出等价类 写出NextDate函数的输入等价类 Windows文件名可以包含除了、/:*?“。文件名长度是1- 255个字符。写出文件名创建测试用例 如何确定从数据库读取数据的等价类? R1=:边为a,b,c的等边三角形 R2=:边为a,b,c的等腰三角形 R3=:边为a,b,c的一般三角形 R4=:边为a,b,c的不能组成三角形 练 习 给出一个输出集合等价类划分的例子。假设一个销售书籍的奖励系统,销 售三种软件工程类书籍,每本书的单价不同,软件测试每本25元;程序 设计每本30元;软件工程每本40元。每月销售额不到(含)500元的部 分奖励10%,500(不含)到700元(含)元的部分为15%,超过7000元的部 分为20%。该系统生成月份销售报告,汇总售出的各类书籍的总数,总销售额 以及奖金。 S1=:销售额=500; S1=:500销售额=700 ; S1=:销售额700; 等价类测试小结 等价类测试的弱形式不如对应的强形式的测试全面 。 如果错误条件非常重要,则进行健壮性的测试是合 适的。 如果输入数据以离散值区间和集合定义,则等价类 测试是合适的。 在发现合适的等价类关系之前,可能需要进行多次 尝试。 函数测试边界值分析 边界值测试的基本原理: 错误更可能出现在输入变量的极值附近. 失效极少由两个(或多个)缺陷的同时发生引起的。单故障 Min、min、nom、max-和max。 边界条件法 边界值测试 如果函数F实现了一个程序,则输入两个变量x1 和 x2会有一些边界: a x1 b c x2 d 区间a,b和c,d是x1 和 x2的值域。 边界值分析 a d c b x2 x1 边界值分析 边界值类型的描述: 第一个/最后一个 最小值/最大值 开始/完成 超过/在内 空/满 最短/最长 最大/最小 最高/最低 相邻/最远 最慢/最快 最早/最迟 次边界值分析 次边界条件: 有些边界条件在软件内部,最终用户几乎看不到,但是软件 测试仍有必要检查。这样的边界条件称为次边界条件或者内部边 界条件。如2的乘方和ASC。 通讯软件是大量存在2的幂的内部边界条件。例如某种通讯 协议支持256条命令。软件将发送编码为一个4位数据的最 常用的15条命令。假如用到16-256条命令,软件就转而发 送编码为更长的字节的命令。 软件中的2的乘方 术语术语范围围或值值 位0或1 双位0-15 字节节0-255 字0-65,535 千1,024 兆1,048,576 十亿亿1,073,741,824 万亿亿1,009,511,627,776 部分的ASC制表 字符ASC值值字符ASC值值 Null0B66 Space32Y89 /47Z90 04891 14996 250a 97 957b 98 :58y 121 64z 122 A65123 一般边界条件法 a d c b x1 x2 健壮性边界条件法 a d c b x1 x2 最坏边界条件法 a d c b x1 x2 健壮最坏边界条件法 a d c b x1 x2 边界值分析 边界值分析的特点和局限性 对于一个n变量函数,边界值分析会产生4n1个 测试用例。 边界值的取值取决于变量本身的性质。 边界值分析对布尔变量没有什么意义。 边界值分析假设变量是完全独立的。 边界值测试 -练习 1、写出三角形问题的边界值分析测试用例 2、写出NextDate函数的最坏情况测试用例 边界值测试的小结 这类测试方法是基于一种假设:输入的变量是真正独立的。 这些方法的区别是:正常值与健壮值;单缺陷与多缺陷。 决策表法 决策表是分析和表达多逻辑条件下执行不同操作情况 的工具,它可以把复杂的逻辑关系和多种条件组合的情况 表达得既具体又明确。 在所有功能测试方法中,基于决策表的测试方法是最 严格的,因为决策表具有逻辑严格性。 决策表很适合描述不同条件集合下采取行动的若干组 合的情况。 决策表的组成 条件桩 条件项 动作桩 动作项 规则 条件桩列出了软件系统所有输入条件,列出条件的排 列顺序不会影响输出的结果。 动作桩列出了软件系统对应输入条件可能采取的操作, 这些操作的排列顺序也不会影响输出的结果。 决策表的组成 条件桩:列出了问题的所有条件。 动作桩:列出了问题规定可能采取的操作。 条件项:列出针对其左列条件的取值,在所有可能情况下 的真假值。这叫有限条目决策表(扩展条目决策表) 动作项:列出在条件项的各种取值情况下应该采取的动作。 规 则:任何一个条件组合的特定取值及其相应要执行的 操作。在决策表中贯穿条件项和动作项的一列就 是一条规则。 决策表(判定表)的建立 列出所有的条件桩和动作桩; 填入条件项; 填入动作项,制定初始判定表; 简化;合并相似规则或者相同动作。 决策表的简化 简化是以合并相似规则为目标。若表中有两条以上规则 具有相同的动作,并且在条件项之间存在极为相似的关 系,便可以合并。“-”表示与取值无关。 YY NN YN Y N - YY -N NN Y N 基于决策表的测试 桩规则1规则2规则3、 4 规则5 C1 C2 C3 T T T T T F T F F T T A1 A2 A3 X X X X X X X 基于决策表的测试 桩123456789 C1:a,b,c构成三角形 ? C2: a=b? C3: a=c? C4: b=c? N - - - Y Y Y Y Y Y Y N Y Y N Y Y Y N N Y N Y Y Y N Y N Y N N Y Y N N N A1:非三角形 A2:不等边三角形 A3:等腰三角形 A4:等边三角形 A5:不可能 X X X X X X X X X 基于决策表的测试 条件123 C1:月份在M1中? C2:月份在M2中? C3:月份在M3中? T - - - T - - - T A1 A2 M1=月份:每月有30天; M2=月份:每月有31天; M3=月份:此月是2月; A1:不可能 A2:日期增1 基于决策表的测试 条件123 C1:月份在M1中? C2:月份在M2中? C3:月份在M3中? 规则条数统计 T - - 4 - T - 4 - - T 4 A1 A2 M1=月份:每月有30天; M2=月份:每月有31天; M3=月份:此月是2月; A1:不可能 A2:日期增1 基于决策表的测试 条件1 1 1 2 1 3 1 4 2 1 2 2 2 3 2 4 3 1 3 2 3 3 3 4 C1:月份在M1中 ?C2:月份在M2 中?C3:月份在 M3中? 规则条数统计 T T T 1 T T F 1 T F T 1 T F F 1 T T T 1 T T F 1 F T T 1 F T F 1 T T T 1 T F T 1 F T T 1 F F T 1 A1 A2 M1=月份:每月有30天; M2=月份:每月有31天; M3=月份:此月是2月; A1:不可能 A2:日期增1 基于决策表的测试 条件1 1 1 2 1 3 1 4 2 3 2 4 3 4 C1:月份在M1中? C2:月份在M2中? C3:月份在M3中? 规则条数统计 T T T 1 T T F 1 T F T 1 T F F 1 F T T 1 F T F 1 F F T 1 F F F 1 A1XXX X X M1=月份:每月有30天; M2=月份:每月有31天; M3=月份:此月是2月; A1:不可能 A2:日期增1 A3:日期复位 A4:月份增1 A5:月份复位 A6:年增1 基于决策表的测试 条 件 1-456789 C1 C2 C3 T - - F T T F T F F F T F F F T F F A1 A2 A3 X - X X X - X X X - X X - - X X - X 基于决策表的测试 条 件 1-456789 C1 C2 C3 T - - F T T F T F F F T F F F T F F A1 A2 A3 X - X X X - X X X - X X - - X - X - 基于决策表的测试 M1=月份:每月有30天; M2=月份:每月有31天; M3=月份:此月是2月; D1=日期:1日期28; D2=日期:日期=29; D3=日期:日期=30; D4=日期:日期=31; Y1=年:年是闰年; Y2=年:年不是闰年。 基于决策表的测试 条件 C1:月份在M1中? C2: 月份在M2中? C3: 月份在M3中? C4:日期在D1中? C5: 日期在D2中? C6: 日期在D3中? C7: 日期在D4中? C8:年在Y1中? T T T A1:不可能 A2: NextDate 基于决策表的测试 M1=月份:每月有30天; M2=月份:每月有31天; M3=月份:此月是2月; Y1=年:年=2000; Y2=年:年是闰年; Y3=年:年是平年。 D1=日期:1日期28; D2=日期:日期=29; D3=日期:日期=30; D4=日期:日期=31; 基于决策表的测试 12345678 C1:月份在 C2:日期在 C3:年在 规则条数统计 M1 D1 - 3 M1 D2 - 3 M1 D3 - 3 M1 D4 - 3 M2 D1 - 3 M2 D2 - 3 M2 D3 - 3 M2 D4 - 3 A1:不可能 A2:日期增1 A3:日期复位 A4:月份增1 A5:月份复位 A6:年增1 X X X X X X X X X ? ? ? M1=月份:每月有30天; M2=月份:每月有31天; M3=月份:此月是2月; Y1=年:年=2000; Y2=年:年是闰年; Y3=年:年是平年。 D1=日期:1日期28; D2=日期:日期=29; D3=日期:日期=30; D4=日期:日期=31; 基于决策表的测试 91011121314151617 C1:月份在 C2:日期在 C3:年在 规则条数统 计 M3 D1 Y1 1 M3 D1 Y2 1 M3 D1 Y3 1 M3 D2 Y1 1 M3 D2 Y2 1 M3 D2 Y3 1 M3 D3 - 3 M3 D3 - 3 M3 D4 - 3 A1:不可能 A2:日期增1 A3:日期复位 A4:月份增1 A5:月份复位 A6:年增1 X X X X X X X X X X X X 基于决策表的测试 M1=月份:每月有30天; M2=月份:每月有31天,12月除外; M3=月份:此月是12月; M4=月份:此月是2月; D1=日期:1日期27; D2=日期:日期=28; D3=日期:日期=29 D4=日期:日期=30; D5=日期:日期=31; Y1=年:年是闰年; Y2=年:年不是闰年 。 基于决策表的测试 12345678910 C1:月份在 C2:日期在 C3:年在 M1 D1 - M1 D2 - M1 D3 - M1 D4 - M1 D5 - M2 D1 - M2 D2 - M2 D3 - M2 D4 - M2 D5 - A1:不可能 A2:日期增1 A3:日期复位 A4:月份增1 A5:月份复位 A6:年增1 X X X X X X X X X X X X M1=月份:每月有30天; M2=月份:每月有31天,12月除外; M3=月份:此月是12月; M4=月份:此月是2月; D1=日期:1日期27; D2=日期:日期=28; D3=日期:日期=29 D4=日期:日期=30; D5=日期:日期=31; Y1=年:年是闰年; Y2=年:年不是闰年。 基于决策表的测试 111213141516171819202122 C1:月份在 C2:日期在 C3:年在 M3 D1 - M3 D2 M3 D3 M3 D4 M3 D5 - M4 D1 - M4 D2 Y1 M4 D2 Y2 M4 D3 Y1 M4 D3 Y2 M4 D4 - M4 D5 - A1:不可能 A2:日期增1 A3:日期复位 A4:月份增1 A5:月份复位 A6:年增1 X X X X X X X X X X X X X XXX M1=月份:每月有30天; M2=月份:每月有31天,12月除外; M3=月份:此月是12月; M4=月份:此月是2月; D1=日期:1日期27; D2=日期:日期=28; D3=日期:日期=29 D4=日期:日期=30; D5=日期:日期=31; Y1=年:年是闰年; Y2=年:年不是闰年。 基于决策表的测试 1-3456-910 C1:月份在 C2:日期在 C3:年在 M1 D1-D3 - M1 D4 - M1 D5 - M2 D1-D4 - M2 D5 - A1:不可能 A2:日期增1 A3:日期复位 A4:月份增1 A5:月份复位 A6:年增1 X X X X X X X M1=月份:每月有30天; M2=月份:每月有31天,12月除外; M3=月份:此月是12月; M4=月份:此月是2月; D1=日期:1日期27; D2=日期:日期=28; D3=日期:日期=29 D4=日期:日期=30; D5=日期:日期=31; Y1=年:年是闰年; Y2=年:年不是闰年。 基于决策表的测试 11-1415161718192021-22 C1:月份在 C2:日期在 C3:年在 M3 D1-D4 - M3 D5 - M4 D1 - M4 D2 Y1 M4 D2 Y2 M4 D3 Y1 M4 D3 Y2 M4 D4-D5 - A1:不可能 A2:日期增1 A3:日期复位 A4:月份增1 A5:月份复位 A6:年增1 X X X X X X X X X X XX M1=月份:每月有30天; M2=月份:每月有31天,12月除外; M3=月份:此月是12月; M4=月份:此月是2月; D1=日期:1日期27; D2=日期:日期=28; D3=日期:日期=29 D4=日期:日期=30; D5=日期:日期=31; Y1=年:年是闰年; Y2=年:年不是闰年。 基于决策表的测试的小结 决策表技术适用于具有以下特征的应用程序: If-then-else逻辑很突出 条件和规则的顺序不影响执行哪些操作。 输入变量之间存在逻辑关系。 涉及输入变量子集的计算。 输入与输出之间存在因果关系。 很高的圈复杂度。 迭代会有所帮助,第一次不见得会成功。 内容提要 黑盒测试的概念 等价类划分法 边界条件法 决策表法 因果图法 正交表测试法 黑盒测试的其他方法 因果图 因果图是从用自然语言书写的程序规格说明的描述中 找到因(输入条件)和果(输出或程序状态的改变),通 过因果图转化为判别表。 因果图的基本逻辑符号 因果图的约束符号 互斥:表示不同时为1,即a、b至多只有一个1 包含:表示至少有一个1,即a、b、c中不同时为0,至少有一个1 唯一:表示a、b中有且仅有一个1.即a、b不能同时为1。 要求:若a=1,则b必为1. 屏蔽:若a=1,则b必为0. 因果图产生测试用例的步骤 依据规格,把程序划分成可以工作的片断; 确定规格中的原因和结果; 分析规格以确定原因和结果之间的逻辑关系,并且使用因 果图表示出来; 确定句法或环境的约束,这些约束使得某些组合不能产生; 把因果图转化成有限入口决策表; 从决策表的每一列选取一个测试用例。 因果图案例 第一列字符必须或,第二列字符必须是数字, 在此情况下文件被更新。但如果第一个字符不正确,那 么信息被产生;如果第二个字符不是数字,则信 息产生。 案例分析 原因:第一个字符是“” 第一个字符是“” 第二个字符是一个数字 结果: 进行更新 产生信息 产生信息 简单的因果图 带有约束的因果图 决策表 练习 有一个处理单价为1元5角钱的盒装饮料的自动售货 机软件。若投入1元5角硬币,按下“可乐”、“雪碧”和 “ 红茶”按钮,相应的饮料就送出来。若投入的是两元硬币 ,在送出饮料的同时退还角硬币。 练习:做出因果图,编制出决策表 练习因果图 练习决策表 已投币,没按按钮,钱不会退 因果图小结 根据需求规格说明书,分析因果关系; 有助于用一个系统的方法选择出高效的测试用例 集; 额外的好处,就是可以指出规格说明的不完整性 和不明确之处。 因果图是一种形式语言,实际上是一种数字逻辑 电路,但没有使用标准的电子学符号,而是使用了稍 微简单点的符号。 正交测试法 正交测试源于正交试验设计方法,是从大量的数 据中挑选适量的、有代表性的点,从而合理地安排测 试的一种科学的试验设计方法。 正交测试法就是使用已经造好了的正交表格来安 排试验并进行数据分析的一种方法。 它简单易行并且计算表格化,应用性较好。 正交表 一般用代表正交表,常用的有()、 ()、()、等。 例如:()、其中,为此表列的数目( 最多可安排的因子数);2为因子的水平数;8为此表 的数目(试验次数)。 正交测试用例设计步骤 (1)确定交互测试中有多少个相互独立的变量,这映射到表中的因 素数(Factors)。 (2)确定每个变量可以取值的个数的最大数,这映射到表中的水平 数(Levels)。 (3)选择一个次数(Run)数最少的最适合的正交表。一个最合适 的正交表是至少满足第一步说明的因素数和第二步说明的水平数。 (4)把因素和值映射到表中。 (5)为剩下的水平数选取值。 (6)把次数中所描述的组合转化成测试用例,再增加一些没有生成 的但可疑的测试用例。 练习一 假设一个网页有3个不同的部分(Top、Middle、 Bottom),并且可以把其中的一个单独部分显示及隐藏 。 要测试这三个不同部分的交互。按照前面给出的正 交表测试用例设计步骤,设计该系统的正交表测试用例 。 用例设计步骤 (1)确定有3个独立的变量(网页的3个部分)。 (2)每个变量能够取两个值(Hidden或Visible)。 (3)选择正交表变量为三因素,值为二水平。 (4)把变量的值映射到表中,其中Hidden=0,Visible=1 。 正交用例表 因素 1因素 2因素 3 次数 1000 次数 2011 次数 3101 次数 4110 因素映射之后 Top middleBottom 用例 1Hidden HiddenHidden 用例 2HiddenVisible Visible 用例 3Visible HiddenVisible 用例 4Visible Visible Hidden 用例设计步骤 (5)此种情况没有剩余的水平数,也就是说,表中的 每一个水平都有一个值被映射过来。 (6)把表中每一行转换成测试用例,可以得到4个测 试用例。这是测试3个变量成对交互时需要测试的内容。 测试用例描述 A隐藏这3部分。 B显示除Top部分外的其它部分。 C显示除Middle部分外的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论