文章目录

  • 1 测试用例
    • 1.1 测试用例的定义
    • 1.2 测试用例模板
    • 1.3 测试用例模板的内容
      • 测试用例编号
      • 测试项
      • 依赖用例
      • 测试步骤
      • 测试数据
      • 预期结果
      • 测试结果
      • 测试人
      • 备注
  • 2 测试用例编写注意事项
  • 3 黑盒测试用例设计方法
    • 3.1 等价类划分法(很常用)
      • 等价类划分法原理
      • 等价类划分法设计步骤
      • 等价类划分法的使用
      • 编写测试用例注意点
    • 3.2 边界值分析法(很常用)
  • 用例实战——多边形判断程序 (等价类划分法、边界值分析法)
    • 3.4 因果图法
      • 什么是因果图?
      • 因果图的符号
      • 因果图使用实例
    • 3.5 判定表法(少用)
      • 什么是判定表法
      • 判定表使用实例
    • 3.6 场景法(较常用)
      • 场景法基本原理
      • 场景法设计实例
    • 3.7 正交实验法(较少用)
      • 正交试验法原理(了解即可)
      • 正交实验法实现步骤
      • 实际案例
    • 3.8 功能图法(很少用)
      • 功能图法步骤
      • 功能图法案例
    • 3.9 其他用例设计方法
    • 3.10 用例设计方法综合选择(重点)
      • 启动页
      • 登录界面
      • 课程内容页
  • 总结

1 测试用例

1.1 测试用例的定义

1 设计一个情况,软件测试这种情况下,必须能够正常运行并且达到程序所设计的预期结果。(面试常问!什么是测试用例?)
2 如果程序这种情况下不能正常运行,而且这种问题会重复发生,那就表示软件程序人员已经测出软件由缺陷,这时候就必须将这个问题标示出来,并且通知软件开发人员。(面试常问!如果软件按照测试用例达不到预期的结果,怎么办?)
3 软件测试工程师取得新的测试版本后,必须利用同一个用例来测试这个问题,确保该问题已修改完成。(面试常问!!开发人员说缺陷修复了,你认可吗?)

1.2 测试用例模板


测试项就是测试目的,测试结果必须在测试之后才可以填写。

1.3 测试用例模板的内容

测试用例编号

由测试设计过程说明和测试程序说明引用的惟一标识符。
一般编号规则:TestCase_项目名称_模块名称_功能名称_0001

测试项

测试项就是测试目的。用一句话表明目的。
例如:使用谷歌浏览器打开百度首页;在QQ登录界面输入正确的用户名密码能登录上。(表明你的测试模块、测试对象、方式、效果/事件。)

依赖用例

功能流程上,下游的功能测试依赖于上游的功能测试用例。
例如:上游注册QQ,下游登录QQ。

测试步骤

用最简单的语言,写出来软件的操作步骤,要尽量详细。
例如:在用户文本框输入:xxx;在省份下拉列表选择:广州。

测试数据

单独整合测试数据。必须和测试步骤中数据保持一致。

预期结果

准确(对象的准确,内容的准确)。原则上每一个操作,都要有一个结果。
在重要的步骤(点击链接……)之后,设定预期结果。
预期结果和测试目的密切相关。
测试目的决定了测试步骤和预期结果。
例如:页面跳转到XXX;程序弹出对话框,提示用户名或密码错误,请重新输入!

测试结果

要求在测试执行完成后。没有执行保持为空。
测试结果只有两个:通过/失败;Pass/failed。和预期结果一致即为通过,不一致即为失败。

测试人

测试的执行人。可以和设计者相同,也可以不同。

备注

为了测试用例正常执行而做的特殊准备。
例如:专门制造网络不畅情况下,软件错误提示。

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

2 测试用例编写注意事项

