软件测试之学习测试用例的设计(等价类法、边界值法、错误猜测法、场景法、因果图法、正交法)

1. 测试用例的概念

软件测试人员向被测试系统提供的一组数据的集合,包括 测试环境、测试步骤、测试数据、预期结果

2. 为什么在测试前要设计测试用例

测试用例是执行测试的依据

在回归测试的时候可以进行复用

是自动化测试编写测试脚本的依据

衡量需求的覆盖率

后续的测试人员可以借鉴前人写的东西

3. 基于需求进行测试用例的设计

需求是测试人员进行测试的依据

测试人员首先要分析需求,验证需求的正确性、合理性,无二义性并且逻辑自洽

在需求正确的基础上细化需求,从需求提炼出一个个测试点,再根据测试点进行测试用例的设计

在分析需求提取测试点时,一般分为 功能性需求测试 和 非功能性需求测试

1)功能性需求测试

功能性需求测试分析通常包括以下几个方面:

验证各个界面的功能

用具体业务将功能串起来进行测试

功能之间交互性、一致性的测试

一个功能的多个不同输入的测试

功能的异常测试

功能涉及到的算法的测试

2)非功能性需求测试

在功能的基础上做一些限制,满足特定场景的需求,让用户有更好的体验

一般在 性能、安全性、可靠性、兼容性、可移植性(移植到不同的设备)、易用性 等

不同类型的软件对于非功能性需求要求是不一样的

客户端软件,word、ppt、音乐播放器等,此类软件对功能要求很简单,对性能、安全性要求比较低,软件的可移植性要求比较高

这类软件一般都是在个人客户端上运行的,一般都是一对一的运行,不存在多人使用同一个服务器,所以对安全性和性能要求比较低,但是这类软件要求在不同环境下的使用,所以对可移植性要求比较高

企业软件,一些仅供企业内部使用的软件,对功能有一定的要求,对安全性、性能要求比较低

这类软件一般都是企业内部在使用,使用人数不多,所以对安全性和性能要求比较低

商业软件,市面上的大型复杂网络应用,对功能、性能、安全性、可移植性、易用性要求都很高

4. 具体的测试用例设计方法

1)等价类

等价类法一般应用在有输入的场合内

根据需求将输入分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例通过,则认为所代表的等价类测试通过,这样可以很好的解决测试用例无法穷举的情况

等价类又分为 有效等价类 和 无效等价类

有效等价类: 符合需求说明书的数据,用来验证程序是否实现了需求说明书所规定的功能

无效等价类: 不符合需求说明书的数据

对于注册邮箱时的等价类:

规定: 6 ~ 18 个字符,可使用字母、数字、下划线,需要以字母开头

有效等价类:

6 ~ 18 个字符,以字母抬头,纯字母

6 ~ 18 个字符,以字母抬头,后面为数字

6 ~ 18 个字符,以字母抬头,后面为下划线

6 ~ 18 个字符,以字母抬头,后面有数字和下划线

无效等价类:

小于 6 个字符,以任意字符组成

大于 18 个字符,以任意字符组成

6 ~ 18 个字符,不以字母开头

6 ~ 18 个字符,以字母开头,包含任意字符

2)边界值

对输入输出的边界进行针对性测试用例的设计,叫做边界值法

边界值法一般与等价类法一起组合使用,边界值法是等价类法的重要补充

案例:

用户注册时规定用户名 6 ~ 18 位

边界值:5,6,7,17,18,19

针对以上几个点进行测试用例的设计

3)错误猜测法

测试人员根据自己的经验、只是、个人直觉判断软件哪一块有问题,再进行针对性测试用例的设计

这个方法适用于补充测试用例,或者进行探索性测试的情况

但也有一个很明显的缺点,过度依赖测试人员的个人能力和主观判断

4)场景法

把一个个孤立的功能穿起来形成一个场景,每一个功能的输入会触发流程走向不同的场景,根据不同功能的不同输入触发形成的不同场景进行测试用例的设计

要点: 提取出场景中设计的所有功能点,考虑每一个功能的不同输入

5)因果图法

因果图是一种可以直观地 表达程序输入输出之间相互关系 的逻辑图

使用场景: 适用于被测试程序 具有多种不同输入条件并且输出结果依赖于输入条件 的情况

因果图中的关系:

恒等: 输入为真,输出为真

与: 输入条件有多个,条件全为真,输出才为真

或: 输入条件有多个,其中一个为真,输出就为真

