测试用例和设计方法

目录

一、什么是测试用例

二、测试用例编写注意事项

三、黑盒测试用例设计方法

 黑盒测试用例设计方法概述

等价类划分法 

边界值分析法 

因果图法 

判定表法 

场景法 

四、用例设计方法综合选择 


一、什么是测试用例

  1. 测试用例的定义
    简单来说,测试用例就是:
    1)设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的预期结果;
    2)如果程序在这种情况下不能正常运行,而且这种问题会重复发生,那就表示软件程序人员已经测出软件有缺陷,这时候就必须将这个问题标示出来,并且通知软件开发人员。软件开发人员接获通知后,将这个问题修改完成于下一个测试版本内;
    3)软件工程师取得新的测试版本后,必须利用同一个用例来测试这个问题,确保该问题已修改完成。

  2. 测试用例模板和包含内容

    A-F在设计测试用例时填写
    测试用例编号:一般编号规则:TestCase项目名称_模块名称_功能名称_0001
    测试项:测试用例的测试目的,一般情况下用一句话表明你的测试模块、测试对象、方式、                事件(eg:在QQ登录界面输入了正确的用户名和密码,点登录按钮可以正常登录)
    依赖用例:一般功能流程上,下游的功能测试依赖于上游的功能测试用例(eg:增加了一个                 数据的测试用例,将会被删除该数据的测试用例依赖)
    测试步骤:用最朴实的语言,写出软件的操作步骤,要尽量详细(eg:在用户名文本框输                     入:XXX;)
    测试(输入)数据:单独整合测试数据,必须和测试步骤中的数据保持一致。
    预期结果:在描述的过程中要准确(对象的准确,内容的准确)原则上每一个操作都要有一                  个结果;一般情况下只在重要的步骤之后设定预期结果(eg:页面跳转到XXX;                     程序弹出对话框,提示“用户名或密码错误,请重新输入!”)测试目的决定了测                     试步骤和预期结果
    测试结果:要在测试执行完成后添加,没有执行保持为空。测试结果只有两个:通过                               (pass)/失败(failed)
    测试人:测试的执行人。可以和测试用例设计者相同,也可以不同;
    备注:为了测试用例正常执行而做的特殊准备(eg:专门制造网络不畅情况下,软件错误提             示)   
                

  3. 设计测试用例的作用
    1)有效性:测试用例是测试人员测试过程中的重要参考依据
    2)可复用性:良好的测试用例具有重复使用的功能,使得测试过程事半功倍,提高测试效率
    3)易组织性:即使是小的项目,也可能会有几千甚至更多的测试用例,测试用例可能在数                           月甚至几年的测试过程中被创建和使用
    4)可评估性:从测试的项目管理角度来说,测试用例的通过率是检验代码质量的保证
    5)可管理性:测试用例也可以作为检验人员进度、工作量以及跟踪/管理测试人员工作效率                          的标准

二、测试用例编写注意事项

  • 不要设计“穷举测试用例”
  • 在详细测试用例与有效测试时间中找到平衡点
  • 好的测试用例应该多关注“反向测试问题”
  • 测试用例库应该不断更新和维护
  • 测试用例可以复用,但要注意数据有效性与环境变化
  • 测试用例是设计出来的,不是写出来的
  • 多去学习经验丰富的测试工程师所设计的测试用例
  • 针对不同的需求类型和测试对象,灵活采用不同的测试用例设计方法

三、黑盒测试用例设计方法

 黑盒测试用例设计方法概述

  只关注输入的数据和得到的结果,不关注代码;
  两大方向:
  测试数据选择:等价类划分法、边界值分析法
  测试步骤设计:因果图法、判定表法、正交实验法、功能图法、场景法等

等价类划分法 

  • 等价类划分法原理
    1)把程序的输入域分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例
    2)每一类的代表性数据在测试中的作用等价于这一类中的其他值,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误
    3)反之,如果某一类的一个例子没有发现错误,则这一类中的其他例子也不会查出错误  
  • 等价类划分法设计步骤 
    1)等价类划分的原则: 
          1、在输入条件规定了取值范围或值得个数的情况下,可以确立一个有效等价类两个无效等价类
    eg:一个文本框规定,输入字符个数为6~18位。
    一个有效等价类:个数在6~18内
    两个无效等价类:个数小于6和个数大于18

          2、在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类
    eg:请输入11位的手机号
    一个有效等价类:正好11位
    一个无效等价类:没有11位

          3、在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类
    eg:
    一个有效等价类:为真
    一个无效等价类:为假
          4、在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类
    eg:登录中要输入用户名和密码
    n个有效等价类:n个用户名和n个密码匹配
    一个无效等价类:用户名和密码不匹配
          5、在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)若干个无效等价类(从不同角度违反规则)
    eg:用户名要求6~18位,由字母、数字、下划线组成,以大写字母开头
    一个有效等价类:符合所有要求
    若干个无效等价类:不满足6~18位;不满足字母、数字、下划线组成;不满足大写字母开头
          6、在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类
    2)划分等价类和列出等价类表
    3)确定测试用例
          1、为每个等价类规定一个唯一的编号
          2、设计一个新的测试用例,使其尽可能多的覆盖尚未覆盖的有效等价类。重复这一步,               最后使得所有有效等价类均被测试用例覆盖
          3、设计一个新的测试用例,使其只覆盖一个无效等价类,重复这一步使所有无效等价类               均被覆盖