不要设计“穷举测试用例”。
在详细测试用例与有效测试时间中找到平衡点。(面试问!!时间不够的情况下,还要进行详细的测试用例设计吗?尽可能多的进行测试,找到有效测试和覆盖度的平衡点。)
好的测试用例应该多关注“反向测试问题”。(反向思维)
测试用例库应该不断更新和维护。(面试问!测试用例需要经常更新吗?尤其是发现过缺陷的测试用例。“杀虫剂效应”,一个发现过缺陷的测试用例,就相当于杀虫剂。必须使用新的测试用例,与之前的用例中数据类型保持一致进行重新测试。)
测试用例可以复用,但要注意数据有效性与环境变化。
测试用例是设计出来的,不是写出来的。
多去学习经验丰富的测试工程师所设计的测试用例。
针对不同的需求类型和测试对象,灵活采用不同的测试用例设计方法。
等价类划分不能出现重复的内容。也不能出现缺失的输入部分。

3 黑盒测试用例设计方法

黑盒测试只关心输入和输出,软件原理不关心。
测试数据选择:等价类划分法、边界值分析法。
测试步骤设计:因果图法、判定表法、正交试验法、功能图法、场景法。
总之,黑盒测试用例设计方法有:等价类划分法、边界值分析法、因果图法、判定表法、正交试验法、功能图法、场景法。

3.1 等价类划分法(很常用)

做加法器功能测试时,测试了1+1,1+2,1+3之后,还有必要测试1+4和1+5吗?能否放心地认为它们是正确的?
不用测。因为不能进行穷举测试。
需要测。因为不测就存在缺陷。
因此,采取等价类划分法。

等价类划分法原理

把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。
每一类的代表性数据在测试中的作用等价于这一类中的其他值,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误。
反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误。
例子:
现在有一个文本框,有一个规则:xxxxx。请对这个规则,进行输入内容的等价类划分(尽可能详细的划分)。

等价类划分法设计步骤

确定等价类的原则
1 在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。
例如:一个文本框规定,输入字符个数为6-18位。
一个有效的等价类:范围内个数。7位,8位。
两个无效的等价类:小于6位,大于18位。

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

3 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。布尔量:表示“真”或者“假”。

4 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
例如:登录中要输入用户名和密码。
有效等价类:输入正确的用户名和密码。
n个有效等价类:用户名和密码都要对。
无效等价类:输入正确的用户名和错误的密码,输入错误的用户名和正确的密码……
一个无效等价类:用户名和密码不匹配。

5 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
例如:用户名要求6~18位,由字母、数字、下划线组成;字母区分大小写;以大写字母开头。
有效等价类:A123b_c
无效等价类:~abc,123,abc123,哈哈123abc,……

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

等价类划分法的使用

第一步,划分等价类和列出等价类表(有效等价类和无效等价类)
以百度注册页面为例子
用户名:设置后不可更改;中英文均可;最多14个英语或7个汉字;隐性(用户名不可重复;不可为空;)
将等价类划分组成表格分析

第二步,确定测试用例。
为每个等价类规定一个惟一的编号;
设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖;
设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步使所有无效等价类均被覆盖。

编写测试用例注意点

测试项中不写目的产生的结果。
测试项不易太长。
测试项只写一个测试目的。**测试目的必须是明确的,不能一次测试多个点。**测试中,一个无效等价类的测试数据,只要违反一个需求。
例如:
月份只有1-12,输入23就是错;此外,不应该将日期设置为33。测试项只写一个测试目的。
依赖用例。下游的用例,依赖上游的用例(已经存在的测试用例),用例依赖可跨模块(A设计员会依赖B设计员的测试用例)。
测试步骤。表名操作的对象和方式,数据。
测试数据。没有数据,空着不写;空格作为输入数据时,尽量将空格放在数据的中间。例如:123 45。为了方便阅读;输入要求不为空,不输入就行。
测试结果。不执行,就不写。
测试用例不需要写正向测试或反向测试。

3.2 边界值分析法(很常用)

如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。
分析规格说明,找出其他可能的边界条件。