非: 输入为真(假),输出为假(真)

使用因果图设计测试用例的流程:

分析程序所有的输入和输出

找出输入和输出之间的逻辑关系

根据输入和输出的逻辑关系画出因果图

根据因果图画出判定表

根据判定表设计测试用例

案例: 618 抢购活动中,订单已提交并且购物金额大于 300 或者有红包,则说明有优惠,否则无优惠

分析输入输出

输入:订单已提交、购物金额大于 300、有红包

输出:有优惠、没有优惠

找出输入输出之间的逻辑关系

根据逻辑关系画出因果图

根据因果图画出判定表

  1. 根据判定表设计测试用例
    判定表中每一行都是一个测试用例

6)正交法

根据正交性,从大量的测试数据中,选择最优的数据组合,根据最优的数据组合的结果来衡量整个测试的输出结果

 

总结:

感谢每一个认真阅读我文章的人!!!

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

  1. 文档获取方式:

  2. 加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

通过简单的案例入门Mybatis~

目录 一.概述 二.JDBC的缺点 三.案例 1.创建测试类 2.加载Mybatis核心配置文件获取SqlSessionFactory 3.获取SqlSession对象 4.执行sql 5.释放资源 一.概述 Mybatis是一款持久层框架,用于简化JDBC开发。所谓框架,就是一个半成品软件,…

2024年【P气瓶充装】考试资料及P气瓶充装考试总结

