软件测试之黑盒测试的具体方法详解

news2024/11/25 20:37:52

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一.基于需求的设计方法
  • 二.等价类
  • 三.边界值
  • 四.判定表
    • 4.1 **关系**
    • 4.2 如何设计测试用例
    • 4.3 实际案例
      • 第一步
      • 第二步
      • 第三步
      • 第四步
  • 五.正交排列
    • 5.1 什么是正交表
    • 5.2 如何通过正交表设计测试用例
    • 5.3 实际例子
      • 第一步 确定 因素和确定水平
      • 第二步 画正交表
      • 第三步 将正交表转换成测试用例
  • 六.场景设计法
    • 6.1 什么是场景测试法
    • 6.2 如何使用场景测试法设计测试用例
    • 6.3 实际例子
    • 第一步
    • 第二步
    • 第三步
    • 第四步
  • 七.错误猜测法
    • 7.1什么是错误猜测法
    • 7.2错误猜测法的基本步骤
    • 7.3 实际例子
      • 第一步
      • 第二步


前言

我们这里要读软件测试的黑盒测试方法进行具体的讲解,大家也不要过于担心,相信我接下来的讲解以后,大家对这些测试方法必然是了然如胸的.当然在我们介绍测试用例的方法之前.我们应该来回顾一下,什么是测试用例,测试用例包含哪些内容.实际上我们把测试用例比喻成一组集合,这组集合里面有
测试环境、操作步骤、测试数据、预期结果等要素.当然我们实际测试用例还是有方法的,接下来我们就一一的去介绍这些方法.

一.基于需求的设计方法

什么是基于需求的设计测试用例的方法,这里的核心概念就是需求.我们们一般把需求分为两种
软件需求和用户需求.
在这里插入图片描述
基于需求设计测试用例是测试设计和开发测试用例的基础,第一步就要分析测试需求,验证需求是否正确、完整、无二义性,并且逻辑自洽。在需求正确的基础上细化测试需求,从测试需求提炼出一个个测试点或者测试项,然后根据每一个测试点进行测试用例的设计.
所以一般来说,我们一般把需求分为功能需求和非功能需求
在这里插入图片描述
这上面是我们常用的基于需求的测试用例设计,打击看到以上的操作之后,还是有不明白的地方,我们可以给出几个实际的例子,来设计测试用例,大家就明白了.
这是一个登录界面的例子
在这里插入图片描述
这是一个淘宝购物车的例子
在这里插入图片描述
水杯测试用例
在这里插入图片描述
微信法朋友圈的测试用例设计
在这里插入图片描述

具体的我们就介绍到这里,我们开始进入下一个测试用例的方法.


二.等价类

等价类的概念是软件测试中的一个重要概念。它是指输入域中一组数据,这组数据在被测软件的处理结果上具有等价性。换句话说,等价类中包含的所有值在软件的响应上具有相同或相似的效果。
依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。

其实绕了这么一大圈,我们还是来看看,我们怎么去用等价类方法去设计测试用例.
在这里插入图片描述
有效等价类:满足用户需求输入集合
无效等价类:不满足用户输入集合
接下来是重头戏,设计测试用例的步骤如下:

等价类思想设计测试用例步骤
①充分理解需求
②划分有效等价类,划分无效等价类
③从有效等价类抽取其中一个数据进行设计测试用例;从无效等价类中抽取其中一个进行测试用例设计
具体来个例子,用户名长度的测试用例展示.
在这里插入图片描述

如果说还没明白的话,我们继续来一个三角形的例子,去体会一下.
三角形问题:输入3个整数a,b,c,分别作为三角形的3条边,通过程序判断3条边构成三角形的类型为等边三角形、等腰三角形、一般三角形或者不构成三角形。
在这里插入图片描述
等价类测试用例设计方法,最重要的就是划分等价类,但是等价类只考虑输入域的分类,没有考虑输入域的组合,需要其他的设计方法和补充.


三.边界值

什么是边界值法呢?边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
我们来看一下,边界值法具体在干什么.
在这里插入图片描述
边界值法具体就是划分上点,内点,离点.
我们来看一个例子
在这里插入图片描述
这里值得说的内点其实有很多种情况的,我这里说明一下.
在这里插入图片描述
上点:不管此区间是开区间还是闭区间,此时区间上的点都是上点
内点:区间内的点
离点:
区间如果是开区间,此时离点是距离上点最近的点(区间内找)区间如果是闭区间,此时离点是离上点最近的点(找点在区间外)

最后肯定重头戏了.边界值测试用例的具体步骤入下:
边界值设计测试用例方法
①充分理解需求
②找边界点
③针对边界点设计测试用例