边界值只是一个特定的数据。
例如:文本框需要输入6到18位字符。
边界值有:第6位字符;第18位字符。
次边界值。边界附近的值,按照系统规定的单位或者计算方式,在边界值附近的值。
例如:字符以个为单位,一个字符,没有半个字符的说法;人民币金额,最小单位是0.001元(1分);ATM机取款和存款,最小单位就是100元,只能是100的整数倍。
思考题
6≤x≤12,测试中x的边界值要选取哪几个进行测试?
5 6 7 11 12 13
6<x<12,测试中x的边界值要选取哪几个进行测试?
6 7 8 10 11 12
6<x<12没有包含6和12。因此边界值为7,11。
文本框输入字符的个数要求是不大于150字。测试的时候如何选择边界值?
不大于150字意思就是小于等于150。即0≤x≤150。
因此,边界值为空,1,149,150,151。

用例实战——多边形判断程序 (等价类划分法、边界值分析法)

题目
—个Web程序读入3个整数,把这3个数值看作一个三角形的3条边的长度值。这个程序会给出弹窗提示信息,说明这个二角形是普通的、是等腰的、是直角的,还是等边的,以及相应的错误提示信息。
思路:
1 如何构成三角形?
任意两边之和大于第三边。
2 有效等价类中应该分为“能构成三角形”的有效等价类和“不能构成三角形”的有效等价类。
3 先做有效等价类,再做无效等价类。
4 确定边界值。
边长必须大于0且为整数。
边长最大是多少?从黑盒测试的角度,边长的边界值找开发人员或者查看需求文档。从白盒测试的角度,直接看代码;如果有数据库,看数据库中该数据类型,数据类型的长度范围和取值范围。

等价类划分表,如下:

着手写测试用例,第一,打开程序,;第二,进入三边形判断页面,第三,结合等价类划分表,先做正向测试,正向测试有两种情况,“能构成三角形”的情况和“不能构成三角形”的情况;第四,在“能构成三角形”的情况下,三角形可以分为等腰三角形、等边三角形、直角三角形、钝角三角形、锐角三角形。综上所述,测试用例如下表:

输入数据:0 15 15;15 0 15;0 0 15;0 15 0;
问题以上四组数据有意义吗?
答:没有意义。首先,边长必须大于0。其次,数据(边长)具有同质性。即第一条边可以是第二、三条边,第二条边可以是第一、三条边,第三条边可以是第一、二条边。所有边长遵循的规则是完全一致的。四组边长都违背同一条规则,测试其中的一组数据即可。
问题:为什么测试用例没有锐角三角形和钝角三角形呢?
答:此程序只考虑多边形的边长,不考虑角度问题,角度超出业务范围。
问题:为什么测试用例有直角三角形呢?
答:直角三角形满足勾股定理,勾股定理揭示了边长和角度的关系,所以把直角三角形当做测试用例。

四边形判断程序
四边形等价类划分表,与三角形等价类划分表类似,如下:

设计测试用例,如下:

3.4 因果图法

什么是因果图?

因果图法是一种适合于描述对于多种输入条件组合的测试方法。
根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法。
它适合于检查程序输入条件涉及的各种组合情况
各种组合:邮箱,昵称,密码,电话号码,必须同意隐私条款。

因果图的符号

原因和结果的关系
恒等。原因A成立,结果B一定成立。
非。原因A成立,结果B一定不成立。
或。原因A,B,C三个原因只有一个成立,结果D一定成立。
与。原因A,B,C三个原因都成立,结果D才成立。

原因之间的关系
假如原因成立用1表示,不成立用0表示。
互斥(exclusive)。即A+B+C≤1。A,B,C中最多有1个成立,存在没有一个成立的情况。
包含(include)。即3≥A+B+C≥1。1≤A+B+C≤3。至少有一个成立。
唯一(only)。A+B+C==1。A,B,C有且仅有一个成立。
要求(request)。原因A成立要求原因B一定先成立。

结果之间的关系
假如结果成立用1表示,不成立用0表示。
屏蔽(mask)。结果之间会出现A结果出现,B结果一定不出现。当你收到注册成功的提示,就一定不会收到数据填写错误的提示。

因果图使用实例

阅读和分析功能说明书,识别出“原因”和“结果”,并加以编号。
案例:有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下。
若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。
若投入1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。

分原因和结果,如下:

原因有投0.5元,投1元,选橙汁,选啤酒。
结果有找0.5元,出橙汁,出啤酒。

画出原因和结果之间的关系,如下:

