zoukankan      html  css  js  c++  java
  • 测试用例设计方法

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

    一、什么是测试用例?

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

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

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

    • 理清思路,避免遗漏

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

    • 跟踪测试进展

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

    • 历史参考

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

    • 重复性

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

     三、写测试用例的方法?

    • 等价类划分法

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

    等价类划分:

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

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

                有效等价类集合: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元 橙汁 退回五角、送出橙汁
    C02 1元 啤酒 退回五角、送出啤酒
    C03 5角 橙汁 送出橙汁
    C04 5角 啤酒 送出啤酒
    C05 1元 橙汁 灯亮、退出1元
    C06 1元 啤酒 灯亮,退出1元
    C07 5角 橙汁 灯亮,送出橙汁
    C08 5角 啤酒 灯亮、送出啤酒

    • 判定表法

    因果图案例中已经表诉

     

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

     

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

     

     

     

                     

           

  • 相关阅读:
    C++ 模板函数指针
    MaxScript Object_Oriented_Struct 使用strut 模拟面向对像编程中的 Class
    C# Managed DirectX 学习笔记 一 (基础环境,画三角形,输入的处理)
    C# 代理做为函数参数的时候
    mongoose基本增删改查
    JS中的reduce()详解
    JS中every()和some()的用法
    JS数组遍历方法集合
    第一篇博文
    gb2312 了解
  • 原文地址:https://www.cnblogs.com/Soberer/p/7756143.html
Copyright © 2011-2022 走看看