SoftwareTest5 - 你就只知道功能测试吗 ?

news2024/12/22 18:25:54

你就只知道功能测试吗 ?

  • 一 . 按照测试对象划分
    • 1.1 文档测试
    • 1.2 可靠性测试
    • 1.3 容错性测试
    • 1.4 安装卸载测试
    • 1.5 内存泄漏测试
    • 1.6 弱网测试
  • 二 . 按是否查看代码划分
    • 2.1 黑盒测试
    • 2.2 白盒测试
    • 2.3 灰盒测试
  • 三 . 按照开发阶段划分
    • 3.1 单元测试
    • 3.2 集成测试
    • 3.3 冒烟测试
    • 3.4 系统测试
    • 3.5 回归测试
    • 3.6 验收测试
  • 四 . 按照测试实施组织划分
  • 五 . 按照是否运行划分
  • 六 . 按照手工进行划分
  • 七 . 按照地域进行划分

Hello , 大家好 , 又给大家带来新的专栏喽 ~
这个专栏是专门为零基础小白从 0 到 1 了解软件测试基础理论设计的 , 虽然还不足以让你成为软件测试行业的佼佼者 , 但是可以让你了解一下软件测试行业的相关知识 , 具有一定的竞争实力 .
那也欢迎大家订阅此专栏 : https://blog.csdn.net/m0_53117341/category_12427509.html
希望大家都能够拿到好的 Offer
在这里插入图片描述

那在最开始 , 我们先把这篇文章的大体脉络以思维导图的形式展现出来
测试分类.png

测试分类.xmind

一 . 按照测试对象划分

image.png

1.1 文档测试

实际工作中 , 也很少进行文档测试 , 最主要的一个原因就是 : 人们想的往往跟写出来的南辕北辙 , 产品经理表达的意思是他要餐巾纸 , 你听成了三斤屎 , 每个人理解问题的角度和表述能力是不一样的 , 所以通过文档测试的方式不适合于日常开发

1.2 可靠性测试

可靠性(Availability)即可用性 , 是指系统正常运行的能力或者程度 , 一般用正常向用户提供软件服务的时间占总时间的百分比表示 , 实际表达的意思就是程序正常使用多长时间

可靠性 = 正常运行时间 / (正常运行时间 + 非正常运行时间 ) * 100%
= 正常运行时间 / 总时间 * 100%

举个例子 :

image.png
可用性指标一般要求达到 4 个或 5 个 “9” , 即 99.99% 或者 99.999% , 最高可达到 100%

如果想要达成 4 个 9 (99.99%) 以及 5 个 9 (99.999%) , 对于全年无休的系统来说 , 不可用的时间是多少呢 ?

image.png

1.3 容错性测试

容错性测试是指系统能够处理异常 , 用户的错误操作而不至于系统崩溃 , 从而能够提高系统的可用性

容错性测试与可靠性测试非常相似 , 但是并不相同 , 容错性指的是出问题了还能不能用 , 可靠性指的是程序出不出问题

举个栗子 :
有一架飞机 , 他有四个引擎 , 假如说有一个引擎坏掉了 , 但是飞机还能正常运行
那么这架飞机他的容错性非常好 , 有一个引擎坏掉了 , 这就是不可靠性的体现

1.4 安装卸载测试

应用的安装和卸载在任何一款 APP 中都属于最基本功能 , 一旦出错 , 就属于优先级为紧要 Critical 的缺陷

在工作中 , 很容易就遗忘了安装卸载测试

1.5 内存泄漏测试

有一些语言会自动帮我们进行内存释放 , 但是有一些语言 , 动态开辟的内存要程序员手动释放的 , 比如 C 语言 .

那么程序员也不是神 , 我们很容易就会造成内存泄漏 .

在工作中 , 会有两种方法测试 :

  1. 人工肉眼观察 : 费力不讨好 , 先大概看一眼有没有明显问题
  2. 借助工具对代码进行扫描 : Visual Leak Detector / sonar , 记录每次内存分配 , 清楚告诉用户内存是如何泄漏的