投0.5元且选橙汁,结果出橙汁;投0.5元且选啤酒,结果出啤酒;
投1元且选橙汁,结果出橙汁和0.5元;投1元且选啤酒,结果出啤酒和0.5元;
画出原因之间的关系,如下:

投0.5元和投1元互斥;选橙汁和选啤酒互斥。

画出结果之间的关系,如下:

出橙汁和出啤酒为屏蔽关系。
最终关系(部分关系),如下:

因果图的缺点:
当原因和结果很多的时候,它们之间的关系连线就会很多,导致因果图可读性变差。因此用局部小功能(原因和结果不是很多的情况)分析

列出所有的原因和结果的列表,如下表:

因果图的优点:能够发现设计中的存在的不足。
经过分析发现:
只选择饮料,没有投币的时候,软件没有任何结果。
只投币,没有选择饮料的时候,软件没有任何结果。
不能把软件的缺陷设计成测试用例。所以,c5,c6不能是测试用例。
后续,可向开发人员,提出提示投币,提示选择饮料,60秒自动退币的功能。

设计初步的测试用例,如下表:

3.5 判定表法(少用)

什么是判定表法

应用场合:主要适用于多条件的内容组合与结果分析。
组成:由条件项、动作项、条件桩、动作桩四部分组成。
条件桩:数个条件(标准/原因)组成的
动作桩:数个动作(结果)组成的
条件项:数个在该几个条件下发出的具体条件
动作项:数个在该几个动作下发出的具体动作

使用的条件:所有的条件桩在表中的位置和顺序互相不影响;所有的动作桩的顺序不会因为条件顺序的变化而产生不同。

建立判定表的步骤
第一步,识别出操作条件(原因)和对应的动作(结果)。
第二步,分析条件的条件项(组合数量)。如果有n个条件,每个条件有成立和不成立两种情况,那么一个有2^n个数量。
第三步,简化和优化结果。排除一些不可能存在的情况。

判定表使用实例

需求:订购单的检查。
如果金额超过500元,又未过期,则发出批准单和提货单;
如果金额超过500元,但过期了,则发批准单;
如果金额低于500元,则不论是否过期都发出批准单和提货单,在过期的情况下还需要发出通知单。
看完题第一反应是树状图,如下:

第一步,分析条件和动作,如下表:

第二步,写入条件桩、条件项、动作桩、动作项,如下表:

黄色为条件桩,绿色为条件项,蓝色为动作桩,红色为动作项。

第三步,对判定表进行简化和优化。(对其中不合理或者重复的进行取舍)
不管是否超过500,只要未过期,都发提货单和批准单。在测试时间不充足的情况下,可以选二者中的一个情况进行测试,所以优化之后,条件项减少为3项,把结果为1 1 0优化为一项,如下表:

将判定表中的每一列(条件项和对应的动作项)作为测试用例的数据、操作和对应的预期结果。

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

测试用例的设计方法原则:
没有哪一种方法是单独使用的。
所有的软件都是因为某种操作才会导致一定的结果。考虑使用因果图。
所有的软件都有文本框。必须一定使用等价类、边界值。

判定表的实例题目:该判定表为一个杂志的阅读指南判定,知道读者能够良性阅读。

读完表格后,倾对表格内容进行优化,将重复的内容去掉,说明原因。
合并1,2,3,4为一项。在疲倦的情况下,一律休息即可。
合并7,8为一项。在都不疲倦的情况下,不感兴趣就跳下一章。
优化结果如下表:

3.6 场景法(较常用)

场景法基本原理

原理:
现在的软件几乎都是用事件触发来控制流程的。测试时,可以生动地描绘出事件触发时的情景,有利于设计测试用例,同时使测试用例更容易理解和执行。
基本流:软件功能正确实现的流程
备选流:基本功能流程之外的过程

场景列表:
场景1基本流
场景2基本流 备选流1
场景3基本流 备选流1 备选流2
场景4 基本流 备选流3

例如:
电商平台购物。
基本流:浏览商品,立即购买商品。
备选流:购物购物车,继续浏览商品,登录账号

场景法注意点:
场景中必须有基本流;
场景中必须有内容从用例开始,到用例的结束