四.判定表

判定表是一种基于判定覆盖法设计测试用例的方法。判定是程序中用来决定执行流向的条件语句,判定表是根据这些判定设计测试用例的工具.
话不多说,我们来看看判定表有哪些关系组成.

4.1 关系

与:所有的条件必须满足,如果一个条件不满足,此时结果为假
或︰满足其中一个条件结果就为真,如果条件全部为假,结果就为假
恒等︰条件为真,结果一定为真
非:条件为假,结果才为真

4.2 如何设计测试用例

具体步骤
(1)分析所有可能的输入和可能的输出。
(2)找出输入与输出之间的对应关系。
(3)设计判定表
(4)把判定表对应到每一个测试用例。

4.3 实际案例

假设业务单据的处理规则为:“淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优惠"。

第一步

输入:订单已提交,订单金额大于300,有红包
输出:优惠,不优惠

第二步

1)订单已提交,金额大于300,有红包,优惠
2)订单已提交,金额大于300,没有红包,优惠
3)订单已提交,金额小于300,有红包,优惠
4)订单已提交,金额小额300,没有红包,不优惠
5)订单不提交,金额大于300,有红包,不优惠
6)订单不提交,金额大于300,没有红包,不优惠
7)订单不是交,金额小于300,有红包,不优惠
8)订单不提交,金额小额300,没有红包,不优惠

第三步

在这里插入图片描述

第四步

在这里插入图片描述


五.正交排列

正交排列是一种系统的、有序的排列方式,用于软件测试用例设计中,可以保证测试用例的互相独立,减少重复测试,提高测试效率。
在讲述正交排列之前,我们还是来解释一下什么是正交表.

5.1 什么是正交表

正交表是一种用表格表示的正交数组,用于测试用例的设计与管理。它采用行列交叉的方式,将被测系统的多个因素以及每个因素的取值组合成表格,这样我们就可以在这个表格里系统地选择测试值,组合成测试用例。
正交表由以下要素构成:

  1. 因素:影响被测系统的输入变量。
  2. 各因素的取值:每个因素可取的值或值范围。
  3. 行与列的表头:行表头表示被固定的值,列表头表示变量值。
  4. 单元格:每个单元格代表一个测试值的组合,可映射为一条测试用例。

5.2 如何通过正交表设计测试用例

1.充分理解需求
2.确定因素,确定水平
3.画正交表
4.补充正交表
5.将正交表转换成测试用例

5.3 实际例子

以注册需求为例

第一步 确定 因素和确定水平

因素:姓名、邮箱、密码、确认密码、验证码必须全部输入,才能进行注册
水平:填写/不填写

第二步 画正交表

利用allpairs画正交表.
具体的教程,大家可以观看B站的这个视频allparis工具下载安装及简单使用
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
填写是啥意思呢,凡是带的就是此处选项你选啥都行,你选填写也行,选不填写也行,不影响测试结果

第三步 将正交表转换成测试用例

在这里插入图片描述


六.场景设计法

6.1 什么是场景测试法

场景设计法是一种基于用户场景来设计测试用例的方法。它考虑到用户使用软件的完整场景及流程,设计出一组用例来验证软件在这种场景或流程下的执行结果是否正确。

6.2 如何使用场景测试法设计测试用例

1.充分理解需求
2.确定主事件流
3.确定次事件流
4.每一个事件流就是一个测试用例

6.3 实际例子

用户使用某酒店预订系统进行客房预订

第一步

主事件流:用户使用某酒店预订系统进行客房预订

第二步

此事件流:用户使用系统的每一个步骤

第三步

登录系统–>查询房型–>选择房型、入住时间
–>填写预订人信息–>选择支付方式–>确认预订单
–>预订单确认–>正式订单–>预订成功
在这里插入图片描述

第四步

设计测试用例
用例1:登录系统 预期结果:登录成功
用例2:查询不存在的房型 预期结果:无查询结果
用例3:选择普通房型、时间 预期结果:可以进行下一步
用例4:填写无效预订人信息 预期结果:给出提示信息
用例5:选择支付方式为现金支付 预期结果:可以进行下一步
用例6:确认预订单 预期结果:预订单生成
用例7:预订单重复确认 预期结果:无影响,提示已确认
用例8:酒店确认预订单 预期结果:生成正式订单
用例9:用户取消预订单 预期结果:预订单取消,无正式订单生成

通过上述场景分析和测试用例设计,可以得到一组与真实预订场景紧密联系的测试用例。这些用例可以有效验证预订系统在各种正常场景、边界场景下的执行结果是否正确,达到检验系统功能的目的。
总之,场景设计法是一种非常实用的测试用例设计方法,通过结合具体的用户场景来制定测试策略和设计用例,值得测试人员重点学习与运用.


