正厚干货 软件测试用例设计方法之一_等价类划分

news2024/11/18 11:31:26

今天开始我们学习关于软件测试用例的设计方法。其中较为常用的是等价类划分发,那么我们就从等价类划分开始吧。

一、等价类划分的介绍
1.定义
把所有可能输入的数据,即程序的输入域划分策划国内若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。方法是一种重要的、常用的黑盒测试用例设计方法。

2.划分等价类
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其他值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分有两种不同的情况:有效等价类和无效等价类。
1)有效等价类:是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明所规定的功能和性能。
2)无效等价类:指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能多个。
设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
3.划分等价类的标准
1) 完备测试、避免冗余
2)划分等价类重要的是:集合的划分、划分为互不相交的一组子集,而子集的并是整个集合
3)并是整个集合:备性
4)子集互不相交:保证一种形式的无冗余性
5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到“相同的执行路径”。
4.划分等价类的方法
1)在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。如:输入值是学生成绩,范围是0-100;

2)在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类:
3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。例:输入条件说明学历可为:专科、本科、硕士、博士四种之一,则分别取这四种的四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类。
5)在规定了输入数据必须遵守的规则情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则);
6)在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应在将该等价类进一步的划分为更小的等价类。
5.设计测试用例
在确立了等价类后,可建立等价类表,列出所有划分出的等价类输入条件:有效等价类、无效等价类,然后从划分出的等价类中按以下三个原则设计测试用例:
1)为每一个等价类规定一个唯一的编号;
2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;
3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。


二、举例
有效等价类分为一个或者多个的场景,举例说明:
1)一个有效等价:中国邮政编码的定义,由11位数字组成
划分子集:空,1-5位数字,6位数字,7位或以上数字,非数字
则有效等价类为一个,6位数字。无效等价类为若干:1-5位,7位或以上,空,非数字。非数字可细分:字符,特殊字符,数字与其他字符混合等。
2)多个有效等价:
规定学历可为大专,本科,硕士之一
划分子集:大专、本科生,硕士生,空,小学,初中,高中,中专,其他学历
则有效等价为3个:大专、本科,硕士。无效等价类为空,小学,初中,高中,中专,其他学历。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/72667.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据处理技巧(9):MATLAB将多个矩阵放在同一行显示,并写入txt文件

MATLAB将多个矩阵放在同一行显示,并写入txt文件生成效果要打印的矩阵代码思路记录程序运行时间写入文档MATLAB程序生成效果相关链接记得点个赞再走~~~生成效果 将9个矩阵显示在MATLAB命令行窗口中,一行有3个矩阵,一列显示3个矩阵&#xff0c…

[附源码]JAVA毕业设计网上拍卖系统(系统+LW)