设计用例的步骤
根据说明,描述出程序的基本流及各项备选流。
根据基本流和各项备选流生成不同的场景。
对每一个场景生成相应的测试用例。
对生成的所有测试用例重新复审,去掉多余的测试用例。
测试用例确定后,对每一个测试用例确定测试数据值。
场景法适用于解决业务流程清晰的系统或功能。

场景法设计实例

ATM机的取款流程。
基本流,如下图:

备选流,如下图:

基本流:
插卡——输入密码——出钞——取卡

备选流:
1 卡不是银行卡
2 卡不是银联卡
3 密码输错一次;
4密码输错二次,第三次输入正确
5 三次密码都输入错误,冻结卡
6 选择存款服务
7 选择查询服务
8 选择转账服务
9 选择修改密码服务
10 选择取款金额
11 选择其他金额
12 帐户金额不足
13 ATM机金额不足
14 帐户取款金额达到取款机的当日取款上限
15 帐户取款金额达到帐户当日取款交易上限
16 取款机掉线
17 取款机停电了

场景设计
场景1:基本流
场景2:基本流 备选流5
场景3:基本流 备选流4
场景4:基本流 备选流1
场景5:基本流 备选流2 备选流4

设计测试用例:
每一个场景,都是一个测试用例。
以场景5为例,设计步骤:
1 插卡(国外万事达卡)
2 换卡(国内银联卡),再进行插卡
3 第一次输入密码错误
4 第二次输入密码错误
5 第三次输入密码正确
6 选择取款服务
7 选择取款金额——500
8 等待出钞
9 取卡

为该测试用例的步骤设计数据。
第一次输入密码为098764
第二次输入密码为098763
第三次输入密码为098761
选择取款金额为500

3.7 正交实验法(较少用)

推导过程难,应用正交试验法不难。
正交实验法由日本人发明,统计学家提出。
使用的工具:正交表
统计和分析试验数据,从大量试验中找到合适的实验数据组合。(原本用于工业生产的数据组合与实验室的数据挑选。)
本质:大量的实验中,挑选出来一部分具有代表性的点,进行实验,分析数据。

正交试验法原理(了解即可)

线性代数、概率论、数理统计


每一行每一列不能有重复的元素。
核心概念
影响实验结果的——实验因素(因子)、因素
每一个因素的不同取值(状况)——水平
例如:字的显示效果——字体,字号,颜色,称为因素。
字体选择时,可以选择宋体,楷体,隶书,行书——称为水平。这里就是4个水平。
字号选择时,小三,小四,四号——称为水平。这里就是3个水平。

正交表特点:每列中,同一个数字(水平),出现的次数相等;任意两列组成的数字对出现的次数也是相同的。

正交实验法实现步骤

1 分析所有对结果有影响的因素。从多个角度和方式进行分析(文本框、按钮等需求)
2 分析每个因素的水平数量。利用等价类、边界值(显性和隐性需求都要分析)
3 选择正交表。只有特定的因素数和水平数的组合才有对应的正交表。所以在现实中,找最贴近的正交表(正交表的因素数和水平数一般大于实际的因素数和水平数)。

正交表的数字关系
n代表实验次数。m代表水平数量。k代表因素的数量。这三个数字之间没有任何数学关系
正交表仅适合用于每一个因素的水平数都相同。

实际案例

有一个工业产品,其生产工艺受到操作方式、温度、洗涤时间三个因素的影响,并且每个因素都有三种可能的取值,具体如下所示,请设计试验组合。

完全排列组合:333=27
使用小工具完成正交试验的设计
第一步,选择标准正交表运行程序,以管理员身份运行,如下图:

第二步,会报错,直接点确定,新建工程,修改工程名,如下图:

第三步,选中工程,新建实验,实验说明,选择正交表,填写因素与水平,如下图:



第四步,点击工程下级目录,查看实验结果,如下图:

实验小结:
题目给出三水平,三因素。选择正交表时,必须比三水平,三因素的正交表大。这里可以选三水平,四因素的正交表和三水平,七因素的正交表,三水平,七因素的正交表不贴合三水平,三因素的正交表舍去。选择三水平,四因素的正交表。
L9_3_4:三水平,四因素,9次实验。
每一列中,同一个数字出现的次数相等都是3次。
任意两列中,统一数字对出现的次数相等。A 15数字对出现1次,B 15数字对出现1次,60 15数字对也是出现1次。

