SoftwareTest5 - 你就只知道功能测试吗 ?
你就只知道功能测试吗 ?
- 一 . 按照测试对象划分
- 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
那在最开始 , 我们先把这篇文章的大体脉络以思维导图的形式展现出来
测试分类.xmind
一 . 按照测试对象划分
1.1 文档测试
实际工作中 , 也很少进行文档测试 , 最主要的一个原因就是 : 人们想的往往跟写出来的南辕北辙 , 产品经理表达的意思是他要餐巾纸 , 你听成了三斤屎 , 每个人理解问题的角度和表述能力是不一样的 , 所以通过文档测试的方式不适合于日常开发
1.2 可靠性测试
可靠性(Availability)即可用性 , 是指系统正常运行的能力或者程度 , 一般用正常向用户提供软件服务的时间占总时间的百分比表示 , 实际表达的意思就是程序正常使用多长时间
可靠性 = 正常运行时间 / (正常运行时间 + 非正常运行时间 ) * 100%
= 正常运行时间 / 总时间 * 100%
举个例子 :
可用性指标一般要求达到 4 个或 5 个 “9” , 即 99.99% 或者 99.999% , 最高可达到 100%
如果想要达成 4 个 9 (99.99%) 以及 5 个 9 (99.999%) , 对于全年无休的系统来说 , 不可用的时间是多少呢 ?
1.3 容错性测试
容错性测试是指系统能够处理异常 , 用户的错误操作而不至于系统崩溃 , 从而能够提高系统的可用性
容错性测试与可靠性测试非常相似 , 但是并不相同 , 容错性指的是出问题了还能不能用 , 可靠性指的是程序出不出问题
举个栗子 :
有一架飞机 , 他有四个引擎 , 假如说有一个引擎坏掉了 , 但是飞机还能正常运行
那么这架飞机他的容错性非常好 , 有一个引擎坏掉了 , 这就是不可靠性的体现
1.4 安装卸载测试
应用的安装和卸载在任何一款 APP 中都属于最基本功能 , 一旦出错 , 就属于优先级为紧要 Critical 的缺陷
在工作中 , 很容易就遗忘了安装卸载测试
1.5 内存泄漏测试
有一些语言会自动帮我们进行内存释放 , 但是有一些语言 , 动态开辟的内存要程序员手动释放的 , 比如 C 语言 .
那么程序员也不是神 , 我们很容易就会造成内存泄漏 .
在工作中 , 会有两种方法测试 :
- 人工肉眼观察 : 费力不讨好 , 先大概看一眼有没有明显问题
- 借助工具对代码进行扫描 : Visual Leak Detector / sonar , 记录每次内存分配 , 清楚告诉用户内存是如何泄漏的
1.6 弱网测试
智能手机在网络不好的情况下 , 一直获取不到内容的时候 , 基本都会给予弹窗提醒 ( ANR 弹窗 )
某一时间段内 , 如果网络状况不太好 , 客户端就会对服务器频繁地发送请求 , 造成服务器有一定的压力
我们可以模拟 WIFI 环境、5G、4G、3G、2G 环境等等 , 针对这些环境分别测试我们的产品能否在这些环境正常运行
我们可以去看后台数据 , 哪种网络环境使用人数多 , 优先测试哪种网络环境
我们可以通过 Fiddler 工具进行弱网环境模拟
工作中还有可能使用 Charles , 会更方便一点
1、打开弱网设置选项
2、打开弱网设置的脚本 , 找到以下位置
这里的 300 150 代表传输 1 KB 需要多少 ms
我们通过设置上行速率和下行速率来模拟不同的网络环境
那么怎么知道上行速率和下行速率我们该设置多少呢 ?
百度即可
参考链接
二 . 按是否查看代码划分
2.1 黑盒测试
黑盒测试是纯功能测试 , 不关心产品是怎样实现的 (不看代码)
一般在执行系统测试阶段 , 会进行黑盒测试的方法
2.2 白盒测试
白盒测试就需要关注程序的具体实现了 (看代码) , 他一般是在单元测试阶段使用的方法
2.3 灰盒测试
灰盒测试是介于黑盒测试和白盒测试之间的测试方法 , 灰盒测试多用于集成测试阶段 , 不仅关注输出、输入的正确性 , 同时也关注程序内部的情况 . 灰盒测试没有黑盒测试用例覆盖面积大 , 又没有白盒测试对于代码的分析那么详尽
面试题 : 哪种测试方法用的多 ?
黑盒测试和白盒测试测试人员都会用的到 , 在工作中根据具体情况来结合黑盒测试和白盒测试
通常情况下 , 黑盒测试对于测试人员会用的多一点
三 . 按照开发阶段划分
3.1 单元测试
单元测试是对程序的 “最小单元” 测试
基本情况下 , 就是对我们程序中每一个小功能进行测试
3.2 集成测试
集成测试也称联合测试 , 把程序中不同的模块采用适当的方法组装起来 , 对系统的接口以及集成后的功能进行测试
3.3 冒烟测试
开发人员完成开发任务后 , 交给测试人员测试的第一步 , 评估 软件 / 系统 是否具有测试的条件
冒烟测试成功 -> 进行系统测试
冒烟测试失败 -> 打回开发重做
3.4 系统测试
将软件系统看成是一个系统的测试 , 包括对功能、性能以及软件所运行的软硬件环境进行测试
系统测试就是测试人员详细测试的阶段
3.5 回归测试
回归测试一般是系统测试中的一环 , 他是对历史版本、历史功能进行测试 , 保证功能都是符合要求的
可以借助自动化来进行回归测试
📌 不用人工测试 , 完全使用自动化测试可以吗 ?
🈲 不可以 !
📌 自动化测试可以替代人工测试吗 ?
🈲 不可以 ! 现在不行 , 将来也不行
自动化测试也是测试人员去写的 , 自动化测试是有局限性的 , 而且只是辅助测试人员进行测试的一个工具
3.6 验收测试
验收测试是部署软件之前的最后一个测试操作 . 它是技术测试的最后一个阶段 , 也称为交付测试 . 验收测试的目的是确保软件准备就绪 , 按照项目合同、任务书、双方约定的验收依据文档 , 向软件购买方展示该软件系统满足原始需求
四 . 按照测试实施组织划分
α 测试和 β 测试的区别
- 环境 : α 测试是在公司内部进行测试 , β 测试环境是不确定的
- 测试人员类型 : α 测试是公司内部人员 , β 测试人员是用户
- 测试人员数量 : α 测试测试人员数量较少 , β 测试人员较多
- 阶段 : α 测试是在 β 测试之前测试的
- 测试时间 : α 测试周期较短 , β 测试周期较长
我们通过一个例子来理解
百度官网测试 :
环境 : α 测试是在百度公司进行 , β 测试是让一些用户先进行测试
测试人员 : α 测试人员是整个百度员工 , β 测试是每天一般抽出来 500 个用户
阶段 : 百度员工测试结束之后再让用户进行测试
周期 : 百度员工测试了 1 周时间 , 用户们持续了一个月
五 . 按照是否运行划分
静态测试 : 比如 : code review , 就光看看代码有没有问题
动态测试 : 把代码运行起来看看有没有问题
六 . 按照手工进行划分
一般分为手工测试和自动化测试
七 . 按照地域进行划分
国际化测试 : 测试在不同的国家使用问题 , 可以考虑一些其他的用例 : 时间、语言、日期、货币等
本地测试 : 就是在本地进行测试
相关文章:

SoftwareTest5 - 你就只知道功能测试吗 ?
你就只知道功能测试吗 ? 一 . 按照测试对象划分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 系统测…...
Uniapp 中,能够同时兼容H5、web、app、微信小程序的引入高德地图的语法格式
在 Uniapp 中,可以通过使用 uni-app 统一的 API 来同时兼容 H5、web、App 和微信小程序,而引入高德地图则有以下两种语法格式供选择: 使用 Vue.js 的语法格式: <template><view><map :longitude"longitude&…...

基于nodejs+vue网上鲜花销售系统
目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…...
stm32 ETH
1 How do I create a project for STM32H7 with Ethernet and LwIP stack working? STM32 LWIP 接收大数据包导致Hardfault问题解决记录 Trying to get Ethernet, LWIP and FreeRTOS working on the STM32H745. Testing on the NUCLEO-H745ZI-Q using FW_1.7 and the STM32Cub…...

【深度学习基础】Pytorch框架CV开发(2)实战篇
📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...
C语言--输出1-100以内同时能被3和5整除的数
首先我们要有1-100的数字. for(int i1;i<100;i) 如何表示同时能被3和5同时整除呢? 如果这个数i,i%30&&i%50,那么这个数就可以同时被3和5整除 if(i%30&&i%50) 最后输出即可 完整代码: #include<stdio.h> void Sh…...

Linux--jdk、tomcat、环境配置,mysql安装、后端项目搭建
前言 上期我们讲到了安装linux虚拟机,这期我们来讲一下如何使用xshell和xftp在linux系统上搭建我们的单体项目 一、软件的传输 1.1 xftp Xftp是一款功能强大的文件传输软件,用于在本地主机和远程服务器之间进行快速、安全的文件传输。它是由南京帆软科…...
NOIP2023模拟10联测31 迷路
题目大意 你在野外迷路了, 你手里只有一张你当前所在的区域的地图。地图将整个区域表示为 n m n\times m nm的网格,你就在其中的某一个格子里。每个格子里要么有树,要么就什么都没有。地图显示了每个格子中是有树还是空的。当然,地图只记载…...
React Query + Redux toolkit 封装异步请求
当你需要进行 Redux 和 React Query 的组合时,除了常规的 Redux 方法(例如手动派发 action 和更新 state),还可以使用 createSlice 和 React Query 进行组合,这可以让你更方便地封装异步请求和更容易地更新状态。 使用…...