题库来源:安全生产模拟考试一点通公众号小程序 2024年P气瓶充装考试资料为正在备考P气瓶充装操作证的学员准备的理论考试专题,每个月更新的P气瓶充装考试总结祝您顺利通过P气瓶充装考试。 1、【多选题】CNG双燃料汽车系统主要包括(&#xff…

数据链路层_以太网

IP协议确定数据跨网络从主机A到主机B的路径,即IP协议解决了路径选择问题,但在这之前,必须先解决数据在一个子网内的传输的问题。跨网络的本质就是跨多个子网,只要一个子网内可以通信,那么便可以跨网络通信。 一.以太…

Echarts+Vue 首页大屏静态示例Demo 第四版 支持自适应

效果: 源码: <template><ScaleScreenclass="scale-wrap":selfAdaption="true":autoScale="true":class="{ fullscreen-container: isFullScreen }"><div class="bg"><dv-loading v-if="loading&…

Docker 中 MySQL 的部署与管理

目录 一、Docker 中部署 MySQL1.1 部署 MySQL1.2 进入容器并创建数据库1.3 Navicat 可视化工具连接 二、可能存在的问题2.1 1130 - Host ‘172.17.0.1‘ is not allowed to connect to this MySQL server 参考资料 一、Docker 中部署 MySQL 1.1 部署 MySQL 首先&#xff0c;从…

[题解]无厘头题目——无聊的军官

这道题非常无厘头&#xff01; 题目描述&#xff1a; 每个学年的开始&#xff0c;高一新生们都要进行传统的军训。今年有一个军训教官十分奇怪&#xff0c;他为了测试学员们的反应能力&#xff0c;每次吹哨后学员们都会变换位置。每次左数第I位学员都会站到第ai个位置&#x…

代码随想录训练营Day25:● 216.组合总和III ● 17.电话号码的字母组合

216.组合总和III 题目链接 https://leetcode.cn/problems/combination-sum-iii/description/ 题目描述 思路 自己写的效率会慢一些&#xff0c;而且没有用到剪枝 class Solution {List<List<Integer>> list new ArrayList<>();List<Integer> lis…

python知识点总结(一)

这里写目录标题 一、什么是WSGI,uwsgi,uWSGI1、WSGI2、uWSGI3、uwsgi 二、python中为什么没有函数重载&#xff1f;三、Python中如何跨模块共享全局变量?四、内存泄露是什么?如何避免?五、谈谈lambda函数作用?六、写一个函数实现字符串反转&#xff0c;尽可能写出你知道的所…

『scrapy爬虫』05. 使用管道将数据写入mysql(详细注释步骤)

目录 1. 新建管道类,并启用2. 准备好mysql数据库新建表3. 实现管道写入数据库的代码测试一下 总结 欢迎关注 『scrapy爬虫』 专栏&#xff0c;持续更新中 欢迎关注 『scrapy爬虫』 专栏&#xff0c;持续更新中 如果对mysql和python不熟悉可看专栏【Python之pymysql库学习】 1.…

Java学习笔记------常用API(四)

BigDecima 用于小数的精准计算 用来表示很大的小数 构造方法获取BigDecimal对象 public BigDecimal(double val)//有可能不精确&#xff0c;不建议使用 public BigDecimal(String val) 静态方法获取BigDecimal对象 public static BigDecimal valueOf(double val)//超出do…

布隆过滤器原理及应用场景

目录 一、布隆过滤器概述1.1 什么是布隆过滤器1.2 优缺点 二、布隆过滤器原理2.1 布隆过滤器的组成2.2 元素添加和查询 三、 应用场景参考资料 一、布隆过滤器概述 1.1 什么是布隆过滤器 布隆过滤器&#xff08;Bloom Filter&#xff09;是一种数据结构&#xff0c;用于快速检…

口腔管理平台 |基于springboot框架+ Mysql+Java+B/S结构的口腔管理平台 设计与实现(可运行源码+数据库+lw文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 管理员功能登录前台功能效果图 会员功能 系统功能设计 数据库E-R图设计 lunwen参考…

五连杆机构运动学仿真 | Matlab源码 | 机械连杆 | 五杆机构

【程序简介】&#x1f4bb;&#x1f50d; 本程序通过matlab实现了五连杆机构的运动学仿真编程&#xff0c;动态展现了五连杆机构的运动动画。 你将获得&#xff1a;五连杆机构Matlab仿真源码 获取地址&#xff1a;五连杆机构运动学仿真 | Matlab源码 |机械连杆 程序仿真的五…

2024年【危险化学品经营单位主要负责人】新版试题及危险化学品经营单位主要负责人复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【危险化学品经营单位主要负责人】新版试题及危险化学品经营单位主要负责人复审考试&#xff0c;包含危险化学品经营单位主要负责人新版试题答案和解析及危险化学品经营单位主要负责人复审考试练习。安全生产模…

Pulsar从入迷到入魔之路

一、引言 系统学习Pulsar的大纲 二、正文 下图是我绘制的Pulsar大纲 (由于时间缘故花的比较粗糙&#xff0c;这张图会不定期更新) 三、学习大纲 一、Pulsar Client 二、生产者 Pulsar消息路由深入剖析 三、消费者 四、Topic pulsar原来是这样操作topic的 五、Funct…

PS学习 - 抠图-通道-主题颜色和背景颜色不能相近

抠出蝴蝶 1.通道抠图 套索工具 这里需要圈住你要的&#xff0c;注意尽量小点 ctrl j 复制 然后去掉背景 点击通道 找到明暗对比最大的通道&#xff0c;这里我理解为颜色反差最大的那个&#xff0c;突出你要抠的东西 搜了下说是一般为蓝色 复制通道 ctrll调出色阶 通过移…

RabbitMQ学习总结-延迟消息

1.死信交换机 一致不被消费的信息/过期的信息/被标记nack/reject的信息&#xff0c;这些消息都可以进入死信交换机&#xff0c;但是首先要配置的有私信交换机。私信交换机可以再RabbitMQ的客户端上选定配置-dead-letter-exchange。 2.延迟消息 像我们买车票&#xff0c;外卖…

llamma笔记:部署Llama2

1 申请Llama2 许可 Download Llama (meta.com) 地址似乎不能填中国 1.1 获取url 提交申请后&#xff0c;填的那个邮箱会受到一封meta发来的邮件&#xff0c;打码部分的url&#xff0c;之后会用得上 2 ubuntu/linux 端部署Llama2 2.1 git clone Llama2的github 仓库 bash g…

掌握C#: 从基础到精通 - 中级实战练习集

文章目录 异常处理尝试-捕获结构 文件 I/O 练习追加而不覆盖处理目录 LINQ 查询练习筛选集合中的对象排序复杂对象 类与对象练习继承与多态性 你是否已经掌握了C#的基础知识&#xff0c;正在寻找更多挑战来提升你的能力&#xff1f;那么&#xff0c;这篇文章就是为你准备的。我…

【网络】详解HTTPS及探究加密过程

目录 一、什么是HTTPS1、加密解密是什么2、为什么要加密3、常见的加密方式1、对称加密2、非对称加密 二、探究HTTPS如何实现加密1、方案一----只使用对称加密2、方案二----只使用非对称加密3、方案三----双方都使用非对称加密4、方案四----非对称加密 对称加密5、中间人攻击6、…