3.8 功能图法(很少用)

功能图法又叫做状态迁徙图
使用场合:软件的状态会根据某些内容、条件、操作的变化而变化。
目标:尽可能覆盖软件的状态、状态的条件的组合和状态变迁路径。

场景:微信和别人聊天,聊天框最上面显示“对方正在输入……”

功能图法步骤

识别和列举所有的输入(操作)事件。以IP(input)(N=1 2 3)
2 定义空闲状态(初始状态)。一般以软件刚启动时打卡的界面状态为空闲状态。
3 为空闲状态加操作(只加一次)
4 为第三步所产生的新状态加操作(只加一次,并且曾经加过的操作,不再重复添加)
5 循环为所有的新增状态加操作,直到没有新状态产生为止。
6 组合任意的状态,以列表的形式展现,设计和编写测试用例。

功能图法案例

案例:以QQ登录(这里只考虑简单的功能)
第一步,识别出可进行的操作
IP1:输入QQ账号
IP2:输入QQ密码
IP3:点击登录
IP4:点击关闭按钮

第二步,定义QQ登录界面为空闲状态。

第三步,给空闲状态加操作。进行分析后,如下图。
IP3为点击登录按钮,在空闲状态,点击登录按钮,会弹出错误提示(请输入QQ号和密码),然后回到空闲状态。

产生了新的状态,针对新的状态进行分析,如下图:

得到一个新的状态,QQ号和密码已输入,进行分析。QQ号和密码已输入状态是通过IP1和IP2操作产生的,所以不能对该状态做IP1和IP2操作,应该对该状态做IP3和IP4操作,如下图:

得出QQ主界面的状态,和空闲状态发生了“隔断”,因此将该状态视为空闲状态的结束,可以结束分析过程。
第四步,将状态变化列表化,准备设计测试用例。状态变化列表化如下表:

A列:打开QQ登录界面,点击关闭按钮,QQ登录退出。
B列:打开QQ登录界面,输入QQ号,状态变为QQ号已输入,点击关闭按钮,QQ登录退出。
C列:与B列类似。
D列:打开QQ登录界面,输入QQ号,状态变为QQ号、密码已输入,点击登录按钮,状态变为QQ主界面。
E列:与D列类似。

3.9 其他用例设计方法

测试大纲法。一种着眼于需求的方法。进行详细的需求分析,将其转化为思维导图(树形结构);无需用例设计。从根节点开始分析,到叶结点为止。这样的一条路径就是一条测试用例;一般用于快速测试和过程记录。用例进行候补。
探索性测试法。基于经验和直觉;是计划内测试用例设计的补充;探索性测试执行前也需要设计测试用例。
猴子测试。又称随意测试,随便测试。没有测试用例(无意识的行为)。不能达到指定的覆盖度。想要重复操作,极其困难。

3.10 用例设计方法综合选择(重点)

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

软件测试工程师面试时,如何应对测试用例设计方法怎么用的问题?
首先明确用例设计方法都有哪些:
等价类划分法
边界值分析法
因图法
判定表法
场景法
正交试验法
状态迁徙图法(功能图法)
用例设计方法的使用不是孤立存在的,而是存在与项目中!尤其是一个项目中。

案例:
以教育APP为例说明各种用例设计方法的应用。

启动页

需求:
读取版本更新信息。匹配当前APP与线上需要更新的APP本版是否一致。
读取用户信息。未登录用户,则不用获取;已登录用户,验证是否登录过期。


用例设计方法:场景法
设计场景
场景1:APP的安装版本比最新版更低。启动就需要进行版本检测,并提示。
场景2:APP的安装版本与最新版一样。默认检测过程成功。
场景3:APP启动检测用户登录状态,如果登录过期或者未登录,启动完成后直接跳转登录界面。
场景4:APP启动检测用户登录状态,如果登录信息有效,启动完成后直接跳转首页界面。

