文章目录

  • 测试用例的基本要素
  • 测试用例的好处
  • 设计方法
    • 等价类
    • 边界值
    • 因果图
      • 设计步骤
      • 举例
    • 正交法
      • 测试步骤
      • 举例
    • 场景设计法
      • 举例
    • 错误猜测法
  • 测试用例的粒度

测试用例的基本要素

测试用例是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素

评价测试用例的标准:对比好坏代码的评价标准

用例表达清楚,无二义性
用例可操作性强
用例的输入与输出明确。一条用例只有一个预期结果
用例的可维护性好
用例对需求的覆盖率高
暴露程序Bug的能力强力
测试用例 ecsp-439: 单位用户注册成功
步骤动作 期望的结果
进入注册页面,选择注册 系统展现注册页面
输入符合要求的单位名称、单位邮箱、密码、确认密码、 组织机构代码、验证码,并确认同意《用户注册协议》, 提交注册信息 系统进行注册操作,发送激活邮件。注册成 功后,跳转到注册成功页面,并提示用户进 行激活操作
进入注册用的邮箱,进行激活操作 激活成功
用注册的邮箱和密码,进行登录操作 登录成功,系统展示欢迎页面
测试方式 手工
重要性 重要
测试环境 CHROME,IE10+
测试前提 系统运行正常,邮件服务器已开启
功能模块 注册登录

测试用例的好处

  • 测试执行者的依据
  • 使得工作可重复,自动化测试的基础
  • 评估需求覆盖率
  • 用例的复用
  • 积累测试的方法思路以供后续借鉴

设计方法

RBT是基于需求的测试方法,会使测试更加有效,因为 它使测试专注于质量问题产生的根源,即需求。

基于需求的测试是一种最根本的软件测试,重点关注两个关键问题

  • 验证需求是否正确、完整、无二义性,并且逻辑一致
  • 要从“黑盒”的角度,设计出充分并且必要的测试集,以保证设计和代码都能完全符合需求。

等价类

依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过

  • 有效等价类:对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明中所规定的功能和性能
  • 无效等价类:根据需求说明书,不满足需求的集合。

测试人员进行测试的时候,有效等价类和无效等价类都要进行测试。

适用于场景:测试用例太多,不能穷举测试

边界值

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。

通常边界值法是作为对等价类法的补充,这种情况下,其测试用例来自等价类的边界。

通常会将等价类法和边界值法结合使用,举例:

购买3000元以内的某品牌手机
有效等价类:小于3000元
无效等价类:大于3000元
边界值:2999元、3000元、3001元

因果图

因果图是一种简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系。

因果图法是借助图形来设计测试用例的一种系统方法,特别适用于被测试程序具有多种输入条件、程序的输出又依赖于输入条件的各种情况

几种关系:

  1. 恒等:如果原因为真,那么结果必定为真。
    例如:动物园运来大熊猫,动物园一定有大熊猫

  2. 与:只有2个原因都为真,那么结果为真
    例如:长沙姑娘,有车且有房

  3. 或:2个原因中有一个为真时,结果就为真。
    例如:长沙姑娘,有车或者有房

  4. 非:只有原因为假,结果才为真。
    例如:不好好学习,找到好工作

设计步骤

  1. 分析所有可能的输入和可能的输出
  2. 找出输入与输出之间的对应关系
  3. 画出因果图
  4. 把因果图转换成判定表
  5. 把判定表对应到每一个测试用例

举例

假设业务单据的处理规则为:“淘宝618活动,提单已提交,订单合计金额大于300元或有红包,则进优惠”。

  1. 对于这条业务规则,首先通过分析所有可能的输入和可能的输出,可以得到如下结果:
    ● 输入:订单已提交、金额大于300、有红包。
    ● 输出:优惠、不优惠。
  2. 然后,进行第二步,找出输入与输出之间的对应关系。通过分析,可以看出有以下的对应关系。
    ● 订单已提交,订单金额大于300元,则优惠。
    ● 订单已提交,订单金额小于等于300元,无红包,不优惠
    ● 订单已提交,有红包,则优惠。
    ● 订单已提交,订单金额大于300元,有红包,则优惠。
    ● 订单未提交,不优惠。
  3. 为了方便画出因果图和判定表,需要对所有输入和输出编号,进行编号:
    1:订单已提交
    2:订单金额大于300元
    3:有红包
    21:优惠
    22:不优惠
  4. 画因果图
  5. 画判定表:有3个条件,输出有2个取值,所以表的列数为2x2x2=8
  6. 最终的测试用例:1,2,3,4,5(包含6,7,8)

正交法

正交法的目的是为了减少用例数目。用尽量少的用例覆盖输入的两两组合。

