黑盒测试用例设计方法之等价类划分法

news/2024/11/24 18:38:08/

等价类划分法是一种典型的黑盒测试用例设计方法。采用等价类划分法时,完全不用考虑程序内部结构,设计测试用例的唯一依据是软件需求规格说明书。

等价类

所谓等价类,是输入条件的一个子集合,该输入集合中的数据对于揭示程序中的错误是等价的。等价类又分为有效等价类和无效等价类。有效等价类代表对程序有效的输入,而无效等价类则是其他任何可能的输入(即不正确的输入值)。有效等价类和无效等价类都是使用等价类划分法设计用例时所必须的,因为被测程序若是正确的,就应该既能接受有效的输入,也能接受无效输入的考验。

划分等价类的标准:

1.完备测试、避免冗余;

2.划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;

3.并是整个集合:完备性;

4.子集互不相交:保证一种形式的无冗余性;

5.同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径"。

等价类划分的方法:

1.如果输入条件规定了一个取值范围,那么就应该确定一个有效等价类以及两个无效等价类。

如月份取值在112之间,由此可确定一个有效等价类即月份在112之间,和两个无效等价类,即月份取值小于1及月份取值大于12.

2.规定了输入条件必须如何的情况下可以确定一个有效等价类和一个无效等价类。

如输入值必须大于0,则有效等价类为输入值大于0,无效等价类为输入值小于或者等于0.

3.在输入数据是一个bool常量的情况下,可以确定一个有效等价类和一个无效等价类。

4.在规定了输入数据由n个值构成的情况下,并要求定其中的每个值进行测试时,可以确定n个有效等价类和一个无效等价类。

如交通工具类型为公共汽车、卡车、出租车、火车或者摩托车,那么就应该为每一个输入值确定一个有效等价类和一个无效等价类例如拖车。

5.在规定了输入数据冰箱最受的规则的情况下,可以确定一个有效等价类和若干个无效等价类(从不同角度违反规则)。

如输入值必须是数字类型的字符,则可确定一个有效等价类,及输入值为数字类型的字符,和多个无效等价类,即输入值为字母、为专用字符(如+、*、@等)以及为非打印字符(如回车、空格等)。

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

划分等价类之后,应建立等价类表,列出与每一个输入条件对应的有效等价类和无效等价类。

设计测试用例

1.为每一个等价类规定一个唯一的编号;

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

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

学习安排上

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

在这里插入图片描述

视频文档获取方式:

这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群即可自行领取。


http://www.ppmy.cn/news/27286.html

相关文章

AI 生成二次元女孩,免费云端部署(仅需5分钟)

首先需要google的colab,免费版本GPU有额度,因此生成图片悠着点(每天重置)。)其次,需要魔法,打开github网站,选择一个进入colab,修改代码 !apt-get -y install -qq aria2 !pip instal…

每天一道大厂SQL题【Day12】微众银行真题实战(二)

每天一道大厂SQL题【Day12】微众银行真题实战(二) 大家好,我是Maynor。相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题&…

springboot基础

文章目录[toc]SpringBoot概述spring springmvc springboot的关系Spring Boot简介微服务springboot的优点核心功能SpringBoot搭建使用IDEA快速搭建 Spring Boot项目入门案例研究项目结构pom 文件主程序类,主入口类配置文件、加载顺序开启配置文件注释配置文件和加载顺…

逆向-还原代码之max 再画堆栈图 (Interl 64)

// source code #include <stdio.h> void max(int * a, int * b) { if (*a < *b) *a *b; } int main() { int a 5, b 6; max(&a, &b); printf("a, b max %d\n", a); return 0; } // 再画堆栈图 下周一&#xff08;2.27…

双指针 (C/C++)

1. 双指针 双指针算法的核心思想&#xff1a;将暴力解法的时间复杂度&#xff0c;通常是O(N*N)&#xff0c;通过某种特殊的性质优化到O(N)。 做题思路&#xff1a;先想想暴力解法的思路&#xff0c;然后分析这道题的特殊性质&#xff0c;一般是单调性。然后得出双指针算法的思路…

机器学习聚类分析建模方法大全

最近很多私信都在问机器学习的问题&#xff0c;感觉很多都是刚入门的新手&#xff0c;有些概念和问题也相对比较基础&#xff0c;空余时间里我在不断整理一些常用的基础算法模型&#xff0c;写成文章后面有需要的话可以直接阅读即可&#xff0c;有些问题可能直接就迎刃而解了吧…

国内知名插画培训机构有哪些,学习插画怎么选培训班

国内知名插画培训机构有哪些&#xff1f;给大家梳理了国内5家专业的插画师培训班&#xff0c;最新无大插画班排行榜&#xff0c;各有优势和特色&#xff01; 一&#xff1a;国内知名插画培训机构排名 1、轻微课&#xff08;五颗星&#xff09; 主打课程有日系插画、游戏原画…

初识MySQL下载与安装【快速掌握知识点】

目录 前言 MySQL版本 MySQL类型 MySQL官网有.zip和.msi两种安装形式&#xff1b; MySQL 下载 1、MySQL 属于 Oracle 旗下产品&#xff0c;进入Oracle官网下载 2、点击产品&#xff0c;找到MySQL 3、进入MySQL页面 4、点击Download&#xff08;下载&#xff09;&#x…