黑盒测试用例方法详解
黑盒测试的定义(功能测试、数据驱动测试)
- 将测试对象看成一个黑盒子,不知道软件内部实现逻辑,只知道规格要求,根据规格要求进行相应输入,检验是否产生期望输出的测试方法。
黑盒测试的方法
- 等价类划分法
- 边界值分析法
- 流程分析法(场景法)
- 判定表法
- 分类树分析法
- 因图法
- 组合测试法
- 状态迁移法
- 正交实验法
- 输入域覆盖法、输出域覆盖法、猜错法(异常分析法)
一、等价类划分法
- 将程序的输入值的集合划分为若干等价类(分为有效等价类和无效等价类),从每一类中选取最少的数据进行覆盖测试。
- 在输入条件中确立一个范围时,可分为一个有效等价类和两个无效等价类。
- 确定输入取值为n个 值中的一个的时候,可划分为n个有效等价类和1个无效等价类。
- 在输入条件是真假值时,可确立为一个有效等价类(真)和一个无效等价类(假)。
- 在输入数据确定了只有一种符合条件的情况下,可确立为一个有效等价类和多个无效等价类。
- 在输入数据确定了格式的时候,可分为一个有效等价类和多个无效等价类。
- 用户注册功能,需要输入手机号码,输入密码和短信验证码。要求手机号码有效且未注册过,有效规则11位数字,首位是1,密码必须6位数字,短信验证码必须正确。
二、边界值分析法
- 边界值分析法是针对输入数据的边界值的测试,是对等价类划分法的补充,根据各个等价类的边界值设计测试用例。
三、流程分析法(场景法)
- 专门适用于被测试对象具有从开始到结束的完整操作过程的时候
- 基本流:常规操作完成整个业务的比较简洁的路径
- 备选流:不是基本流的其他所有路径
- 异常流:其中操作过程最终出现错误无法完成业务的流程
四、判定表法
- 条件桩:所有输入域
- 条件项:各自等价类
- 动作桩:所有输出结果的方面
- 动作项:每个方面的不同结果值
- 进行全排列组合,总数=各个条件项的乘积
- 分析判定表,如果其他条件桩选择特定条件项后,该条件桩无论选择哪个条件项,这些组合的所有动作桩的动作项都相同,说明这几个组合属于同一个等价类,无需分别测试,所以合并这几个组合
tips:全排列组合的方法:第一个组合是每个条件桩的第一个条件项的组合,先从最后一个条件桩的所有条件项进行全覆盖,然后复制出来再对上一个条件桩的所有条件项进行全覆盖,直到第一个条件桩的所有条件项的全覆盖。
-
对某手机的测试要求如下:如果手机未欠费,并且开机,并且在服务区的情况下才可以正常通话。请对该测试点设计测试用例:
- 当是否在服务区无论是T还是F,组合1,2的动作桩,合并1,2。
- 当是否在服务区无论是T还是F,组合5,6的动作桩,合并5,6。
- 当是否在服务区无论是T还是F,组合7,8的动作桩,合并7,8。
1.当是否欠费无论是T还是F,组合5,7的动作桩,合并5,7。
无法继续合并,设计4条测试用例
五、分类树分析法
- 使用决策树将测试项的各种输入分类表示的测试设计方法。
1.闰年判断规则:如果年份不能被4整除,则一定是平年;如果能被4整除、但不能被100整除,则一定是闰年;如能能被100整除、但不能被400整除,则一定平年;如果能被400整除,则一定是闰年。
六、因果图法
- 因果图不是一个独立的用例设计方法,专门用于当条件桩有哪些、动作桩有哪些、条件桩和动作桩之间的逻辑关系到底是怎样时适用,需要分析的时候才使用。如果逻辑清晰,不需要因果图来分析,就无需使用。
1.某文件修改需求:如想对文件进行修改,需要遵守以下规则:输入的第一列字符必须是A或B,第二列字符必须是一个数字。如果第一列字符不正确,则给出信息L;如果第二列字符不正确,则给出信息M;如果两列字符输入正确,则修改文件。
转换判定表:
无法继续合并,设计测试用例:
七、组合测试法
- 单一选择
- 基本选择
- 成对组合
- 完全组合
(1)单一选择
- 测试覆盖项是键值对集合的成员,每个参数值至少包含在集合中一次。
- 用例数量:参数值最多的参数个数
1.信贷管理系统的贷款申请模块,贷款产品类型有4个选择:按揭贷款、个人消费贷、个人经营贷、委托贷款;担保方式有:信用、保证、抵押、质押和票据贴现;还款方式有:等额本金、等额本息、先息后本。
(2)基本选择
- 测试覆盖项为每个输入参数的键值对的集合。其中,除了一个参数之外的所有其他参数都被设为"基础"值,而最后的参数被设为其它有效值之一。
- 用例数量:所有参数的参数值个数之和-参数的个数+1
1.信贷管理系统的贷款申请模块,贷款产品类型有4个选择:按揭贷款、个人消费贷、个人经营贷、委托贷款;担保方式有:信用、保证、抵押、质押和票据贴现;还款方式有:等额本金、等额本息、先息后本。
(3)成对选择
- 成对测试中,测试覆盖项是唯一的不同的测试项参数的键值对组合。本技术不是覆盖所有参数的可能组合(如完全组合测试中的要求),而是覆盖总测试集中所有选定值的可能组合。
1.信贷管理系统的贷款申请模块,贷款产品类型有4个选择:按揭贷款、个人消费贷、个人经营贷、委托贷款;担保方式有:信用、保证、抵押、质押和票据贴现;还款方式有:等额本金、等额本息、先息后本。
(4)完全选择
- 在完全组合测试中,测试覆盖项是所有唯一的键值对的集合,使得每个参数在此集合中至少包含一次。其中每个测试用例实现一个唯一的键值对组合。即全量组合,笛卡尔乘积。
- 测试数量 :参数的参数值个数成绩
1.信贷管理系统的贷款申请模块,贷款产品类型有4个选择:按揭贷款、个人消费贷、个人经营贷、委托贷款;担保方式有:信用、保证、抵押、质押和票据贴现;还款方式有:等额本金、等额本息、先息后本。
八、状态迁移法
- 专门用于被测试对象属于有限状态机时使用,即只有有限数量个状态,基于一定的条件和输入就发生从一个状态转变为另一个状态。
1.手机中MP3播放功能如下,请用状态迁移法设计用例。选中MP3曲目后,可以按P键(播放)、F键(快进)、RC键(录音);播放过程中可以按F键、R键(后退)、S键(停止);播放或者快进结束时,MP3自动停在曲目终点,此时可以按R键;在停止状态下可以按RC键;后退到曲目起点,MP3自动停止;没有选择MP3曲目时不能按任何键,并且当MP3曲目在起点时不能按R键,当MP3曲目在末端时不能按P、F键。
九、正交实验法
-
利用正交表来对程序进行测试,用较少的测试用例进行较全面的测试。根据正交表的正交性,从全面试验中挑选出适量的、有代表性的点进行试验。
正交表是一种特制的表格,一般用Ln(mk)来表示,其中L表示正交表,n表示测试用例数,k表示最多可安排影响指标因素的个数或正交表的列数,m表示每个因素的水平数即状态,n=k*(m-1)+1,即最少的测试用例数。
- 如果所用正交表的因子数>实际所需,但状态数相等: 可以直接套用正交表,只需要舍弃表中多余的因子不看即可。
- 如果所用正交表的因子数<实际所需,但状态数相等: 不能使用该正交表。
- 如果所用正交表的因字数和实际相同,但状态数更多: 可以直接套用该正交表,设计相同数量的用例,只需要舍弃表中多余的状态,随机改为其他使用的状态即可。
- 如果所用正交表的因子数和实际相同,但状态数偏少:可以套用该正交表,但如果有其他更适合的正交表,则优先使用其他正交表。如果使用该正交表,则需要将正交表该因子中随机取出一个状态的所有记录,复制再插入到该正交表中,然后将该状态改为所需要的、目前还不存在的状态。
1.PowerPoint软件打印功能可以设置如下打印选项:打印范围分:全部、当前幻灯片、给定范围;打印内容分:幻灯片、讲义、备注页、大纲视 图;打印颜色/灰度分: 颜色、灰度、黑白;打印效果分:幻灯片加框、幻灯片不加框;
选择L13(44)