菜鸟小白的测试基础理论总结(二)

    今天我们来看一看软件测试方法都有哪些?

等价类划分

    数据输入是我们都会遇到的情况,我们还是拿新建用户来举例,用户名的输入长度(1-32个字符)、允许输入的内容(如:只允许输入字母、数字和英文下划线),我们如果想要把每一种情况都验证到显然是不可能;如果我们随便验证一两个又有可能出现漏测,导致bug暴露给客户。这个时候等价类划分的方法就很重要了。

  • 等价类:指的是某个特定的子集合,集合内部所有的元素都具有相同的特性,对于测试来说就是为了简化测试输入,

  • 划分:指的是互相不相交的一组子集,这些子集的并集是整个完整集合。对测试来说就是保证了测试的完备性。

  • 等价类划分:就是将所有可能输入的数据划分为若干个等价类子集,然后从每个等价类子集中选取部分具有代表性的数据作为测试数据使用。所以每一个使用等价类划分方法完成的测试用例都需要经历划分等价类和选取测试数据两个过程。

    从上面的介绍我们可以看出等价类划分是一种典型的黑盒测试方法,使用了等价类划分的方法之后,我们将漫无边际的随机测试转变成了有针对性的测试,极大的提高了测试效率和测试完备性。

    针对测试而言,等价类还区分有效等价类和无效等价类。其中:

  • 有效等价类指的是测试系统允许输入的合法数据的等价类,测试的是正常输入情况下,是否完成了规格中所规定的功能和性能。

  • 无效等价类指的是测试系统不允许输入的不合法数据的等价类,测试的是异常输入情况下,测试系统对异常输入的处理是否合理,能否保证系统正常运行。

    在上面的新建用户的例子中,符合输入要求的等价类(输入长度在1-32个字符之间、只允许输入字母、数字和英文下划线)就是有效等价类,不符合要求的等价类就是无效等价类。

边界值分析

    边界值分析也是一种黑盒测试方法,正好是对等价类划分方法的补充。实践证明,程序往往是在输入输出的边界值情况下容易发生错误,就我们自己写程序也有是经验的,如果一个判断条件没有写好,往往不是判读条件的中间内容我们没有弄清楚,一般都是我们判断条件的边界没有考虑清楚。所以我们采用边界值分析法就是一种极其高效的方式。

    边界值分析我们一般会取高于或者低于其最低值的一些特定情况。还是用新建用户名来举例,用户名的长度范围在1-32个字符之间,那我们取稍高于或者稍低于边界值的取值来进行验证,我们分别输入31个字符、32个字符和33个字符,系统能否正常允许新建31和32个字符的用户名,而新建33个字符的用户名时提示报错。

    看过我上一篇总结的同学可能还记得,我是批评过这个测试用例的。需要说明的是,我今天仅仅是举例说明边界值分析方法如何使用,根据不同的实际情况,有些偏激测试例可以测出问题,但是发现的问题有没有价值又是一种认识,不在学习测试方法的范畴。所以学习不是死学习,因地制宜,灵活使用学到的内容才是我们应该做到的。

因果图法

    前面两种方法说的都是单输入和单输出的情况,考虑的是单个点的合法性。但是我们在测试过程中不能仅仅考虑到单个点的合法性,我们往往还需要看不同输入、输出之间的逻辑关系。如果将不同点的逻辑关系整理清楚就需要我们使用因果图法来梳理逻辑了。

    因果图法分析的是输入和输入的关系或者输入和输出的逻辑关系

输入和输入的关系

输入和输入的关系

所有输入条件中最多有一个产生,也可以一个没有

 

或(or)

所有输入条件中,最少有一个产生,或者多个产生,或者所有的都产生

 

唯一

所有的输入条件中,有且只有一个条件产生

 

要求

所有输入条件中,只要有一个产生,其它的都会跟着出现

输入和输出的关系

输入和输出的关系

恒等

当输入条件发生时结果一定会出现

   

当输入条件不发生时,结果一定不会出现

 

非(not)

当输入条件发生时,结果一定不会出现

   

当输入条件不发生时,结果一定会出现

 

与(and)

当多个输入条件中,只有所有的输入条件都发生,结果才会出现

 

或(or)

当多个输入条件中,只要有一个输入条件发生,结果就会出现

    我们还是用新建用户的例子吧。我们新建一个用户,用户的参数有用户名和电话号码两个,只有两个都合法填写后才能创建成功,错误提示是优先提示用户错误,然后提示电话错误。

    根据这个规则我们可以得出如下的因果关系表。

序号

参数

1 2 3 4
用户名 1 0 1 0
电话 1 1 0 0
创建成功 1 0 0 0
提示用户名错误 0 1 0 1
提示电话错误 0 0 1 0

由于结果存在重复,所以我们表格优化一下,并可以输出测试用例。

序号

参数

1 2/4 3
用户名 1 0 1
电话 1 0
创建成功 1 0 0
提示用户名错误 0 1 0
提示电话错误 0 0 1
用例 输入合法用户名和电话 输入不合法的用户名,输入合法或者不合法的电话 输入合法用户名,输入不合法电话

错误猜测

    这个完成依靠测试人员自身经验,没有什么规律和技巧可言了。错误推测法一般用于软件测试的最后部分,根据测试人员自身经验寻找一些软件的缺陷。

    好了,今天的分享就到这里,我们明天再会~