您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件测试技术 > 测试用例 > 正文

测试基础 —— 如何设计软件测试用例?

发表于:2018-07-13 作者:测试分享 来源:蜗牛学院

前言

 

在我们测试工作中大多数测试人员使用的用例设计方法都是黑盒用例设计方法,其中使用最多的方法就是等价类划分法和边界值分析法,这两者也是所有的用例设计方法中最简单的,但是有一个缺点是如果我们稍不注意就会造成数据的遗漏,我们这篇文章就主要来分析一下如何合理高效的使用这两种方法设计测试用例。

 

如何编写测试用例

1.测试用例的组成元素

  • 用例编号
  • 用例标题
  • 功能模块名称
  • 前置条件
  • 输入数据
  • 操作步骤
  • 预期结果
  • 优先级
  • 执行结果
  • 编写人
  • 执行人
  • 其他补充项

以上列出来的项并不是需要完全写在我们的用例里面的,但是像用例编号,用例标题,前置条件,输入数据,操作步骤,预期结果,优先级,执行结果则是每一条测试用例必要元素。

2.用例标题

 
  • 不能有过多的字数
  • 概括性-只需要看一眼标题就知道本条用例到底写了什么
  • 坚决杜绝歧义性
3.测试用例的特点
 
  • 步骤清晰

要有很清楚的操作步骤,如果你不知道怎么写就按照执行测试的步骤一步一步写清楚就好了,比如我们现在有一个QQ登录的用例,那么就可以这样写操作步骤:

1.点击QQ应用程序

2.输入正确的用户名

3.输入正确的密码

4.点击登录

  • 结果唯一

每一条测试用例都只能有一个唯一的测试结果;每一条测试用例都只能包含一个测试点;每一条测试用例允许有多个检查点;预期结果中不能有歧义或者二义的字。

  • 可操作性强

要保证不同的测试人员或者不同的测试平台,最终的结果都是相同的。

注意点:不管是用例标题还是预期结果,尽量不要使用含糊不清的语句

用例设计方法

 

1.等价类划分法

等价类划分法就是把输入域的可输入值进行等价性划分,然后在每一个等价域中取少量的能代表这个等价域的值作为测试用例的输入数据。根据每个等价类值是否对程序有作用,分为有效等价类和无效等价类。

有效等价类:此类中的值对于我们执行用例的程序来说是有意义且合理的,可以有效的检验程序是否实现了需求规格说明中规定的功能和性。

无效等价类:此类中的值正好相反,对程序来说是不合理的、无意义,输入此类中值程序无法实现相应的功能和性能,但是不是说程序不会对此类中值有反应,从程序的健壮性来考虑,程序也应该对此类中的值做出正确的反应。

等价类划分的原则:

1、按区间划分

当输入条件已经规定了取值范围或者值的个数时,我们基本可以确定一个有效等价类和两个无效等价类。

2、按数据集合划分

在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类(该集合有效值以外)

3、按数据布尔值划分

在输入条件是布尔值的情况下,可确定一个有效等价类和一个无效等价类

4、按数值划分

要规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类

5、按限制条件或规则划分

在规定了输入数据必须遵守的规则情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)

6、按细分等价划分

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

我们根据上面几条原则将输入域的可输入值进行划分后,就可以在每个等价域中选取少量具有代表意义的值来作为程序执行的输入数据,并开始设计测试用例。其实我们在设计测试用例时不仅要考虑输入域,更要考虑输出域,输出域的等价类划分和输入域的划分是相同的。

设计测试用例的方法:

1)设计新的测试用例,使其尽可能多地覆盖未覆盖的有效等价类,按照这一步骤重复进行,直到所有的有效等价类都被覆盖为止

2)设计新的测试用例,使其只覆盖一个尚未被覆盖的无效等价类,按照这一步骤重复进行,直到所有的无效等价类都被覆盖为止

注意点:非常重要的一点是一条测试用例中只有有一个无效等价类,就好像我们常说的一条测试用例只包含一个测试点一样的。如果你一开始不能分清楚有效等价类和无效等价类可以先输出等价类表,然后根据等价类表来输出测试用例。

2.边界值分析法

边界值分析法我们一般用于对等价类划分法完成之后作补充,但是这也是必不可少的,原因在于程序的很多错误都是发生在输入或者输出的范围的边界上的,而不是在输入范围的内部,所以针对各种边界情况进行测试用例的设计通常都会有很好的测试效果。

所谓的边界是指输入域中,稍高于或者地域边界值的一些特定情况,边界值分析不仅要考虑输入条件,还要考虑空值时的测试情况。空格,null,""等都是比较特殊的清理狂,在设计测试用例的时候需要特别注意一下。

边界值分析的值

 

  • 内点:域内的任意点都是内点
  • 上点:指边界上的点,无论此时域是开区间还是闭区间,上点就是域的上限与下限值
  • 离点:指的就是离上点最近的点,这里就跟闭区间还是开区间就有关系了,如果是开区间,那么离点就在域内,如果闭区间,那么离点就在域外(开内闭外)

例如:输入框的输入数据范围为3-6(包含3和6),则内点是4,5;上点是3,6;离点是2,7。

边界值分析的原则:

  • 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据(内点,上点,离点)
  • 如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据
  • 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例
  • 如果程序中使用的一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例
  • 分析规格说明,找出其他可能的边界条件

边界值分析法不仅可以针对输入框中数值进行分析,对于下拉框、空间都是可以进行分析的。

黑盒用例设计方法除了以上二种还有很多,测试人员在编写测试用例时不需要强制要求使用哪一种方法,并且在编写用例过程中,一般都需要搭配多种设计方法共同编写,以满足测试用例对需求规格说明书的最大覆盖。