1.6 弱网测试

智能手机在网络不好的情况下 , 一直获取不到内容的时候 , 基本都会给予弹窗提醒 ( ANR 弹窗 )

某一时间段内 , 如果网络状况不太好 , 客户端就会对服务器频繁地发送请求 , 造成服务器有一定的压力

我们可以模拟 WIFI 环境、5G、4G、3G、2G 环境等等 , 针对这些环境分别测试我们的产品能否在这些环境正常运行

我们可以去看后台数据 , 哪种网络环境使用人数多 , 优先测试哪种网络环境

我们可以通过 Fiddler 工具进行弱网环境模拟

工作中还有可能使用 Charles , 会更方便一点

1、打开弱网设置选项
image.png
2、打开弱网设置的脚本 , 找到以下位置

image.png
image.png

这里的 300 150 代表传输 1 KB 需要多少 ms
我们通过设置上行速率和下行速率来模拟不同的网络环境
那么怎么知道上行速率和下行速率我们该设置多少呢 ?
百度即可

image.png


参考链接

二 . 按是否查看代码划分

image.png

2.1 黑盒测试

黑盒测试是纯功能测试 , 不关心产品是怎样实现的 (不看代码)
一般在执行系统测试阶段 , 会进行黑盒测试的方法

2.2 白盒测试

白盒测试就需要关注程序的具体实现了 (看代码) , 他一般是在单元测试阶段使用的方法

2.3 灰盒测试

灰盒测试是介于黑盒测试和白盒测试之间的测试方法 , 灰盒测试多用于集成测试阶段 , 不仅关注输出、输入的正确性 , 同时也关注程序内部的情况 . 灰盒测试没有黑盒测试用例覆盖面积大 , 又没有白盒测试对于代码的分析那么详尽

面试题 : 哪种测试方法用的多 ?

黑盒测试和白盒测试测试人员都会用的到 , 在工作中根据具体情况来结合黑盒测试和白盒测试
通常情况下 , 黑盒测试对于测试人员会用的多一点

三 . 按照开发阶段划分

image.png

3.1 单元测试

单元测试是对程序的 “最小单元” 测试

基本情况下 , 就是对我们程序中每一个小功能进行测试

3.2 集成测试

集成测试也称联合测试 , 把程序中不同的模块采用适当的方法组装起来 , 对系统的接口以及集成后的功能进行测试

3.3 冒烟测试

开发人员完成开发任务后 , 交给测试人员测试的第一步 , 评估 软件 / 系统 是否具有测试的条件

冒烟测试成功 -> 进行系统测试
冒烟测试失败 -> 打回开发重做

3.4 系统测试

将软件系统看成是一个系统的测试 , 包括对功能、性能以及软件所运行的软硬件环境进行测试

系统测试就是测试人员详细测试的阶段

3.5 回归测试

回归测试一般是系统测试中的一环 , 他是对历史版本、历史功能进行测试 , 保证功能都是符合要求的

可以借助自动化来进行回归测试

📌 不用人工测试 , 完全使用自动化测试可以吗 ?
🈲 不可以 !
📌 自动化测试可以替代人工测试吗 ?
🈲 不可以 ! 现在不行 , 将来也不行

自动化测试也是测试人员去写的 , 自动化测试是有局限性的 , 而且只是辅助测试人员进行测试的一个工具

3.6 验收测试

验收测试是部署软件之前的最后一个测试操作 . 它是技术测试的最后一个阶段 , 也称为交付测试 . 验收测试的目的是确保软件准备就绪 , 按照项目合同、任务书、双方约定的验收依据文档 , 向软件购买方展示该软件系统满足原始需求

四 . 按照测试实施组织划分

α 测试和 β 测试的区别

  1. 环境 : α 测试是在公司内部进行测试 , β 测试环境是不确定的
  2. 测试人员类型 : α 测试是公司内部人员 , β 测试人员是用户
  3. 测试人员数量 : α 测试测试人员数量较少 , β 测试人员较多
  4. 阶段 : α 测试是在 β 测试之前测试的
  5. 测试时间 : α 测试周期较短 , β 测试周期较长