CSS基础知识点速览
1 基础认识 1.1 css的介绍 CSS:层叠样式表(Cascading style sheets) CSS作用: 给页面中的html标签设置样式 css写在style标签里,style标签一般在head标签里,位于head标签下。 <style>p{color: red;background-color: green;font-size…...

Windows 时间服务配置和配置工具
文章目录 Windows 时间服务保留Portw32tm 命令配置 Windows 时间服务配置客户端使用两个时间服务器配置客户端自动从域源同步时间检查客户端时间配置使用本地组策略编辑器配置Windows 时间注册表参考推荐阅读 Windows 时间服务 (W32Time) 为 Active Directory 域服务 (AD DS) 管…...

cmake find_package、引用GDAL 初步学习
上次的源码的CMakeLists.txt文件里有 find_package(GDAL REQUIRED) 这句; 从字面意思看此源码需要GDAL库; 查了一下,find_package 指令的基本功能是查找第三方库,并返回其细节; 我当前GDAL安装在D:\GDAL; 先把它的CMakeLists.txt重命名为别的,不使用; 新建一个C…...

紫光同创FPGA编写的8画面分割器演示
适用于板卡型号: 紫光同创PGL50H开发平台(盘古50K开发板) 图(1) 盘古50K开发板 TOP 层逻辑框 图(2) TOP层逻辑框 video_copy_ux 将输入的一路RGB888信号复制成8份,每份画面内容相同,各路颜色有些差异: 第…...

openLayers--绘制多边形、获取视图的中心点、获取当前地图等级、设置地图等级
openLayers绘制多边形、获取视图中心点 前言效果图1、导入LineString2、创建添加多边形3、定义多变形样式4、获取当前视图的中心点5、获取当前视图等级6、设置地图等级 前言 上一篇文章在vue项目中绘制了openlayers绘制了地图和标记点,本篇文章讲解openlayers绘制多…...

CSP-31补题日记--梯度求解
202309-3-梯度求解 题目链接 http://118.190.20.162/view.page?gpidT173 最近刚刚在上数据结构二叉树 跟这道题真的是强相关 然后在就是涉及到了数学求导 这基本上是我复学两个月做的最久的题了 感觉做完这道题对栈和二叉树理解比以前清晰了很多 不摆了 上代码 ** 题目思路&am…...
MySQL 8.0.32 union 语句中文查不到数据
关键字 MySQL union 语句,中文查不到数据 问题描述 MySQL 8.0.32 union 语句,中文查不到数据 解决问题思路 1、Create a table test with two fields, such as id and name mysql>create table test ( id int unsigned auto_increment key, name…...

FlinkCDC系列:通过skipped.operations参数选择性处理新增、更新、删除数据
在flinkCDC源数据配置,通过debezium.skipped.operations参数控制,配置需要过滤的 oplog 操作。操作包括 c 表示插入,u 表示更新,d 表示删除。默认情况下,不跳过任何操作,以逗号分隔。配置多个操作ÿ…...

高压检测设备
比如:高压数字表、高压差分探头、指针式高压表、电流探枪、高压探棒 这些设备都是用来测量高压的,有的测电压,有的测电流。 高压数字表: 单独使用,功能很简单,有2个正负极探爪,把2个探爪连接到…...

Vue3问题:如何实现组件拖拽实时预览功能?
前端功能问题系列文章,点击上方合集↑ 序言 大家好,我是大澈! 本文约3000字,整篇阅读大约需要5分钟。 本文主要内容分三部分,第一部分是需求分析,第二部分是实现步骤,第三部分是问题详解。 …...

基于jsp的采购管理系统的分析与实现
物资采购管理系统是针对内部而设计的,应用于的局域网,这样可以使得内部管理更有效的联系起来。企业采购管理系统是将IT技术用于企业采购信息的管理, 它能够收集与存储企业采购的档案信息,提供更新与检索企业采购信息档案的接口;提…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...
pycharm 设置环境出错
pycharm 设置环境出错 pycharm 新建项目,设置虚拟环境,出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...
OCR MLLM Evaluation
为什么需要评测体系?——背景与矛盾 能干的事: 看清楚发票、身份证上的字(准确率>90%),速度飞快(眨眼间完成)。干不了的事: 碰到复杂表格(合并单元…...

GraphRAG优化新思路-开源的ROGRAG框架
目前的如微软开源的GraphRAG的工作流程都较为复杂,难以孤立地评估各个组件的贡献,传统的检索方法在处理复杂推理任务时可能不够有效,特别是在需要理解实体间关系或多跳知识的情况下。先说结论,看完后感觉这个框架性能上不会比Grap…...

spring boot使用HttpServletResponse实现sse后端流式输出消息
1.以前只是看过SSE的相关文章,没有具体实践,这次接入AI大模型使用到了流式输出,涉及到给前端流式返回,所以记录一下。 2.resp要设置为text/event-stream resp.setContentType("text/event-stream"); resp.setCharacter…...
【R语言编程——数据调用】
这里写自定义目录标题 可用库及数据集外部数据导入方法查看数据集信息 在R语言中,有多个库支持调用内置数据集或外部数据,包括studentdata等教学或示例数据集。以下是常见的库和方法: 可用库及数据集 openintro库 该库包含多个教学数据集&a…...