美文网首页
测试用例设计

测试用例设计

作者: QA_man | 来源:发表于2018-08-22 15:29 被阅读0次

    等价类划分

    1. 有效等价类指对于程序规格说明来说,是合理的、有意义的输入数据构成的集合
    2. 无效等价类和有效等价类相反,无效等价类是指对于软件规格说明而言,没有意义的、不合理的输入数据集合

    等价类划分的方法

    1. 按区间划分。
    2. 按数值划分。
    3. 按数值集合划分。
    4. 按限制条件或规划划分。
    5. 按处理方式划分。

    等价类划分的原则

    1. 在输入条件规定的取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。数组
    2. 在规定了输入数据的一组值中(假定有n个值),并且程序要对每个输入值分别处理的情况下,可以确定n个有效等价类和一个无效等价类。switch case
    3. 在规定输入数据必须遵守的规则的情况下,可以确定一个有效等价类和若干个无效等价类。
    4. 在输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类。
    5. 在确定已划分的等价类中各元素在程序处理中的方式不同的情况下,则应将该等价类进一步地划分为更小的等价类。
    6. 在输入条件规定了输入值是一个布尔量的情况下,可以确定一个有效等价类和一个无效等价类
      案例1:


      image.png
      image.png

    边界值分析法

    边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件

    边界值设计用例原则:

    一、如果输入条件规定了值的范围,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据;
    二、如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多1个、比最小个数少1个的数做为测试数据;
    三、如果程序的规格说明给出的输入域或输出域是有序集合
    (如有序表、顺序文件等),则应选取集合的第一个和最后一个元素作为测试用例
    四、如果程序用了一个内部结构,应该选取这个内部数据结构的边界值作为

    因果图法

    应用场景:界面有多个控件,控件之间有不同的组合,得到不同的结果。如按钮,复选框,单选框。
    步骤:找出输入项,找出输出项,找出输入项的关系,找出输出项的关系,找到输入与输出的关系,画因果图,得判定表

    1. 用图解的方法表示输入的各种组合关系写出判定表,从而设计相应的测试用例
      image.png
      https://blog.csdn.net/xionghuixionghui/article/details/68216564 参考博客

    判定表驱动法

    判定表法设计测试用例

    1. 判定表:是分析和表达多逻辑条件下执行不同操作的工具。
    2. 判定表使用场景:如果程序中多个条件决定一个动作,并且每个条件的取值只有两种,且条件和动作之间的逻辑关系明确

    判定表是由条件桩、动作桩、条件项、动作项四部分组成的表格


    image.png

    1)条件桩:列出了所有条件,通常认为列出条件的次序无关紧要

    2)动作桩:列出所有可能的操作,这些操作的排列顺序没有约束

    3)条件项:列出了所有条件的取值组合,在所有可能情况下的真假值

    4)动作项:列出在条件项的各种取值情况下应该采取的动作。

    1. 规则:任何一个条件组合的特定取值及其他相应要执行的操作称为规则。在判定表中贯穿条件项和动作项的一列就是一条规则。

    2. 判定表的化简:合并判定表中两条或多条具有相同动作,并且其条件项之间存在着极为相似关系的,无意义的规则这一过程

    3. 优点:能够将复杂的问题按照各种可能的情况全部列举出来,简明并且可以避免遗漏。

    4. 判定表的建立步骤:

    列出所有的条件和动作
    确定规则的个数
    填写判定表
    化简判定表

    1. 例子:
      问题要求:对于功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应优先维修处理。

    1)列出所有的条件和和动作
    条件:功率大于50马力?/维修记录不全?/已运行10年以上?
    动作:优先维修处理/其他处理方式
    2)确定规则个数
    这里有3个条件,每个条件有2个取值,故应有8中规则。
    3)填写判定表(看列)


    image.png

    4)化简判定表

    首先,找出判定表中相似的规则

    image.png
    然后,化简判定表,表示为“—”的表示取值不影响触发的动作,即:不影响规则
    image.png
    转载出处:https://www.cnblogs.com/vmorgen/p/6862078.html

    场景法

    应用场景:
    a. 界面特点:没有太多填写项,主要通过鼠标的点击,双击,拖拽等完成操作
    b. 把自己当做最终的用户,在使用该软件的时候可能会遇到哪些场景,目的是测试软件的主要业务流程,主要功能的正确性和主要错误处理能力。

    场景法一般包含:基本流和备用流
    从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景。
    下图来展示一下网上最长见的场景法基本情况的一个实例图。


    51Testing软件测试

    在这个图中,有一个基本流和四个备选流。
    每个经过用例的可能路径,可以确定不同的用例场景。
    从基本流开始,再将基本流和备选流结合起来,可以确定以下用例场景:
      
    场景 1 基本流

    场景 2 基本流 备选流 1

    场景 3 基本流 备选流 1 备选流 2

    场景 4 基本流 备选流 3

    场景 5 基本流 备选流 3 备选流 1

    场景 6 基本流 备选流 3 备选流 1 备选流 2

    场景 7 基本流 备选流 4

    场景 8 基本流 备选流 3 备选流 4

    从上面的实例我们就可以了解场景是如何利用基本流和备用流来确定的。

    基本流:采用直黑线表示,是经过用例的最简单的路径(无任何差错,程序从开始直接执行到结束)
      
    备选流:采用不同颜色表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不在加入到基本流中;(各种错误情况)

    下面是场景法的基本设计步骤

    1. 根据说明,描述出程序的基本流及各项备选流
    2. 根据基本流和各项备选流生成不同的场景
    3. 对每一个场景生成相应的测试用例
    4. 对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值

    有一个在线购物的实例
    用户进入一个在线购物网站进行购物
    选购物品后
    进行在线购买
    这时需要使用帐号登录
    登录成功后
    进行付钱交易
    交易成功后
    生成订购单
    完成整个购物过程。

    第一步我们来确定基本流和备选流:

    image.png

    第二步我们根据基本流和备选流来确定场景:


    image.png

    第三步我们来设计用例

    对于每一个场景都需要确定测试用例。可以采用矩阵或决策表来确定和管理测试用例。

    下面显示了一种通用格式,其中各行代表各个测试用例,而各列则代表测试用例的信息。

    本例中,对于每个测试用例,存在一个测试用例ID、条件(或说明)、测试用例中涉及的所有数据元素(作为输入或已经存在于数据库中)以及预期结果。

    通过从确定执行用例场景所需的数据元素入手构建矩阵。然后,对于每个场景,至少要确定包含执行场景所需的适当条件的测试用例
    例如,
    在下面的矩阵中,V(有效)
    用于表明这个条件必须是 VALID(有效的)才可执行基本流,
    而 I(无效)用于表明这种条件下将激活所需备选流。
    下表中使用的“n/a”(不适用)表明这个条件不适用于测试用例。


    image.png

    第四步我们来设计数据,把数据填入上面的用例表中。


    image.png
    以上写到的测试用例只是购物的一部分测试用例。需要的其他测试用例。
    我们可以在写完后再进行补充和扩展,达到比较好的覆盖。

    正交实验法

    应用场景:
    在一个界面中有多个控件,每个控件有多个取值,控件之间可以相互组合,不可能(也没有必要)为每一种组合编写一条用例,如何使用最少最优的组合进行测试。——正交排列法
    正交表的局限性:
    现有的正交表的个数有限,要求每个控件的取值个数相等,在实践中很难遇到。

    正交表选择数据的思想:公平,均匀

    a.每个控件都要参与组合,每个控件的取值与参与组合的次数尽量相等。

    b.从所有的组合数据中,均匀,零星的挑选作为用例的组合数据。
    https://blog.csdn.net/fangnannanf/article/details/52813498
    作者:xuhongge 来源:xuhongge的博客,谢谢

    相关文章

      网友评论

          本文标题:测试用例设计

          本文链接:https://www.haomeiwen.com/subject/pczqiftx.html