七.错误猜测法

7.1什么是错误猜测法

错误猜测法是一种基于对程序可能存在的错误进行猜测来设计测试用例的方法。这种方法尝试去猜测程序在开发过程中最可能产生的错误,并设计针对这些错误的测试用例。如果测试执行结果与预期不符,则表明程序中存在该错误,起到发现错误的目的。

7.2错误猜测法的基本步骤

  1. 分析程序逻辑和实现,推测出最可能出现的错误类型。常见的错误类型有:变量未初始化,数组下标越界,参数传递错误,逻辑运算错误等。
  2. 根据猜测出的错误类型和程序逻辑设计测试用例。这些用例的测试数据应能够激发相应类型的错误。
  3. 执行设计的测试用例,验证实际输出结果是否与预期一致。如果存在不一致,则发现了程序错误。
  4. 根据测试结果进行错误修复和重测试,直至所有测试用例的结果均符合预期。

7.3 实际例子

如果要测试一个数组求平均值的程序

第一步

可以猜测出的错误类型有:
1)数组下标越界,导致索引异常。
2)数组元素之和计算错误,导致平均值错误。

第二步

那么,相关的测试用例可以设计为:
用例1:输入数组[-1,10,20] 预期结果:报索引越界异常
用例2:输入数组[1,2,3] 预期结果: 平均值为2
用例3:输入数组[1,2,3] 预期结果:计算的平均值不为2,则存在逻辑计算错误。

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

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

相关文章

shell脚本的判断式

文章目录 shell脚本的判断式利用test命令的测试功能关于某个文件名的【文件类型】判断关于文件的权限检测两个文件之间的比较关于两个整数之间的比较判定字符串的数据多重条件判定例题 利用判断符号[ ]例题 shell脚本的默认变量($0、$1...)例题shift:造成参数变量号…

Linux安装Mysql操作步骤详解

目录 1. 检测当前系统中是否安装了MySql数据库 2. 使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux 3. 解压并解包到/usr/local/mysql(便于区分) 第一步:将包先移动到该目录下 第二步:解压解包 第三步&#xff1a…

LeetCode 105.106. 从前序|后序与中序遍历序列构造二叉树 | C++语言版

LeetCode 105. 从前序与中序遍历序列构造二叉树 | C语言版 LeetCode 105. 从前序与中序遍历序列构造二叉树题目描述解题思路思路一:使用递归代码实现运行结果参考文章: 思路二:减少遍历节点数代码实现运行结果参考文章: LeetCode …

C语言复习笔记1

1.不同数据类型所占字节数。 bit 01二进制的比特位 byte 字节 8 bit 比特 之后的单位都是以1024为倍数 #include<stdio.h> #include<unistd.h>int main() {printf("sizeof(char)%d\n",sizeof(char));printf("sizeof(short)%d\n",sizeof(sh…

JavaScript 笔记

1 简介 JavaScript 诞生于1995年&#xff0c;是由网景公司发明&#xff0c;起初命名为LiveScript&#xff0c;后来由于SUN公司的介入&#xff0c;更名为 JavaScript。1996年微软在其最新的IE3浏览器中引入了自己对JavaScript的实现JScript&#xff0c;于是市面上就存在两个版本…

Mybatis 框架 ( 三 ) Mybatis-Plus

4.Mybatis-plus 官网 : https://www.baomidou.com/ MyBatis-Plus 是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上封装了大量常规操作&#xff0c;减少了SQL的编写量。 4.1.Maven依赖 使用时通常通过Springboot框架整合使用 并且使用Lombok框架简化实体类 <…

软件测试——基础篇(软件测试的生命周期和BUG的概念)

目录 一、软件测试生命周期 1. 软件生命周期 2. 软件测试生命周期 二、BUG 1. 如何描述一个BUG 2. BUG的级别 3. BUG的生命周期 一、软件测试生命周期 1. 软件生命周期 软件生命周期&#xff1a;需求分析&#xff0c;计划&#xff0c;设计&#xff0c;编码&#xff0c;…

20 printf 的调试

前言 在最开始的 cmd 编程中, 我们会使用到的最常见的输出, 包括一些时候调试的时候 我们最常使用到的函数 那肯定是 printf 了 我们这里来调试一下 这个 printf 还有一个原因是 之前在调试 malloc 的时候, malloc 虚拟内存分配的调试(1) 可以发现, 不仅仅是在 malloc 的时…

Codeforces Round 865 (Div. 2)

