3、测试用例设计方法

介绍几种常用的测试用例设计方法

  • 场景法
  • 等价类
  • 边界值
  • 因果图
  • 错误推测

一、场景法

场景法是对系统的功能点或业务流程的描述来进行设计,模拟出用户的正常操作流程和异常的流程,也就是基本流和备选流。一般情况下是一条基本流,N条备选流。
其中,基本流就是每个步骤都是最正常的情况;备选流就是有步骤不是最正常情况,导致生成的新分支。

设计步骤
  • 根据说明,描述出系统的基本流以及各种备选流
  • 根据基本流和各种备选流生成不同的场景
  • 对每一个场景生成相应的测试用例
  • 对生成的测试用例进行复审,去掉多余的用例。测试用例确定后,对每一个测试用例进行测试数据的确定
个人经验
  • 编写测试用例前,先使用场景法编写出系统的基本流和各种备选流并进行整理,然后再利用其它测试用例编写方法来细分测试用例以及确定各个用例上的测试数据(等价划分法、因果图法、边界值法等)。
    在这过程中,场景法主要目的是把流程上的相关联测试点给串起来,但是不要太纠结所有的情况,只需要把主要功能测试点给串联起来即可,不过要以场景为主。
  • 编写场景的工具,推荐使用思维导图,比如说xmind,在线的可用processon
例子
图片来源本人公众号

二、等价类/等价类划分法

等价类划分法一般分成两类:有效等价类、无效等价类;等价类其实就是子集。

  • 有效等价类:对于条件来说是合理的,一般对应正常测试用例
  • 无效等价列:对于条件来说是不合理/无意义的、异常的,一般对应异常测试用例
标准

1、完备测试、避免冗余
2、集合的划分,划分为互不相交的一组子集,而子集的并集是整个集合;子集互不相交:保证一种形式的无冗余性
3、同一等价类标志一个测试用例;因为同个等价类中,往往在程序中的处理方式相同。比如说:

  • 输入框只能输入数字
    1.有效类:数字
    2.无效类:非数字的元素(符号、英文、汉字等)
    3.有效类可以对应一条输入正常的用例;而无效类则可以对应一条输入异常的用例;用例的测试数据则是对应的有效类/无效类的值
划分等价类的方法
  • 在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。如:输入值是学生成绩,范围是0~100。


    图片来源本人公众号
  • 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。

  • 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。

  • 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
    例:输入条件说明学历可为:专科、本科、硕士、博士四种之一,则分别取这四种的四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类。(这个例子可以在设计上避免BUG,比如说该输入框做成下拉框选择项)

  • 在规定了输入数据必须遵守的规则情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

  • 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应在将该等价类进一步的划分为更小的等价类

设计测试用例

在确立了等价类后,可建立等价类表,列出所有划分出的等价类输入条件:有效等价类、无效等价类,然后从划分出的等价类中按以下三个原则设计测试用例:

  • 为每一个等价类规定一个唯一的编号;
  • 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;
  • 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止
例子

列出正三角形的有效等价类和无效等价类(答案百度有)

三、边界值

边界值法是对等价类划分法的一种补充(等价类法得到的测试数据太多,几乎无限),一般是对等价类划分法的分类进行边界值划分。根据经验,大量的错误是出现在输入或输出的边界值上,因此针对各种边界值情况设计测试用例,可以查出更多的错误。
不仅是考虑输入值的边界,也要考虑输出值的边界

编写步骤
  • 根据被测对象的输入/输出的要求,确定边界值
  • 选取等于、刚刚大于、刚刚小于边界的值作为测试数据(最小值、略高于最小值、正常值、略低于最大值、最大值)
  • 上点、内点、离点
上点、内点、离点
  • 上点:指的是边界上的点。如果是开区间,则是域外;如果是闭区间,则是域内
  • 内点:域内的任一点都是内点
  • 离点:离上点最近的点。如果是开区间,则是域内;如果是闭区间,则是域外
  • 例子:
    [66,88]:上点是66、88;离点是65、89;内点任意值
    (66,88]:上点是67,88;离点是66,89;内点任意值
    (66,88):上点是67,87;离点是66,88;内点任意值
典型边界值

if、while等语句的判断条件、定义域、值域边界、空、畸形输入、未受控状态等。
拓展知识

因果图

因果图法是对等价类法的一种补充(等价类法没有考虑到多个输入情况的组合)。如果一个功能逻辑,涉及多个条件或控件,则这时候要考虑它们之间的组合关系,不同的组合之间会触发什么样的输出结果。

步骤
  • 分析原因和结果分别是什么,一般情况下输入条件是原因,输出条件是结果
  • 给原因和结果进行编号
  • 根据功能需求的描述(条件),把原因、结果分别进行组合
  • 接着把原因和结果的组合进行组合关系
条件

与、或、非、恒等、唯一、包含、互斥

错误推测

定义

靠经验和直觉推测系统可能存在的错误,从而有针对性地去检查这些错误的方法。嗯...看人的一种“方法”。

前提

分析系统中最容易出错的场景和情况,在此基础上有针对性地设计测试用例。需要完成的前提条件如下:

  • 深度熟悉被测系统的业务、需求
  • 对被测系统或类似系统之前的bug分布情况进行系统的分析。包括功能bug、数据bug、接口bug和UI的bug等
例子
1

2

3
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容

  • 测试用例的内容:用例编号、用例标题、重要级别、预置条件、测试输入、操作步骤、预期结果、测试结果、作者。 黑盒测试用...
    CT9955阅读 3,998评论 0 31
  • 一、常用黑盒测试用例设计方法 等价类划分法 边界值分析法 判定表法 因果图法 状态迁移图法 流程分析法 正交试验法...
    hollow_s阅读 1,080评论 0 1
  • 测试用例的设计是测试实现阶段的核心工作,也是指导如何执行测试的基础。 测试用例(Test Case)是为某个特殊目...
    倔强的潇洒小姐阅读 8,786评论 1 21
  • 1等价类划分方法 1.1定义 是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取...
    wildwolf_f34c阅读 809评论 0 0
  • 思考: 任意输入三角形三边,判断能够构成三角形?输入3个整数a、b、c构成三角形,设计测试用例数量。假设在16位计...
    EndEvent阅读 3,529评论 0 4