测试用例设计方法

趁着上篇笔记说的,我们进行功能测试的时候需要书写测试用例,为什么呢?因为我们的产品已逻辑复杂而著称,心特大,什么都想做,功能都是抄抄抄,看一眼就头晕,不写用例测试的时候无从下手~

一、什么是测试用例?

     百度百科:测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。

     通俗的讲:就是把我们测试系统的操作步骤用按照一定的格式用文字描述出来。

二、写测试用例有什么好处(博客园虫师的总结)?

  • 理清思路,避免遗漏

        这里是我们认为最重要的一点,假如我们测试的项目大而复杂,我们可以把项目功能细分,根据每一个功能通过编写用例的方式来整理我们测试系统的思路,避免遗漏掉要测试的功能点。

  • 跟踪测试进展

        通过编写测试用例,执行测试用例,我们可以很清楚的知道我们的测试进度。

  • 历史参考

        在我们所做的项目中,也许会有很多功能是相同或相近的,我们对这类功能设计了测试用例,便于以后我们遇到类似功能的时候可以做参考依据。

  • 重复性

        我们测试一个系统不是一个人测一遍就算测完的,需要多人反复的进行测试,那么我们就需要测试用例来规范和指导我们的测试行为。

 三、写测试用例的方法?

  • 等价类划分法

   等价类划分法就是把程序的输入域划分为若干个集合,然后从每个集合中选取少数具有代表性的数据当作测试用例的方法;每个集合都可以看作一个等价类;

等价类划分:

    •  有效等价类:  是指对被测程序合理的,有意义的输入数据的集合
    • 无效等价类:是指对被测程序无意义对的、不合理的输入数据的集合

     比如:程序规定搜索框仅支持汉字

            有效等价类集合:a (所有汉zi)

             无效等价类集合:b(y有zi母)、c(有数zi)、d(有特殊符号)

             就可以生成测试用例

             测试数据           期望结果        覆盖的等价类

                你好                   有效                a

            你好nihao             无效                 b

            你好123                无效                 C

            你好@                   无效                 d

  •  边界值测试

边界值测试,就是对程序输入域的边界值进行测试;通常和等价类划分法结合使用,作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界

        比如:程序规定搜索框仅支持汉字

               就可以生成测试用例:

               一个字也不输入

               输入很多字

  • 错误推断法

基于经验和直觉推测程序中可能存在的各种错误,从而有针对性的设计测试用例。

  1. 根据被测业务的行业经验进行错误推断
  2. 以前产品测试中曾经发现的错误
  3. 以前有过错误记录的代码更容易出现错误
  4. 需求说明不详细的代码部分更容易出现错误
  5. 重构、优化过的代码需要投入更多的测试
  6. 设计多个开发人员的模块需要投入更多的测试
  •    因果图法

是一种利用图解法分析输入的各种情况,从而设计测试用例的方法,既然是图解,所以因果图中使用了简单的逻辑符号 ,以直线连接左右结点,左节点表示输入结点,通常用Ci表示,右结点表示输出结点,通常用Ei表示;因果关系有四种,其标识如下图所示:

上图展示的为原因和结果之间的关系,没有考虑输入条件之间的相互制约关系,条件之间的相互制约关系一般分为5种:

(a)E(互斥、排他)。a、b两个原因不会同时出现,最多只有一个出现。

(b)I(包含、或)。a、b、c三个原因至少有一个出现。

(c)O(唯一)。a、b两个原因必须有一个出现,且仅有一个出现。

(d)R(需求)。a出现时b必定出现。

从结果方面考虑主要有1种约束条件:

(a)M(屏蔽)。a出现时,b必定不出现;a不出现时,b则不确定。

利用因果图设计测试用例应遵循的步骤:

1)分析程序的规格说明书中哪些事原因,哪些是结果。所谓原因,是指输入条件或输入条件的等价类,而结果是指输出条件。

  给每一个原因和结果赋一个标识符。

2)分析程序规格说明书中的语义,确定原因与原因,原因与结果之间的关系,画出因果图。

3)由于语法环境的限制,一些原因与原因之间,原因与结果之间的组合不能出现。对于这些特殊情况,在因果图中用一些记号标明约束或限制条件。

4)将因果图转化为判定表。

5)根据判定表的没一列设计测试用例。

当然,若能直接得到判定表,可以直接根据判定表设计测试用例。

因果图法设计测试用例举例:

有一个单价为五角钱的饮料自动售货机软件,对其采用因果图方法设计测试用例。需求如下:

1)若售货机没有零钱找,则一个现实“零钱找完”的红灯亮,以提示顾客在此情况下不要投入1元钱,否则此红灯不亮。

2)顾客投入5角硬币,然后按下“橙汁”或“啤酒”按钮,则相应的饮料被送出。

3)顾客投入1元硬币并按下“橙汁”或“啤酒”按钮后,若售货机没有零钱找,则显示“零钱找完”的红灯亮,1元硬币被退出,且无饮料送出;若有零钱找,则五角硬币被退出且饮料被送出。

列出原因

编号原因
1售货机有零钱找
2投入1元硬币
3投入五角硬币
4按“橙汁”按钮
5按“啤酒”按钮

列出结果:

编号结果
21售货机“零钱找完”灯亮
22退还1元硬币
23退还五角硬币
24送出橙汁饮料
25送出啤酒饮料

根据需求说明设置中间节点:

序号中间节点
11投入1元硬币且按饮料按钮
12按“橙汁”或“啤酒”按钮
13退还五角零钱且售货机有零钱找
14钱已付清

 

根据列出的原因、结果、中间节点花出因果图:

2、3号原因不能同时出现,4、5号原因不能同时出现。

将因果图转换为判断表:

在构成的判定表中,个原因、中间节点、结果的取值为0表示其代表的状态不出现;为1表示状态出现。

中间节点与结果没有值为因违反约束不会出现的情况,16、32列没有做任何操作。8、12、24、28列不符合常理(投币却没有选择饮料)为无效列。

根据剩下的列设计测试用例。

 

用例编号有无零钱投入金额饮料预期结果
C01有  1元橙汁退回五角、送出橙汁
C021元啤酒退回五角、送出啤酒
C035角橙汁送出橙汁
C045角啤酒送出啤酒
C051元橙汁灯亮、退出1元
C061元啤酒灯亮,退出1元
C075角橙汁灯亮,送出橙汁
C085角啤酒灯亮、送出啤酒

  • 判定表法

因果图案例中已经表诉

 

方法已经描述完了,我们再说下测试用例的格式,一般每个公司都有自己的用例管理系统,行业内有禅道,QC等,看你们公司的选择了,我们是用testLink维护测试用例的,编写的时候类似与写word,自动生成的格式像Excel;虽然写测试用例的时候让人想吐血,但是写好后确实步骤清晰,方便执行。写好后如下图:

 

 但是这样的测试用例我们只会在项目时间充分的时候才会写,项目时间紧且项目比较繁杂时,我们会直接用脑图描述测试用例,会大大节省时间,好用的脑图如百度脑图,XMind等。总之,写测试用例在测试过程中是非常重要的环节,一份好的测试用例是一个测试人员水平的最好体现。

 

 

 

                 

       

转载于:https://www.cnblogs.com/Soberer/p/7756143.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值