我们通过一个例子来理解
百度官网测试 :
环境 : α 测试是在百度公司进行 , β 测试是让一些用户先进行测试
测试人员 : α 测试人员是整个百度员工 , β 测试是每天一般抽出来 500 个用户
阶段 : 百度员工测试结束之后再让用户进行测试
周期 : 百度员工测试了 1 周时间 , 用户们持续了一个月

五 . 按照是否运行划分

静态测试 : 比如 : code review , 就光看看代码有没有问题

动态测试 : 把代码运行起来看看有没有问题

六 . 按照手工进行划分

一般分为手工测试和自动化测试

七 . 按照地域进行划分

国际化测试 : 测试在不同的国家使用问题 , 可以考虑一些其他的用例 : 时间、语言、日期、货币等

本地测试 : 就是在本地进行测试

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

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

相关文章

如何通过智能管理箱实现高效文件管理:关键字轻松修改文件名

在信息化时代,文件管理变得尤为重要。智能管理箱已经成为我们生活中不可或缺的一部分。它可以帮助我们高效地管理各种文件,使得我们的工作和生活更加便捷。是一种高效的文件管理工具,可以帮助我们轻松地整理和分类文件,提高工作效…

【算法】昂贵的聘礼(dijkstra算法)

题目 年轻的探险家来到了一个印第安部落里。 在那里他和酋长的女儿相爱了,于是便向酋长去求亲。 酋长要他用 10000 个金币作为聘礼才答应把女儿嫁给他。 探险家拿不出这么多金币,便请求酋长降低要求。 酋长说:”嗯,如果你能够替我…

SpringBoot+AOP+自定义注解,优雅实现日志记录

文章目录 前言准备阶段1、数据库日志表2、自定义注解编写3、AOP切面类编写4、业务层4.1、Service 层:4.2 Service 实现层: 5、测试 前言 首先我们看下传统记录日志的方式是什么样的: DeleteMapping("/deleteUserById/{userId}") …

【C语言:函数栈帧的创建与销毁】

文章目录 前言一、前期准备1.寄存器2.汇编指令3.测试代码 二、解开函数栈帧的神秘面纱1.栈帧大体轮廓2.main函数栈帧的创建3.main函数内执行有效代码4.烫烫烫5.函数参数的传递6.add函数栈帧的创建7.add函数内执行有效代码8.add是如何获得参数的9. add函数栈帧的销毁10.main函数…

IDEA中如何移除未使用的import

👨🏻‍💻 热爱摄影的程序员 👨🏻‍🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻‍🏫 一位高冷无情的编码爱好者 大家好,我是全栈工…

@Slf4j将日志记录到磁盘和数据库

文章目录 1、背景介绍2、存本地2.1、配置文件2.2、使用 3、存数据库3.1、配置文件改造3.2、过滤器编写3.3、表准备3.4、添加依赖3.5、测试 4、优化4.1、日志定期删除 1、背景介绍 现在我一个SpringBoot项目想记录日志,大概可以分为下面这几种: 用户操作…

速学数据结构 | 链表实现队列究竟有什么优势?

🎬 鸽芷咕:个人主页 🔥 个人专栏:《速学数据结构》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活! 📋 前言 🌈hello! 各位宝子们大家好啊,栈区的实现我们前面已经讲了&#…

0005Java安卓程序设计-ssm基于Android的网店系统

文章目录 **摘要**目录系统设计开发环境 编程技术交流、源码分享、模板分享、网课教程 🐧裙:776871563 摘要 随着Internet的发展,人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化,网络化和电子化。网上管…

系统提示缺少或找不到emp.dll文件的详细解决方案

我今天打开一款《游戏》。然而,在游戏中遇到了一个非常棘手的问题:游戏报错找不到emp.dll,无法继续执行代码。这让我们非常苦恼,因为这个问题严重影响了我们的游戏体验。 在经过一番努力之后,我终于找到了4个解决方法&#xff0c…

