软件测试中的等价类测试的例子,【软件测试基础】等价类划分法_雩火的博客-程序员宅基地

技术标签: 软件测试中的等价类测试的例子  

1.介绍

等价类划分是一种典型的黑盒测试方法。等价类划分是指分步骤把海量(无限)的测试用例集减得很小,但过程同样有效。也就是说,选取足够小测试用例,发现更多软件缺陷。

2.类型划分

等价类划分有两种不同情况:有效等价类和无效等价类。

有效等价类:

是指对于程序的需求规格说明来说是合理的,有意义的输入数据构成的集合。

利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能(确认过程)。

无效等价类(与有效等价类的定义恰巧相反)

是指对于程序的需求规格说明来说是不合理的,无意义的输入数据构成的集合。

利用无效等价类可检验程序对于无效数据的异常处理能力(检验过程)。

3.测试用例完整性划分

根据测试用例的完整性可以划分:

弱一般等价类测试

强一般等价类测试

弱健壮等价类测试

强健壮等价类测试

下面使用二分法来说明测试用例的完整性:

57cfcd11888e?ivk_sa=1024320u

测试用例完整性

健壮是指要考虑无效值。强是指要考虑组合情况,使用笛卡尔积算出测试用例个数。

使用下面例子分别说明它们区别:

某城市电话号码由三部分组成。地区码:空白或三位数字;前缀:不能1和2开头的三位数字;后缀:4位数字。

根据上面信息划分等价类:

57cfcd11888e?ivk_sa=1024320u

等价类划分

3.1弱一般等价类

使用最少测试用例覆盖每个有效等价类。在上面例子弱一般等价类的用例如下:

57cfcd11888e?ivk_sa=1024320u

弱一般等价类

3.2强一般等价类

强一般等价类是基于多缺陷假设,强一般等价类的测试用例是要覆盖每个有效等价类取值的笛卡尔积。即在有效等价类取值的所有组合。组合个数是2 * 1 *1=2。

57cfcd11888e?ivk_sa=1024320u

强一般等价类

3.3弱健壮等价类

在弱一般等价类的基础上,增加取值为无效值的情况。对于无效输入,测试用例将拥有一个无效值,并保持其余的值是有效的。

57cfcd11888e?ivk_sa=1024320u

弱健壮性等价类

3.4强健壮等价类

在强一般等价类的基础上,增加取值为无效值的情况。也是运用笛卡尔积思路得出测试用例。测试用例个数有:(2+3)*(1+5) * (1+3)=5 * 6 * 4 = 120(个),用例数量太多,就不意义列出来了。

上面从四个不同方面来思考怎样设计测试用例,我们需要选取如何测试用例,发现更多缺陷呢?正如我们在开头提到:

等价类划分是指分步骤把海量(无限)的测试用例集减得很小,但过程同样有效。

4.使用方法

等价类使用方法说明如下:

按照输入条件建立有效等价类和无效等价类,列出所有划分出的等价类。

为每一个等价类规定一个唯一的编号。

设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。

设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。

根据以上说明,弱健壮等价类是符合以上要求。在使用等价类划分法设计测试用例的的重点在于划分有效等价类和无效等价类粗细的粒度。粒度越粗,设计测试用例越少,粒度越细,设计测试用例越多。相对来说,粒度越细能发现更多问题。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36342428/article/details/119125043

智能推荐

概率论必背知识点_二项分布的d(x)与e(x)公式_神迹小卒的博客-程序员宅基地

理解背诵概率基础条件概率,乘法公式全概率公式贝叶斯公式一维随机变量离散型随机变量 分布律,分布函数连续性随机变量 分布函数,概率密度连续性随机变量函数 概率密度:单调、普通(分布函数--求导-->概率密度)二项分布 X~B(n,p) 分布律 E(X)=np D(X)=np(1-p)泊松分布X~P() 分布律P{X=k}=^k/k! e^(-) E(X)=D(X)=均匀分布X~U(a,b)..._二项分布的d(x)与e(x)公式

Widows主机与CentOS虚拟机实现文件传输_虚拟机 centos6.5 上传文件-程序员宅基地

Centos虚拟机开启SSH连接虚拟机中执行命令yum list installed | grep openssh-server 确保虚拟机中是否安装了openssh-server此处显示已经安装了 openssh-server,如果又没任何输出显示表示没有安装 openssh-server,执行命令 yum install openssh-server 安装openssh-server执行命令cd etc/ssh/进入/etc/ssh/ 目录执行命令ls 查看ssh目录下..._虚拟机 centos6.5 上传文件

国标GB28181对接视频流(C++实现,有源码)_c++ gb28181-程序员宅基地