正交试验设计是研究多因素多水平的一种设计方法,它是根据正交性,由试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了解全面试验的情况,找出最优的水平组合。正交试验设计是一种基于正交表的、高效率、快速、经济的试验。

- 因素:在一项试验中,凡欲考察的变量称为因素(变量)
- 水平(位级):在试验范围内,因素被考察的值称为水平(变量的取值)

正交表的构成:

  • 行数:正交表中的行的个数,即试验的次数,用N代表。
  • 因素数:正交表中列的个数,用C代表。
  • 水平数:任何单个因素能够取得的值的最大个数。正交表中的包含的值为从0到数“水平数-1”或从1到“水平数”,用T代表
  • 正交表的表示形式:L=(水平数-1)*因素数+1

正交表的两条性质:

  • 每一列中各数字出现的次数都一样多
  • 任何两列所构成的各有序数对出现的次数都一样多

测试步骤

  • 有哪些因素(变量)
  • 每个因素有哪几个水平(变量的取值)
  • 选择一个合适的正交表
  • 把变量的值映射到表中
  • 把每一行的各因素水平的组合作为一个测试用例
  • 加上你认为可疑且没有在表中出现的用例组合

举例

以注册为例(类似工具可以使用微软的PICT工具):

  1. 因素:姓名、邮箱、密码、确认密码、验证码
  2. 水平:填写、不填写
因素序号 1 2 3 4 5
因素名 姓名 邮箱 密码 确认密码 验证码
水平1 填写 填写 填写 填写 填写
水平2 不填写 不填写 不填写 不填写 不填写
  1. 表中的因素 = 5 ;
    表中至每个因素数的水平数=2
    行数取最少的一个,即试验次数最少的一个
    L=N(TC)=(2-1)*5+1=6=6(25)
    L=6(25)
    N试验次数
    T水平数
    C因素数
  2. 生成测试用例
    思路:因素取值为填写时:正交按取值个数5-3-2-1(5已全 了,3,2,1任意排列)进行排列,实验次数不够用取
    值为填写个数为2或3任意组合,但要满足正交的两条性质
所在列 1 2 3 4 5 6
因素 姓名 邮箱 密码 确认密码 验证码 实验结果
实验1 填写 填写 填写 填写 填写
实验2 填写 填写 不填写 填写 不填写
实验3 填写 不填写 填写 不填写 不填写
实验4 不填写 填写 不填写 填写 不填写
实验5 不填写 不填写 填写 不填写 填写
实验6 不填写 不填写 不填写 不填写 填写
  1. 增补测试用例
    姓名、邮箱、密码、确认密码、验证码都不填写

场景设计法

现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,是测试用例更容易理解和执行。

典型的应用是是用业务流把各个孤立的功能点串起来,为测试人员建立整体业务感觉,从而避免陷入功能细节忽视业务流程要点的错误倾向

举例

错误猜测法

错误猜测法是经验丰富的测试人员喜欢使用的一种测试方法。

基于经验和直觉,找出程序中你认为可能出现的错误,有针对性地设计测试用例。经验可能来自于在对某项业务的测试较多,也可以来自于售后用户的反馈意见,或者从故障管理库中整理bug。梳理出产品以往哪些地方容易出现问题,问题越多的地方,潜在的bug也就越多

测试用例的粒度

粒度:指测试用例编写的详细程度。

测试用例可以写得很简单,也可以写得很复杂。最简单的测试用例是测试的纲要,仅仅指出要测试的内容,如探索
性测试中的测试设计,仅会指出需要测试产品的哪些要素、需要达到的质量目标、需要使用的测试方法等。而最复杂的测试用例就像飞机维修人员使用的工作指令卡一样,会指定输入的每项数据,期待的结果及检验的方法, 具体到界面元素的操作步骤,指定测试的方法和工具等

  1. 测试用例写得过于复杂或详细,会带来两个问题:一个是效率问题,另一个是维护成本问题。另外,测试用例设计得过于详细,留给测试执行人员的思考空间就比较少,容易限制测试人员的思维。
  2. 测试用例写得过于简单,则可能失去了测试周例的意义。过于简单的测试用例设计其实并没有进行“设计”,只是把需要测试的功能模块记录下来而已,它的作用仅仅是在测试过程中作为一个简单的测试计划,提醒测试人员测试的主要功能包括哪些而已。测试用例的设计的本质应该是在设计的过程中理解需求,检验需求,并把对软件系统的测试方法的思路记录下来,以便指导将来的测试