登录界面

需求:
手机号:暂时只支持大陆手机
验证码:长度为6位数字
短信验证码文本内容:【正教】456712(正教验证码),30分钟内有效,为确保您账号安全,请勿把验证码告诉他人。感谢您关注正教!
登录按钮点击后,系统可能的弹窗提示。


用例设计方法:等价类划分法、边界值分析法和因果图法
等价类划分法:
手机号的有效性。(手机号包含各种不合法字符);
验证码包含各种不符合需求的字符
边界值分析法:
手机号超过或不足长度限制;
验证码超过或不足长度限制;
验证码有效期为30分钟,所以超过30分钟后使用验证码,就是边界值的使用;
弹窗提示1s消失,超过或不足1s的测试都是边界值的应用;
因果图法:
提交数据时,APP网络中断,有网络异常的提示;
提交数据时,服务端崩溃或者无法提供正常服务,有服务器报错提示或等待提示;
提交数据时,手机号不符合要求(不存在),有手机号错误的提示;
提交数据时,验证码输入不是收到的验证码,验证码超时,有验证码错误提示;

课程内容页

需求如下图:

用例设计方法:场景法、等价类划分法、分界值分析法
场景法:
场景1:该课程今日有作业,有提问的内容展示。老师发布作业的时候,学生提问。
场景2:该课程今日有作业,无提问的内容展示。老师发布作业的时候,学生也没有提问。
场景3:该课程今日无作业,有提问的内容展示。老师没有发布作业的时候,学生提问。
场景4:该课程今日无作业,无提问的内容展示。老师没有发布作业的时候,学生也没有提问。
等价类划分法、边界值划分法:
日期的显示。有没有2022年2月有29天?
日期的显示。会不会出现2022年2月1日和2022年1月31日重复或者相隔一天的现象?

正交实验法是一种特殊的用例设计方法。一般少用,如下图参数配置:

总结

1 测试用例的定义:设计一个情况,软件测试这种情况下,必须能够正常运行并且达到程序所设计的预期结果。
2 测试用例模板:测试用例编号、测试项(测试目的)、依赖用例、测试步骤、输入数据、预期结果、测试结果、测试人、备注
3 黑盒测试用例设计方法。
测试数据选择:等价类划分法、边界值分析法。
测试步骤设计:因果图法、判定表法、正交试验法、功能图法、场景法。
等价类划分法:将数据分为有效等价类和无效等价类。
边界值分析法:取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
因果图法:一种适合于描述对于多种输入条件组合的测试方法。例如:QQ注册需要昵称文本框、密码文本框、手机号文本框和“立即注册”按钮。
场景法:用事件触发来控制流程的。例如:ATM机的业务。
正交实验法:适用于参数配置类的软件。
功能图法:又称状态迁徙图。适用于软件状态明确。例如:QQ登录。
所有测试用例的设计方法没有独立使用的,都是融合在一起使用。往往在一个软件的界面中,都可以使用好几种测试用例的设计方法。