要讨个公道,要分辨真假

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

Qt利用VCPKG和CMake和OpenCV和Tesseract实现中英文OCR

文章目录 1. 开发平台2. 下载文件2.1 下载安装 OpenCV 库2.2 下载安装 Tesseract-OCR库2.3 下载训练好的语言包 3. CMakeLists.txt 内容4. Main.cpp4.1 中英文混合OCR 5. 在Qt Creator 中设置 CMake vcpkg5.1 在初始化配置文件里修改5.2 在构建配置里修改 说明:在Q…

C语言--判断一个年份是否是闰年(详解)

一.闰年的定义 闰年是指在公历(格里高利历)中,年份可以被4整除但不能被100整除的年份,或者可以被400整除的年份。简单来说,闰年是一个比平年多出一天的年份,即2月有29天。闰年的目的是校准公历与地球公转周…

Git 的基本操作 ——命令行

Git 的工作流程 详解如下: 本地仓库:是在开发人员自己电脑上的Git仓库,存放我们的代码(.git 隐藏文件夹就是我们的本地仓库) 远程仓库:是在远程服务器上的Git仓库,存放代码(可以是github.com或者gitee.com 上的仓库,或者自己该公司的服务器…

【小白专用】PHP基本语法 23.11.04

PHP基本语法 PHP是超文本预处理器 由服务器解析执行 可以与 html 进行混编(嵌入) ,PHP是一种弱类型语言 1.1 PHP标记 PHP和其他Web语言一样,都是用一对标记将PHP代码包含起来,以便和HTML代码区分开来。PHP支持4种风格的标记,如表所示。 标…

王道p18 6.从有序顺序表中删除所有其值重复的元素,使表中所有元素的值均不同(c语言代码实现)

视频讲解在这里:👇 顺序表p18 第6题wd数据结构课后代码题(c语言代码实现)_哔哩哔哩_bilibili 本题代码如下 void deleterepeat(struct sqlist* L) {if (L->length 0)printf("表空");int i 0;int k 0;for (i 1…

Vue3项目嵌套企业微信扫码登录

企业微信登录流程 企业微信提供了OAuth的授权登录方式,可以让从企业微信终端打开的网页获取成员的身份信息,从而免去登录的环节。 整个流程采用的是OAuth2,流程如下: 前端操作思路 配置一些参数,渲染登录模板也就是…

K8s:部署 CNI 网络组件+k8s 多master集群部署+负载均衡及Dashboard k8s仪表盘图像化展示

目录 1 部署 CNI 网络组件 1.1 部署 flannel 1.2 部署 Calico 1.3 部署 CoreDNS 2 负载均衡部署 3 部署 Dashboard 1 部署 CNI 网络组件 1.1 部署 flannel K8S 中 Pod 网络通信: ●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器(Pod 内的容…

https://aip.baidubce.com/oauth/2.0/token报错blocked by CORS policy

还是跟以前一样,我们先看报错点:(注意小编这里是H5解决跨域的,不过解决跨域的原理都差不多) Access to XMLHttpRequest at https://aip.baidubce.com/oauth/2.0/token from origin http://localhost:8000 has been blo…

[C++进阶篇]STL中vector的使用

一、vector的介绍 1.vector的介绍 vector是表示可变大小数组的序列容器。vector也采用的连续存储空间来存储元素,就是可以采用下标对vector的元素进行访问,和数组一样。它的大小是可以动态改变的。 2.重要的接口组成 二、 vector迭代器的使用 2.1 ve…

[SSD综述1.6] SSD固态硬盘参数图文解析_选购固态硬盘就像买衣服?

依公知及经验整理,原创保护,禁止转载。 专栏 《SSD入门到精通系列》 <<<< 返回总目录 <<<< ​ 传统的 HDD 是“马达+磁头+磁盘”的机械结构,而 SSD 则是“闪存介质+主控”的纯半导体芯片存储结构,两者在数据存储介质和读写方式上有着本质区别,这…