边界值分析法 

  • 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据
  • 如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1得的数作为测试数据
  • 分析规格说明,找出其他可能的边界条件  
  • 边界值的选择原则
    1、如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据
    2、如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据
    3、如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例
    4、如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例 

因果图法 

  • 概念
    1)因果图法是一种适合于描述对于多种输入条件组合的测试方法
    2)根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法
    3)它适合于检查程序输入条件涉及的各种组合情况
  • 原因与结果的关系

    a)恒等:原因c1成立,结果e1一定成立
    b)非:原因c1成立,结果e1一定不成立
    c)或:原因c1、c2、c3三者只要有一个成立,结果e1就一定成立
    d)与:原因c1、c2二者都成立,结果e1才会成立
  • 约束条件

    1)其中互斥、包含、唯一、要求是对原因的约束,屏蔽是对结果的约束
    2)互斥(Eclusive):表示不同时为1,即a,b,c中至多只有一个1
    3)包含(Include):表示至少有一个1,即a,b,c中不同时为0
    4)屏蔽(Mask):表示若a=1,则b必须为0
    5)唯一(Only):表示a,b,c中有且仅有一个1
    6)要求(Request):表示若a=1,则b必须为1。即不可能a=1且b=0

判定表法 

也叫判定表驱动法,是分析和多逻辑条件下执行不同操作的情况的工具。它由以下几个内容组成 

  • 条件桩(Condition Stub):列出了问题得所有条件。通常认为列出的条件的次序无关紧要
  • 动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束
  • 条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值
  • 动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作 

实现的步骤 

  • 确定规则个数:假如有n个条件,每个条件有两个取值(0,1),故有2^n种规则
  • 列出所有的条件桩和动作桩
    填入条件项
    填入动作项,制定初始判定表
  • 简化,合并相似规则或者相同动作

适合使用判定表设计测试用例的条件 

  • 规格说明以判定表的形式给出,或很容易转换成判定表
  • 条件的排列顺序不影响执行哪些操作
  • 规则的排列顺序不影响执行哪些操作
  • 当某一规则的条件已满足,并确定要执行的操作后,不必检验别的规则
  • 如果某一规则要执行多个操作,这些操作的执行顺序无关紧要 

场景法 

场景法原理 

  • 现在的软件几乎都是用事件触发来控制流程的。测试时,可以生动地描绘出事件触发时地情景,有利于设计测试用例,同时使测试用例更容易理解和执行
  • 基本流:软件功能按照正确地事件流实现的一条正确流程。
    通常一个业务仅存在一个基本流,且基本流仅有一个起点和一个终点
  • 备选流:除了基本流之外的各支流,包含多种不同的情况 

场景列表: 

  •  场景1 基本流
  •  场景2 基本流 备选流1
  •  场景3 基本流 备选流1 备选流2
  •  场景4 基本流 备选流3
  •  ……

设计用例的步骤 

  • 根据说明,描述出程序的基本流及各项备选流
  • 根据基本流和各项备选流生成不同的场景
  • 对每一个场景生成相应的测试用例
  • 对生成的所有测试用例重新复审,去掉多余的测试用例
  • 测试用例确定后,对每一个测试用例确定测试数据值 

*场景法适用于解决业务流程清晰的系统或功能 

四、用例设计方法综合选择 

  • 首先进行等价类划分
  • 在任何情况下都必须使用边界值分析方法
  • 如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法和判定表驱动法
  • 对于参数配置类的软件,要用正交试验法选择较少的组合方式达到最佳效果
  • 状态迁徙图法也是很好的测试用例设计方法,我们可以通过不同时期条件的有效性设计不同的测试数据
  • 对于业务流清晰的系统,可以利用场景法贯穿整个测试案例过程
  • 可以用错误推测法追加一些测试用例
  • 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例 

总结:所有测试用例的设计方法都是融合在一起使用的,没有独立使用的 ;往往在一个软件的界面中,都可以使用好几种测试用例的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值