软件测试之用例设计,入门必备!

Posted 一个Tester

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试之用例设计,入门必备!相关的知识,希望对你有一定的参考价值。

一名测试工程师的学习之路,所有博客链接已存放在该链接下:一个Tester

一、前言

    测试用例的编写是测试日常工作中必不可少的事情,而如何设计一份好的测试用例呢?一般测试用例的设计包括以下几个关键点:

  • 前提条件:测试环境的需求或者某个前置场景需求。例如网购商品并支付的前置条件肯定是需要登录的。
  • 测试步骤:一步步的操作。这里的步骤一定是需要按照编写的步骤可以重现的情况。
  • 测试数据:使用的数据;例如我现在需要登录,肯定是需要写登录使用的用户名和密码,而用户名和密码就是测试数据。
  • 预期结果:根据需求而言,预期的结果。当实际结果与预期结果不一致,则这个用例就是执行失败。

在这里插入图片描述

二、用例设计方法

    在测试用例设计过程中,常用到的几种测试用例设计方法如下:等价类划分法、边界值法、因果图-判定表设计法

2.1、等价类划分法

    等价类划分法将程序的输入域划分为若干部分,然后从每个部分中选取少数代表性数据当做测试用例,每一类的代表性数据在测试中的作用就等价于这一类中的其他值。从而在某一类中的一个例子发现了错误,就等价于类中其他例子也有同样的错误。反之,如果某一个类中的一个例子没有发现错误,则这个类中的其他例子也不会查出错误。

例如:现在需求为测试一个两位数的加法计算器的计算结果是否正确。其中输入的数值在-99到99之间,大于99或者小于-99的输入应该被拒绝,并显示错误信息。

    如果这个需求不采取等价类划分法,而是根据需求依次分别给加法运算的的两个参数输入指定范围的值,对应的测试结果就应该如下:

第一个参数的值第二个参数的值两数相加的值
112
1-10
1-2-1
123
... ...... ...... ...

    按照上面这种穷举测试的方法,就会有太多的情况需要进行测试。而不采取穷举测试的话,在进行1+1、1+2的测试之后,是否还有必要测试1+3呢?所以这里就出现了等价类划分法。

    等价类划分法的原则如下:

  1. 如果输入条件规定了取值的范围或值的个数,则可确定一个有效等价类和两个无效等价类。

  2. 如果一个输入条件说明了一个“必须成立”的情况,则可划分为一个有效等价类和一个无效等价类。

  3. 如果输入条件规定了输入数据的一组可能的值,而且程序是用不同的方式处理每一个值,则可为每一种值划分一个有效等价类,并划分一个无效等价类。

  4. 如果我们确知,已划分的某个等价类中的各元素(例子)在程序中的处理方式是不同的,则应据此等价类进一步划分为更小的等价类

根据上面这几个划分的原则,用实际情况可以描述为如下:
1:例如 此处的两位数计算器,取值范围为-99到99,所以就对应两个无效等价类(大于99和小于-99),一个有效等价类(输入的值在-99到99之间)。
2.:第二种必须成立的情况,从开发代码的角度来想,就相当于有一个布尔类型的数值,只可能是true或者false,所以就只有两个等价类。
3:第三种情况,就以考试分数为例,小于60分为不及格,60-70为及格,70-80为中,80-89为良,90-100为优。这里就会根据不同的值划分为一个有效等价类。

    在确立好等价类之后,建立等价类表,列出所有划分出的等价类。在基于等价类划分的用例设计中,需要让每一个无效等价类都有唯一的一个测试用例,让每一个有效等价类都有用例(也就是一个用例可以包含多个有效等价类)。根据等价类划分的原则中的1和4,从而可以设计出下面的几个等价类:

序号功能项有效等价类编号无效等价类编号
1 两位数加法-99≤加数取值≤0 2加数取值<-991
0≤加数取值≤99 3加数取值>994
    而根据上面划分的等价类,从而可以设计出我们的设计用例为:
测试用例编号输入数值所属等价类预期输出
150+23正确输出:52
2-63+(-20)2正确输出:-83
3-30+102,3正确输出:-20
4-1301错误信息
51254错误信息
    上面就是关于等价类划分法的基本介绍和一个举例。其实关于上面这里例子,等价类是还可以去细分的。例如无效等价类中,还可以有输入的不是数值,而是字母等情况。但是在等价类划分的时候,也不是越细致越好,不然会过于冗余。

2.2、边界值法

    边界值法是一种补充等价类划分法的测试用例设计技术,它不是选择等价类的任意元素,而是选择等价类边界的测试用例 。

    还是用上面两位数加法的测试而言,可能也会出现以下情况:输入的数值分别为-99和98后,预期是能计算成功的,但是实际可能会出现提示输入值有误,这里就是因为边界值没有得到好的测试。根据边界值法,我们就会新增以下几条用例:

测试用例编号输入数值被测边界预期输出
1-100-99错误信息
2-99+(-99)正确输出:-198
3-98+(-98)正确输出:-196
498+9899正确输出:196
599+99正确输出:198
6100错误信息
     边界值设计的原则:
  • 如果输入条件规定了取值范围,应以该范围的边界内及刚刚超过范围的边界外的值作为测试用例。例如以a和b为边界,测试用例应当包含a和b及略大于a和略大于b的值。

2.3、因果图与判定表

    前面的等价划分法和边界值分析法都是着重考虑输入条件,但是没有考虑条件的各种组合、输入条件之间的相互制约关系。但是如果测试时必须考虑输入条件的各种组合,那么条件组合的数目将是天文数字。所以需要采用一种适合多种条件的组合、产生多个相应动作的测试方法,这就需要利用因果图设计方式来考虑。
    因果图:基于上面这种思想,一些程序的功能可以用决策表(判定表)的形式来表示,并根据输入条件的组合情况规定相应的操作。因此,可以考虑为决策表中的每一例设计一个测试用例,以便测试程序在输入条件的某种组合下的输出是否正确。

    而一般判定表包含以下四部分:

  • 条件桩:列出了问题的所有条件,通常认为列出得条件的次序无关紧要。
  • 动作桩:列出了问题规定可能采取的操作,这些操作的排列顺序没有约束。
  • 条件项:列出针对它左列条件的取值,在所有可能情况下的真假值。
  • 动作项:列出在条件项的各种取值情况下应该采取的动作。

    还是以两位数加法计算器为例,使用因果图-判定表的方法进行用例设计:

  • 分析出输入条件和输出条件

输入1

条件1:0≤X≤99
条件2:-99≤X<0
条件3:X<-99
条件4:X>99
输入2
条件1:0≤X≤99
条件2:-99≤X<0
条件3:X<-99
条件4:X>99

输出

正确计算
错误计算
  • 分析条件互斥
    输入1的条件1、2、3、4之间互斥,输入2的条件1、2、3、4互斥,输入1与输入2之间不存在互斥。输出结果正确与错误互斥。

  • 分析、简化并画出判定表

输入1
条件1 TT------
条件2 --TT----
条件3 ----TT--
条件4 -----T--
输入2
条件1 T-T-----
条件2 -T-T----
条件3 ------T-
条件4 -------T
输出
正确计算 XXXX----
错误提示 ----XXXX
  • 得到测试用例
测试用例编号输入数值预期输出
1 98+98正确输出:196
2 99+(-99)正确输出:0
3 -98+(50)正确输出:-48
4 -34+(-45)正确输出:-79
5 -100错误信息/td>
6 100错误信息
7 20+(-123)错误信息
8 20+(123)错误信息

以上是关于软件测试之用例设计,入门必备!的主要内容,如果未能解决你的问题,请参考以下文章

软件测试之用例设计,入门必备

Java新手入门200例124之用JDBC连接Mysql数据库

软件测试体系学习及构建(17)-测试活动之用例设计

接口测试之用例设计思路

接口测试之用例设计实践总结

Java新手入门200例126之用单向链表实现栈