[附源码]JAVA毕业设计网上拍卖系统(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&…

166.JWT简介与Django中使用JWT

1. JWT 1.1 JWT概述 基于django-rest-framework的登陆认证方式常用的大体可分为四种: BasicAuthentication:账号密码登陆验证SessionAuthentication:基于session机制会话验证TokenAuthentication: 基于令牌的验证JSONWebTokenAuthenticatio…

Python中使用国内源头下载依赖

有关更多的Python 开发内容,可访问:《 Python Flask开发指南》 Python开发中对于项目的依赖通常是用pip install命令进行下载,默认官网下载源为国外网络,会经常出现下载超时的问题。那么如何修改下载源使得我们能快速下载资源,如下介绍两种方式设置国内下载源。 国内下载源…

西湖大学张岳老师NLP课程笔记1 Introduction

西湖大学张岳老师NLP课程笔记1 Introduction 参考资料 B站链接课程主页 《Natural Language Processing: A Machine Learning Perspective 》 csdn大佬笔记 https://blog.csdn.net/qq_45645521/category_11685799.html 文章目录西湖大学张岳老师NLP课程笔记1 Introduction1.…

常用工具:介绍一款免费开源录屏工具-captura

网上能搜到的大部分录屏工具表面打着免费的旗号,实际上下载之后不是有水印就是限制分辨率和时长,介绍一款免费无水印的开源录屏截屏工具captura。 准备工作 要使用这个工具,必须事先在电脑上安装ffmpeg工具包,安装方式见&#x…

DRV8870/A4950/AT8870(3.6A单通道刷式直流电机驱动IC)

描述 AT8870是一款刷式直流电机驱动器,适用于打印机、电器、工业设备以及其他小型机器。两个逻辑输入控制H桥驱动器,该驱动器由四个N-MOS组成,能够以高达3.6A的峰值电流双向控制电机。利用电流衰减模式,可通过对输入进行脉宽调制(…

【电源专题】案例:电池存储40天电压从3.9V掉到了3.5V是什么异常?

本案例是在我休假过程中发现的。同事反馈说客户发现我们的一批产品有概率在存储40多天后发现电池从3.9V掉到了3.5V,并且制程、软件、硬件都有差异。会有可能存在什么异常? 首先我们要了解的是大多数带电池的产品在销售给客户时都会充好电(如手机/充电宝等),但不一定是充…

极市直播预告丨阿里达摩院:兼顾速度与精度的高效目标检测框架DAMO-YOLO

|极市线上分享第106期 | 一直以来,为让大家更好地了解学界业界优秀的论文和工作,极市已邀请了超过100位技术大咖嘉宾,并完成了105期极市线上直播分享。往期分享请前往http://bbs.cvmart.net/topics/149或直接阅读原文,也欢迎各位…

初学者如何学习FPGA?一文为你讲解清楚

想学习一门技术之前,我们先会从编程语言入手。就像学习FPGA,往往是从VHDL或者Verilog开始入手学习的。 当然,任何编程语言的学习都不能一劳永逸,因为任何经验技巧都是在实践的过程中才能学到,FPGA的学习当然也不例外。…

Python爬虫实战,Request+urllib模块,批量下载爬取飙歌榜所有音乐文件

前言 今天给大家介绍的是Python爬取飙歌榜所有音频数据并保存本地,在这里给需要的小伙伴们代码,并且给出一点小心得。 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这样的纯文 本数据爬取…

C语言实现三子棋(超详解版本)

🚀write in front🚀 📝个人主页:认真写博客的夏目浅石. 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​ 📣系列专栏:鹏哥带我学c带我飞 💬总结:希望你看…

分布式电源接入对配电网影响的研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

springboot+easyexcel:导入excel表格

目录 前言 1.常规导入 2.读取到指定的列 3.读取全部的sheet页 4.日期、数字及其他自定义格式的转换 5.表头有多行的读取 前言 excel表格的导入与导出,可以说是业务系统里比较常见的功能了,早些时候相信很多人都是使用POI实现excel的导入与导出功能…

还有13天圣诞节,用python整个简易版的圣诞树玩一下.......

人生苦短 我用python 好像很久没发文章啦! 看一眼日历快到圣诞节了 , 现在就来用python整个圣诞树玩一下吧! 代码🎆 模块 源码、资料电子书点击此处 import turtle as t from turtle import * import random as r import time…

项目经理的需求常见分类总结

今天聊聊如何进行需求分类、需求规划和优先级排序。我们都会面临需求多,任务重,资源少的现状,在这种情况下,就需要产品人员对产品需求进行评估,找到在当前阶段最重要的功能进行开发,那么怎么来进行评估和判…

Spring整合Apollo的原理

Spring和Apollo源码涉及的类 Spring:ApplicationContextInitializer、BeanFactoryPostProcessor、BeanPostProcessor、Environment、CompositePropertySource Apollo:ApolloApplicationContextInitializer、PropertySourcesProcessor、ApolloProcessor、…

消息发布确认

描述:在消息投递的过程中可能会存在消息丢失的行为产生,生产者到交换机,交换机到队列的过程都有可能出现这个现象。所以我们要有个发布确认的操作来防止消息丢西。 确认机制方案: 配置文件配置交换机发布确认模式: p…

年终颁奖 | 建模助手年度产品经理正在评比当中!

大家好,我是建模助手。 12月来了,又到了激情总结,却发现flag倒被打脸的时刻!我就想问问在座各位:年初的定立的flag,完成得咋样了? 我们今年就有一张很优秀的成绩单:↓↓↓ 建模助手…

优优聚:学会删减菜单,帮你提升销量和转化

如今随着外卖市场的不断发展,越来越多的堂食店铺加入外卖,但是对于做外卖很多老板认为,自家堂食做得不错,那么直接把堂食的菜单上传到外卖,结果这样做的后果就是不仅累还不挣钱。下面优优聚小编就来讲一下。 1、菜单太…