国标GB28181对接视频流 今天抽空写下以GB28181的方式获取摄像机视频流以备后用,同时也希望能帮助到正着手开发GB28181对接视频的同学,这块的资料实在不多。今天讲的内容不涉及到平台对接,平台对接下次有时间再讲,平台对接相对更麻烦点。通过GB28181获取摄像机视频流,首先需要摄像机支持GB28181,如何知道摄像机是否支持GB28181协议呢?请看下图: ..._c++ gb28181

SQL Server 卸载重装_重装sql-程序员宅基地

SQL Server 卸载重装sql server由于种种原因我的sql server需要卸载重装,但是按照CSDN上的一些教程并没有解决问题,最后在评论区找到一个说用软件卸载成功的,尝试完毕决定记录下来。下载Total Uninstall Essential下载链接:官方插入链接与图片链接: link.下载完成后打开如下:然后搜sql:然后把带有sql的那几个文件全部卸载,点击文件后该软件会分析,直至右边出现如下界面点击Uninstall,即可。这样完成后服务、注册表、控制面板_重装sql

kubectl 创建 Pod 背后到底发生了什么?-程序员宅基地

原文链接:https://github.com/jamiehannaford/what-happens-when-k8s前言想象一下,如果我想将 nginx 部署到 Ku..._kubectl 创建pod背后发生了什么

基于MDK创建纯汇编语言的STM32工程-程序员宅基地

这目录汇编语言STM32工程汇编程序—闪烁LED总结参考汇编语言STM32工程打开KELI软件,选择新建工程:然后对新建的工程进行命名和保存:然后我们使用的是STM32VET6,这里就按下图进行选择:然后进行常规的选择(startup中包含之前提到的STM32启动文件)创建好以后如图所示:然后向建立的工程添加一会需要用到的汇编文件:并对.s文件进行命名、添加:然后就得到下图的结果:然后将一下汇编代码添加到HUIBIAN.s文件中: AREA MYDATA, DATA

随便推点

smb协议只能在同一网段吗_基于SMB协议的共享文件读写 博客分类: Java-程序员宅基地

一、SMB协议SMB协议是基于TCP-NETBIOS下的,一般端口使用为139,445。服务器信息块(SMB)协议是一种IBM协议,用于在计算机间共享文件、打印机、串口等。SMB 协议可以用在因特网的TCP/IP协议之上,也可以用在其它网络协议如IPX和NetBEUI 之上。SMB 一种客户机/服务器、请求/响应协议。通过 SMB 协议,客户端应用程序可以在各种网络环境下读、写服务器上的文件,以及..._smb不在同一个局域网

Android网络编程(一)HTTP协议原理-程序员宅基地

Reference:http://liuwangshu.cn/application/network/1-http.html前言这篇文章是这个系列的开篇,作为移动开发者,开发的应用不免会对网络进行访问,虽然现在已经有很多的开源库帮助我们可以轻而易举的访问网络,但是我们仍要去了解网络访问的原理,这也是一个优秀开发人员所必备的知识点。这篇文章我们就先来了解一下HTTP协议原理。1....

wait notify notifyall-程序员宅基地

resource.wait()使线程释放锁并进入wait状态(等待resource.notify() 或 resource.notifyAll(), 不是等待获得resource的锁).resource.notify()会唤醒一个在resource.wait状态的线程(具体哪个由操作系统调度),使那个线程变为等待resource的锁的状态(即正常的阻塞状态).当调用notify()的线程主动释

Windows 安装mysql5.7-程序员宅基地

1、注意:安装mysql5.7 需要VC13,请访问以下链接https://www.microsoft.com/zh-cn/download/details.aspx?id=40784下载,注意下载与mysql解压包相同位数版本2、访问以下链接https://dev.mysql.com/downloads/mysql/ 下载mysql5.7,并解压到D:\mysql4、创建d:\m...

个人使用的Linux开发环境-程序员宅基地

前些天重装了个Debian7.1 64bit的系统,搭建开发环境和安装常用的工具颇花精力,整理了下,记录如下。1/Android编译环境参考:http://blog.csdn.net/gexueyuan/article/details/7772387http://blog.csdn.net/nxh_love/article/details/8834849在编译过程中,可

【Java】com.fasterxml.jackson.core.JsonParseException: Unexpected character ('C' (code 67)): Expected-程序员宅基地

fastjson升级的事情,我相信做开发的可能都做过,升级后带来一些个问题,在发请求的脚本,运行后,报错如下:2019-10-09 15:24:12.547 - - [ERROR] pool-28-thread-1 KmsTokenImpl get token error :com.fasterxml.jackson.core.JsonParseException: Unexpected..._com.fasterxml.jackson.core.jsonparseexception: unexpected character ('c' (co

推荐文章

热门文章

相关标签