软件测试 通用技术03 测试用例 黑盒测试用例设计方法 等价类划分法 边界值分析法 判定表法 场景法 功能图法 其他用例设计方法 用例设计方法综合选择相关推荐

  1. 功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】

    如何设计软件设计[测试用例设计] 一.测试设计与测试用例 测试设计:将概括的测试目标转化为具体的测试条件和测试用例的一系列活动. 测试分析和设计的主要任务: 评审测试依据 (需求.系统架构.设计.接口 ...

  2. 黑盒测试用例设计方法一(等价类划分、边界值分析)

    测试数据选择:等价类划分法和边界值分析法 一.黑盒测试用例设计方法 1.黑盒测试用例设计方法概述 2.等价类划分法 2.1等价类划分法原理 2.2等价类划分法设计步骤 2.2.1确定等价类的原则 2. ...

  3. 使用等价类划分法和边界值分析法设计出学生成绩的测试用例

    等价类划分法和边界值分析法的结合使用 1.等价类划分法简介 1.1基本思想 1.2划分基础 1.3等价划分类的规则 1.4测试用例的设计步骤与实例 1.5三角形问题的等价类划分法设计测试用例. 1.6 ...

  4. 找零钱最佳组合,实验报告(请结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例)

    实验:找零钱最佳组合,实验报告 一.实验目的: (1)掌握黑盒测试的等价类划分和边界值划分的基本方法 (2)利用等价类划分和边界值分析的方法,正确的设计测试用例 实验重点及难点: 重点:正确地划分等价 ...

  5. 【软件测试】黑盒测试技术——等价类划分和边界值分析

    黑盒测试技术也称功能测试.数据驱动的测试.基于规格说明的测试. 测试方法有:等价类划分法.边界值分析法.决策表法.因果图法.错误推测法.正交试验法和场景法. 本文先介绍等价类划分法和边界值分析法. 等 ...

  6. 3.4 黑盒测试用例的设计方法 之 等价类划分与边界值分析

    3.4 黑盒测试用例的设计方法 具体的黑盒测试用例设计方法包括等价类划分法.边界值分析法.场景法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法等. 这些方法是比较实用的,但采用什么方法 ...

  7. 今天带大家学习软件测试用例设计(等价类划分和边界值法)

    黑盒测试技术概述 黑盒测试测试用例的设计方法: 等价类划分 边界值法 因果图法 决策表法 错误猜测法 正交实验法 场景法 一:等价类划分 案例:计算两个1-100之间整数的和.穷举测试不可行. 等价类 ...

  8. 软件测试第二课 等价类划分、边界限制和判定表的使用

    今天目标 能对穷举场景设计测试点 能对限定边界规则设计测试点 能对多条件依赖关系进行设计测试点 能对于项目业务进行设计测试点 一.解决穷举场景 重点:使用等价类划分法 1.1 等价类划分法 重点:有效 ...

  9. 学习软件测试(三)测试用例、测试用例的设计方法(等价类划分法、边界值分析法、判定表法、因果图法、正交排列法、场景法、错误推测法)

    目录 测试用例 测试用例八大要素 测试用例的设计方法 等价类划分法 等价类操作步骤 边界值分析法 边界范围 边界值法的操作步骤 案例1 案例2 判定表法 为什么使用判定表法 判定表法的四个组成部分 判 ...

最新文章

  1. python【力扣LeetCode算法题库】17-电话号码的字母组合
  2. 最强的Attention函数诞生啦,带给你意想不到的巨大提升!
  3. 解决ERROR: cannot download default sources list from:https://raw.githubusercontent.com/ros/rosdistro/m
  4. 云服务器镜像麻烦吗_云服务器的镜像功能有什么作用?
  5. 初探 RabbitMQ 消息队列
  6. java.lang.NoSuchMethodError: org.apache.poi.hssf.usermodel.HSSFSheet.getMergedRegion
  7. Hibernate概述
  8. python求无序列表中位数_详解Python如何获取列表(List)的中位数
  9. Windows 两条命令找到占用你某个端口的程序
  10. IOI2008Island 基环树直径。
  11. 杭电oj-----Nightmare(BFS)
  12. 大学计算机课程复习--汇编语言
  13. 业务如何驱动技术发展
  14. 如何用PPT制作一份可视化数据图表?
  15. 利用scrapy爬取句子迷网站优美句子存储到本地(喜欢摘抄的人有福了!)
  16. ROS中launch文件和参数设置
  17. java 分卷压缩_Java:分卷压缩和解压缩请选择Zip4j
  18. yarn中MR作业报错Java heap space
  19. 2019年新版新媒体运营学习路线,附完整视频+工具+运营经验
  20. (一)SDRAM——SDRAM入门介绍

热门文章

  1. 【Javascript基础语法】第五周预习博客
  2. 基于css简易实现头像更换动画效果
  3. Chrome 地址栏
  4. 服务器网口自动掉线,服务器连接交换机端口,一会连接一会断开
  5. 7 款殿堂级的开源 CMS(内容管理系统)
  6. 基于laravel免费开源CMS推荐
  7. linux的一些细节记录
  8. Matlab实现 乘幂法反幂法
  9. 移动、联通和电信,哪家的宽带好,看完你就知道该怎么选了!
  10. 0816常见错误分析