测试用例篇——设计测试用例的常用方法相关推荐

  1. 【测试开发】第三节.测试开发——用例篇(如何设计一个测试用例,设计测试用例的一些具体方法)

    作者简介:大家好,我是未央: 博客首页:未央.303 系列专栏:Java测试开发 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 文章目录 前言 一.测试用例的基本要素 二.设计测试 ...

  2. 测试开发——用例篇(如何设计一个测试用例,设计测试用例的一些具体方法)

    目录 一.测试用例的基本要素 二.设计测试用例的万能公式 (在没有需求文档的情况下) 1.水杯的测试用例 2.一个网站的登录测试用例 三.基于需求进行测试用例的设计 四.测试用例的具体设计方法(根据需 ...

  3. 测试篇(三):测试用例的万能公式、对水杯和登录页面设计测试用例、测试用例的设计方法

    目录 一.测试用例的万能公式 二.对登录页面设计测试用例 三.测试用例的设计方法 3.1 基于需求的设计方法 3.2 等价类 3.3 边界值 3.4 判定表 3.5 正交排列 3.6 场景设计法 3. ...

  4. 【软件测试】测试用例的设计方法

    文章目录 1. 测试用例的概念 2. 设计测试用例的好处 3. 基于需求设计测试用例 3.1 功能性需求 3.2 非功能性需求 4. 设计测试用例的具体方法 4.1 等价类 4.2 边界值 4.3 错 ...

  5. 【黑盒测试】 正交排列法设计测试用例

    正交法设计测试用例 如何设计测试用例 一.正交表的概念 二.使用步骤 1.设计步骤 2.案例分析 三.判定表和正交表的使用场景 判定表 正交表 如何设计测试用例 在测试时,要考虑一些控件的组合情况,组 ...

  6. 测试用例的设计采用什么工具比较好

    在实际的执行测试过程中,编写测试用例的工具,采用的不一,有用Excel表格,Word文档,xmind思维导图,禅道等等工具进行编写.那用什么工具来编写测试用例比较好呢? 写看看从什么时候开始编写测试用 ...

  7. java测试---用例(设计测试用例的基本要素、好处,六大设计测试用例的方法)

    QQ登录测试 兼容性: ① 不同的Windows操作系统,不同品牌的电脑 ② 不同的手机系统,不同的手机品牌 ③ 不同版本的QQ,市场上用户主要用的主流版本 ④ MAC电脑的主流版本 1. 设计测试用 ...

  8. 黑盒测试技术和测试用例的设计方法

    黑盒测试技术 软件测试即"有规程的发现错误的过程".其中错误是指"与所期望的设计之间的偏差,该偏差可能产生不期望的系统故障或者是错误的后果". 黑盒测试也称功能 ...

  9. 用正交表设计测试用例

    正交试验设计(Orthogonal experimental design)是研究多因素多水平的一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了" ...

  10. 软件测试用例的设计以及分类

    文章目录 测试用例设计 1.测试用例 2.设计测试用例的方法 1) 等价类 2) 边界值 3) 判定表法 4) 正交法 5) 场景设计法 6) 错误猜测法 3. 测试分类 1) 按测试对象划分 2) ...

最新文章

  1. arc0 oracle,ORA-01194错误恢复方法一
  2. wordpress图片水印插件DX-Watermark
  3. 关于递归三要素的理解
  4. 数据源管理 | 主从库动态路由,AOP模式读写分离
  5. Linux文本文件与Windows下的格式转换
  6. maven生命周期入门
  7. [转]Vue Cli3 + VS Code 愉快调试
  8. 用R软件绘制中国分省市地图
  9. CFAR原理详解及其matlab代码实现
  10. UltraISO软碟通安装与刻盘以及安装镜像
  11. 用Vue实现一个简单的图片轮播
  12. Depth from Motion:探索突破纯视觉 3D 检测瓶颈
  13. Debian折腾笔记
  14. NSIS对卸载程序的签名
  15. 如何把word中的多级编号中的题注“图一.1”自动变成“图1.1”
  16. 生鲜B2B2C供应链解决方案
  17. JAVA-win7的JDK环境变量配置安装
  18. mysql怎么求时间差
  19. c++ notify_one()和notify_all()
  20. 针式打印机步进电机介绍

热门文章

  1. ckplayer php,CKplayer 站外调用示例
  2. 【CSS】学习iview的icon样式+font字体
  3. Gspace简介 | 华为手机如何简单使用谷歌服务
  4. dvr行业的linux
  5. 如何在edge浏览器上安装flash插件运行需要flash的游戏
  6. c# [NETSDK1005] havent a target “net48“
  7. R语言中5种正态性检验的方法
  8. Java机器学习实战——SVD(奇异值分解)完整设计
  9. unity 电梯_unity官方demo学习之Stealth(十七)电梯移动设定
  10. java代码区出现红色,绿色怎么办