【软件测试】测试分类

系列文章目录

第一章 【软件测试】常见的开发模型和测试模型
第二章 【软件测试】bug以及测试用例的设计方法


文章目录

  • 系列文章目录
  • 前言
  • 一、按照测试目标进行分类
  • 二、按照执行方式分类
  • 三、按照测试方法
  • 四、按照测试阶段分类
  • 五、按照实施组织分类
  • 总结


前言

在前文中简单了解了测试用例的设计方法和测试思路。我们知道,软件测试其实并不十分简单,需要具备足够的思维能力,因此我们对于测试从不同的角度进行分类,在不同的阶段对测试工作进行更好的执行和管理测试的分类方法。


一、按照测试目标进行分类

简单来说,对整个软件的各个方面进行分类,如界面测试、功能测试、性能测试、安全性测试、易用性测试。 这里不再赘述。

二、按照执行方式分类

这种方式将软件测试分为动态测试和静态测试
静态测试:不实际运行测试软件,只是静态检查程序源码、界面或文档中可能存在的错误。
动态测试:实际运行被测试程序,检查输入、输出结果是否与预期结果相符合。

三、按照测试方法

  1. 白盒测试:分为动态测试和静态测试两种。
    静态测试常见于桌面检查、代码审查、代码扫描工具等。
    动态测试:分为语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖 六种方法。
    接下来存在两个伪代码:
	if(A && B)  {//执行语句}if(C || D) {//执行语句}

(1)语句覆盖:每个语句至少执行一次。
(2)判定覆盖:对于判定语句(如为真为假)中T和F的情况都要进行测试。
(3)条件覆盖:对于多个条件的情况下,需要测试多个条件为真为假的情况。将(A&&B)当成一个整体,(C||D)当成一个整体,分别进行真假的判断。

	测试用例分别为 (A&&B)=T (C || D) = T;(A&&B)=F (C || D) = F

(4)判定条件覆盖:结合判定覆盖和条件覆盖,测试用例既可以覆盖到判定,也可以覆盖到条件。

		测试用例:【1】 A = T B = T C = T D = T【2】A = F B = F C = F D = F  

(5)路径覆盖:对于一个功能来说有许多种发生的可能,包括成功和失败。
以下图为例,路径覆盖就是要走遍所有操作的流程。
下图的测试用例为:
[1] 3,12
[2]3,4,3,12
[3]3,4,5,6,3,12
[4]3,4,5,678,4,3,12
在这里插入图片描述
2. 黑盒测试
黑盒测试是指不关注代码内部实现的情况下,只关注功能能否正常使用,是否能按照规格说明一样完成输入输出。

四、按照测试阶段分类

测试阶段分为:单元测试、集成测试、系统测试、验收测试和回归测试。
单元测试是以规定的(如功能、接口)为最小单位进行测试,测试人员一般为开发人员。
集成测试是将功能模块联合起来组装测试,检查软件单位之间的接口是否正确。
系统测试是由测试人员对于整个软件系统进行测试,验证功能性和非功能性需求的实现。
回归测试是指在代码修改之后,重新测试以确认没有引入新的错误或导致其他功能产生错误。
验收测试是用户方对于整个软件系统重新测试,检查整个软件是否与用户需求相同,若有差异的的地方,则需要再次开发修正。

五、按照实施组织分类

大型软件在正式发布之前都会进行α测试和β测试
α测试又称为内测,是公司内部用户在模拟实际操作下进行的测试。
β测试又称为公测,是正式用户中的一部分用户在任意场合下使用软件。
区别:α测试环境是受开发商控制的,用户数量较少;β测试是不受开发商控制的,使用时间不集中,用户数量多。


总结

在软件测试中,依照不同的环境采用不同的测试方法,因此也诞生了这些测试分类。在实际场景中,许多测试分类是结合一同使用的,在最大程度上做到软件无bug,用户体验好。

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

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

相关文章

【编程底层思考】线程阻塞时一定会释放cpu吗

线程阻塞时是否释放CPU取决于阻塞的原因和操作系统的行为。以下是一些具体情况: 1. 阻塞等待资源:当线程因为等待某个资源(如锁、信号量、条件变量等)而阻塞时,它通常会释放CPU,以便其他线程可以运行。在这…

MATLAB绘图基础4:MATLAB函数

参考书:《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。 4.函数 4.1 定义函数 创建新函数文件 % 1.函数文件: % 1.1 函数文件包含一个或多个函数的定义; % 1.2 函数文件包含函数头,用于指定函数名称和输入参数,如:function output func…

掌握测试的艺术:深入探索Python的pytest库

文章目录 **掌握测试的艺术:深入探索Python的pytest库**背景:为什么选择pytest?pytest是什么?如何安装pytest?5个简单的库函数使用方法1. pytest.main()2. pytest.skip()3. pytest.mark.parametrize()4. pytest.raises…

python 地理抠图

python 地理抠图 在Python中进行地理抠图,可以使用geopandas库,它是基于pandas的地理空间数据处理库。以下是一个简单的例子,展示如何根据一个多边形区域来抠出该区域内的地理数据。 首先,安装必要的库(如果尚未安装&…

力扣1425.带限制的子序列和

力扣1425.带限制的子序列和 单调队列优化dp f[i] 表示在数组的前 i 个数中进行选择,并且恰好选择了第 i 个数,可以得到的最大和状态转移:f[i] max(max(f[j]) , 0) nums[i];单调队列优化:储存前K个f[i],并且单调&…

Go 语言生产服务故障案例精析

大多数 Go 开发者都停留在简单的增删改查层面,对 Go 语言本身掌握程度不够,对常用依赖或者开源组件掌握不够,在开发项目过程中总会不经意间引入一些千奇百怪的问题,并且在遇到线上问题时往往束手无策。下面列举一些线上问题以及相应的解决思路,希望大家能从这些问题中吸取…

Debian 安装 OpenSSH 服务器

Debian 安装 OpenSSH 服务器 先查看装了没安装 OpenSSH 服务器软件包启动 SSH 服务:查看服务状态修改 SSH 配置(测试机可跳过)连接测试文件收发 lrzsz 先查看装了没 apt-cache policy openssh-server安装 OpenSSH 服务器软件包 更新软件包列…

Notion 详细使用基础教程

1. 引言 什么是Notion? Notion是一款集笔记、任务管理、知识库和协作工具于一体的生产力应用。它被广泛用于个人和团队的日常工作和学习中。与传统的生产力工具不同,Notion提供了高度的自定义功能,允许用户根据自己的需求创建独特的工作流,…

(1)冒泡排序和其优化

一 冒泡排序 1.1 冒泡排序概念 冒泡排序(Bubble Sort)是一种交换排序,基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序记录位置。 假设要对无序数列{2,3,4,5,6,7,8,1}排序:…

VastBase——执行计划

一、SQL的执行过程 1.词法分析 从查询语句中识别出系统支持的关键字、标识符、运算符、终结符等,确定每个词固有的特性。 以如下这个查询为例: select name from test_0717 where id > 1; 该SQL语句可以划分的关键字、标识符、运算符、常量等…

深入理解linux内核hung_task机制,最全!原创!

背景 最近的一个项目里,发生的问题近乎多半都是hangdetect的问题,之前一直对这种问题总是一知半解,发现主要是因为对此种维测方案(hangdetect/hangtask/watchdog/hungdetect)的理解不够深刻,而更深层次的原因是对于内核的各种机(…

vue3 setup基本使用

1. 基本概念 在 Vue 3 中&#xff0c;setup 函数是在组件创建之前调用的&#xff0c;用于初始化组件的响应式数据、计算属性、方法等。setup 函数返回的对象会作为组件的上下文提供给模板&#xff0c;模板中可以直接访问返回的属性和方法。 <template><div><p…

【python学习】-在条件分支结构中错误使用or导致其他条件分支的代码跳过并不执行

在条件分支结构中错误使用or导致其他条件分支的代码跳过并不执行 bug的来源背景代码目标第一版代码第二版代码第三版代码 问题总结后语 bug的来源背景 由于课题更换的原因&#xff0c;最近去做实验搬砖工了&#xff0c;所以大半年没有写代码&#xff0c;这两天开始处理一些代码…

使用CMake组织构建QT项目

文章目录 定位Qt安装路径查找QT包设置自动MOC、UIC和RCC包含和链接Qt库处理资源文件调整编译器设置处理UI文件多平台支持高级编译选项在使用CMake来组织和构建Qt项目时,需要注意一系列的细节以确保项目的顺利编译和运行。这些细节涉及确保Qt和CMake之间的兼容性、处理UI文件和…

HTML详解

1. 文档结构标签 <!DOCTYPE html>&#xff1a;声明文档类型&#xff0c;告诉浏览器这是一个HTML5文档。<html>&#xff1a;HTML文档的根元素&#xff0c;包含整个HTML文档。<head>&#xff1a;包含文档的元数据&#xff08;metadata&#xff09;&#xff0c…

计算多图的等价无向图的邻接链表表示

计算多图的等价无向图的邻接链表表示 摘要:一、引言二、算法思路三、伪代码实现四、C代码实现五、算法分析六、结论摘要: 在图论中,多图(Multigraph)是一种允许边重复以及存在自循环边(即一个顶点到其自身的边)的图。给定一个多图的邻接链表表示,本文旨在探讨如何构造…

Git 忽略已经提交的文件

对于未提交过的文件直接用ignore文件即可,不再赘述 对于已经提交过的文件,但是实际上不需要的,可以用git rm --cached命令 比如下图这个 .vsconfig被我误提交了或者忘了在ignore里添加了 但是我实际上不想要这个文件,那么在项目根目录打开git bash ,输入 git rm --cached .vsc…

【QNX+Android虚拟化方案】107 - QNX NFS Server + Android NFS Client 完整配置

【QNX+Android虚拟化方案】107 - QNX NFS Server + Android NFS Client 完整配置 一、QNX 侧 NFS Server 修改:ip 为 192.168.1.21.1 配置拷贝 nfsd、rpcbind 到 /mnt 目录下1.2 配置 exports1.3 为NFS 共享目录挂载镜像1.4 修 startup.sh 开机自启动 nfsd Server1.5 关闭 QNX…

分歧时间估计与被子植物的年代-文献精读43

Ad fontes: divergence-time estimation and the age of angiosperms 回归本源&#xff1a;分歧时间估计与被子植物的年代 摘要 准确的分歧时间对于解释和理解谱系演化的背景至关重要。在过去的几十年里&#xff0c;有关冠被子植物推测的分子年龄&#xff08;通常估计为晚侏罗…

RabbitMQ中的死信交换机?(RabbitMQ延迟队列有了解过吗)

延迟队列 延迟队列:进入队列的消息会被延迟消费的队列。 延迟队列死信交换机 TTL&#xff08;过期时间&#xff09; 延迟队列的使用场景:超时订单、限时优惠、定时发布 死信交换机 当一个队列中的消息满足下列情况之一时&#xff0c;可以成为死信(dead letter): 消费者使…