6 problems. ABC过, DE没想出来, F没看. https://codeforces.com/contest/1816 A. Ian Visits Mary 分析 - AC 每次跳跃&#xff0c;横纵互质。 限于数据量&#xff0c;不能枚举。 1与任何数互质。考虑从(0,0)跳到(1,y)&#xff0c;这一步一定合法&#xff1b;再从(1,y)跳到…

Netty小白入门教程

一、概述 1.1 概念 Netty是一个异步的基于事件驱动(即多路复用技术)的网络应用框架&#xff0c;用于快速开发可维护、高性能的网络服务器和客户端。 1.2 地位 Netty在Java网络应用框架中的地位就好比&#xff0c;Spring框架在JavaEE开发中的地位。 以下的框架都使用了Nett…

C++017-C++文件读写应用

文章目录 C017-C文件读写应用C文件读写应用CSP-J目标1. 文件的基本概念、文本文件的基本操作关闭文件 文件操作-写入文本文件2.文件读写操作基本案例seekg() 和 tellg() 函数来读取文件中的数据 2. 文本文件类型与二进制文件类型3. 文件重定向、文件读写等操作 在练习&#xff…

56.网页设计规则#4_图标

使用好的图标 使用一个好的图标包&#xff0c;有大量的免费和付费图标包 图标工具推荐&#xff1a; ● Phosphor icons ● ionicons ● ICONS8 只使用一个图标包。不要混合不同图标包中的图标 使用SVG图标或图标字体。不要使用位图图像格式(.jpg and .png)! 调整网站个性!圆…

Android 中的跨进程数据块传递

Android 的 Binder 进程间通信机制主要用于实现远程过程调用 RPC&#xff0c;Android 系统中进程之间的大块数据传递&#xff0c;如音频数据&#xff0c;出于效率等原因&#xff0c;一般不直接用 Binder 机制。Binder 库提供了基于共享内存外加 Binder 机制的跨进程文件描述符传…

每月一书(202304)《RxJava2.x实战》

[TOC] 又到了每月一书的时间&#xff0c;本月阅读的是技术相关书籍《RxJava2.x实战》&#xff0c;下面分享一下我阅读完后的体会。 主要内容 本书主要介绍了RxJava这个框架&#xff0c;框架版本是2.x。主要内容包含三大部分&#xff1a; 框架的原理和使用方法框架中各类操…

git alias

git alias 其实之前就用过一些 alias&#xff0c;比如说 git reflog show 就是 git log -g --abbrev-commit --prettyoneline 的 alias&#xff0c;一般 alias 可以存储到 git 的 config 文件&#xff0c;repo 等级的在 .git 下&#xff0c;global 的一般在 ~/.gitconfig 或者…

【flask】三种路由和各自的比较配置文件所有的字母必须大写if __name__的作用核心对象循环引用的几种解决方式--难Flask的经典错误上下文管理器

三种路由 方法1&#xff1a;装饰器 python C#, java 都可以用这种方式 from flask import Flask app Flask(__name__)app.route(/hello) def hello():return Hello world!app.run(debugTrue)方法2: 注册路由 php python from flask import Flask app Flask(__name__)//app…

【前端面经】JS-事件循环

什么是事件循环(Event Loop)? 众所周知, Javascript是一门单线程的语言, 单线程即同一时间只能做一件事, 但这并不意味着JavaScript在执行代码的过程中就会一直阻塞,而解决单线程不阻塞的这个机制就叫做事件循环(Event Loop), 也就是同步和异步的概念. 任务执行流程 在JS中…

PS滤镜插件-Nik Collection介绍

PS滤镜插件-Nik Collection介绍 什么是Nik CollectionNik Collection都包含什么&#xff1f; 什么是Nik Collection Nik Collection是一款PS滤镜插件套装&#xff0c;其包含了八款PS插件&#xff0c;功能涵盖修图、调色、降噪、胶片滤镜等方面。Nik Collection 作为很多摄影师…

redhat 安装oracle 11g

这里写目录标题 1、数据库下载和安装文档1.2、安装文档1.3、license种类解释&#xff08; XE版 标准本 个人版 企业版&#xff09;1.4、在安装完oracle后再创建数据库1.5、DBA的文档1.6、Automatic Storage Management Administrators Guide1.7、数据库备份恢复手册1.8、Overvi…

系统集成项目管理工程师 笔记(第15章 信息(文档)和配置管理)

文章目录 软件文档的分类&#xff08;1&#xff09;开发文档&#xff1a;描述开发过程 本身&#xff08;2&#xff09;产品文档&#xff1a;描述开发过程的 产物&#xff08;3&#xff09;管理文档&#xff1a;记录项目管理的信息 文档的质量可以分为四级&#xff08;1&#xf…