【软件测试】bug 篇
本章思维导图:
1. 软件测试的生命周期
软件测试贯穿于整个软件的生命周期
流程阶段 | 需求分析 | 测试计划 | 测试设计/开发 | 测试执行 | 测试评估 | 上线 | 运行维护 |
---|---|---|---|---|---|---|---|
具体工作内容 | 1. 阅读需求文档 2. 标记可测试需求 3. 确定测试类型 | 1. 制定测试范围 2. 选择测试工具 3. 分配资源 | 1. 编写测试用例 2. 准备测试数据 3. 开发自动化脚本 | 1. 执行测试用例 2. 记录结果 3. 提交缺陷 | 1. 统计缺陷 2. 计算覆盖率 3. 编写报告 | 1. 部署软件 2. 验证功能 3. 监控运行 | 1. 收集反馈 2. 修复缺陷 3. 性能优化 |
其中,上线流程并不是一步就完成的,而是分为多步进行, 环境分为线上环境和线下环境
- 线下环境:开发和测试人员测试使用
- 线上环境:用户使用
线下环境测试完成后,就需要进行上线,上线又分为 沙盒测试、小流量、全流量、全线上
- 沙盒测试:企业内部的员工使用
- 小流量:只有一部分的用户能够使用
- 全流量:大部分用户能够使用
- 全线上:所有线上的用户都能够使用
测试/发布类型 | 沙盒测试 (Sandbox Testing) | 小流量 (Canary Release) | 全流量 (Full Release) | 全线上 (Production) |
---|---|---|---|---|
定义 | 在隔离的测试环境中模拟生产环境进行测试 | 将新版本先发布给少量真实用户进行验证 | 新版本对所有用户开放,但尚未完全取代旧版本 | 新版本已完全取代旧版本,成为线上唯一版本 |
具体工作内容 | 1. 搭建与生产隔离的测试环境 2. 模拟用户请求和数据 3. 验证核心功能与异常场景 | 1. 选择小部分用户或流量(如1%-5%) 2. 监控用户行为和数据指标 3. 快速回滚发现问题 | 1. 逐步扩大用户覆盖范围(如50%-100%) 2. 持续监控系统稳定性 3. 与旧版本并行运行验证 | 1. 完全下线旧版本 2. 全量用户使用新版本 3. 长期监控和优化 |
目的 | 提前发现功能或性能问题,避免影响真实用户 | 降低风险,通过真实用户反馈验证版本稳定性 | 确保新版本在大规模流量下的稳定性 | 完成版本迭代,进入稳定运维阶段 |
风险等级 | 无用户影响 | 低风险(影响范围可控) | 中风险(需快速响应问题) | 高风险(需确保100%稳定性) |
适用场景 | 新功能开发完成后内部验证 | 重大更新或架构改动前的验证 | 确认小流量无问题后的全面推广 | 最终稳定版本的长期运行 |
2. Bug
2.1 bug 的概念
「Debug」的由来
计算机史上第一个著名的“Bug”诞生于1947年9月9日,哈佛大学的Grace Hopper团队在调试马克II计算机时,发现一只飞蛾卡死在继电器中导致机器故障。他们幽默地将这只蛾子贴在日志本上,标注"First actual case of bug being found",从此"bug"成为程序缺陷的代名词,"debug"则指排除故障的过程。这个真实的小故事不仅创造了计算机领域的经典术语,更生动展现了工程师们解决问题的智慧——再复杂的技术问题,往往源于最意想不到的细节。如今保存在史密森尼博物馆的那只飞蛾,成为了计算机发展史上最有趣的文物之一。
定义:在软件测试中,Bug(缺陷) 是指软件系统中存在的任何不符合预期行为或需求的问题。Bug 可能导致功能失效、性能下降、安全漏洞或用户体验不佳。
简单理解:任何与需求文档、设计规范或用户期望不一致的问题,均可称为 Bug。
就比如说当需要一个列表功能,其中有几千上万个选项
但是需要用户一个一个往下翻才能找到想要的,而不能直接检索关键字来确定范围此时该功能和用过需求有了冲突,此时就可以提一个 bug
当我们进行测试的时候,我们不需要过分关注程序里的代码是如何写的,重点关注的是该程序的输入输出是否符合我们的预期例如一个排序程序,里面的实现方式可能是冒泡排序,快速排序,归并排序........
不用管,只需要看无序数组经过程序运行后是否变得有序就行
2.2 描述 bug 的要素
为什么描述 bug 还要有要求?
在心理学上说,在编写文档是,人们想要表达的和实际书写的文档往往会南辕北辙。而不清楚,不确定的描述更是可能误导开发人员,倒是沟通低效,工作质量低。因此,一个清晰、完整的 Bug 描述能帮助开发人员快速定位和修复问题。
描述 bug 的基本要素:
问题标题、问题出现的版本、问题出现的环境、问题出现的步骤、预期结果、实际结果
拿浏览器打开同一个网址来举例:
同一个网址,某些浏览器打开会出现页面显示错误,会出现图片错位的情况,以这个 bug 来描述
问题标题:浏览器兼容性问题导致页面图片错位
问题出现的版本:网站版本 v2.1.0(举例)
问题出现的环境:Safari 16.6 / Edge 117(异常环境) Chrome 118 / Firefox 118 (正常环境)
问题出现的步骤:
使用 Safari 16.6 或 Edge 117 浏览器。
访问网址:
https://example.com/product/123
。滚动页面至「产品详情」模块。
预期结果:图片应与文字描述对齐,布局符合设计稿
实际结果:图片向右偏移 50px,与文字重叠
2.3 bug 级别
级别 | 类型 | 描述 | 示例 |
---|---|---|---|
Critical | 严重程度 (Severity) | 导致系统崩溃、数据丢失或核心功能完全不可用 | 支付失败但扣款成功、数据库数据损坏 |
Major | 严重程度 (Severity) | 重要功能异常,但系统可降级运行 | 商品搜索返回错误结果、图片错位影响操作 |
Minor | 严重程度 (Severity) | 非核心功能问题,用户体验受损 | 字体颜色不符设计稿、次要按钮无响应 |
Trivial | 严重程度 (Severity) | 微小瑕疵,不影响功能 | 控制台无关警告、拼写错误 |
P1 | 优先级 (Priority) | 必须立即修复(阻塞开发/上线) | 所有用户无法登录、关键业务流程中断 |
P2 | 优先级 (Priority) | 高优先级,需在当前版本修复 | 部分用户遭遇数据展示错误(如浏览器兼容性问题) |
P3 | 优先级 (Priority) | 可延期至后续版本修复 | 低频率UI错位,不影响核心功能 |
P4 | 优先级 (Priority) | 修复成本高于收益,可能永不修复 | IE11浏览器下的边缘样式问题 |
2.4 bug 的生命周期
状态 | 描述 | 常见操作 |
---|---|---|
New | 测试人员新发现的缺陷,尚未分配 | 提交Bug报告 |
Assigned | 缺陷已分配给开发人员,等待修复 | 开发认领任务 |
In Progress | 开发人员正在修复中 | 代码修改、本地测试 |
Fixed | 开发完成并部署到测试环境,等待验证 | 标记为“已修复” |
Verified | 测试人员确认缺陷已解决 | 回归测试通过 |
Closed | 缺陷完全关闭,流程结束 | 归档至历史记录 |
Rejected | 开发认为不是缺陷(如需求理解错误) | 需产品经理仲裁 |
Deferred | 暂不修复(如低优先级、下个版本处理) | 记录延期原因 |
Reopened | 验证时问题复现,重新激活(从Verified/Fixed回到Assigned) | 重新分配开发 |
流程图:
2.5 与开发发生争执应该怎么做
1) 先检查自己,是否 bug 描述不清楚
2) 站在用户的角度考虑并抛出问题 ---- 功能正常只是测试的一部分,还要考虑用户的感受
3) bug 定级需要有理有据 ---- bug 级别描述文档
4) 提高业务水平,做到不仅能够提出问题,最好也能够提出解决方案
举例:双十一活动
测试新手:双十一活动时间边界值不符合预期
测试大牛: 双十一活动时间边界值不符合预期 修改建议:.......
注意,不要以命令式的口吻去告诉开发人员,术业有专攻,建议只是建议
5) bug 评审
如果确实是 bug ,但不能友好沟通,就召开 bug 评审
Bug评审是软件开发过程中由跨职能团队共同评估、分类和处理缺陷的关键环节,其核心目标是高效分配资源并确保产品质量。
bug 评审需要三个代表参加:测试代表、开发代表、产品代表
bug 评审主要解决两个问题:
- 决定如何处理 bug
- 分析缺陷产生的原因,并找出预防的对策
相关文章:
【软件测试】bug 篇
本章思维导图: 1. 软件测试的生命周期 软件测试贯穿于整个软件的生命周期 流程阶段需求分析测试计划测试设计/开发测试执行测试评估上线运行维护具体工作内容1. 阅读需求文档 2. 标记可测试需求 3. 确定测试类型1. 制定测试范围 2. 选择测试工具 3. 分配资源1. 编写…...
java -jar指定类加载
在 Java 中,使用 java -jar 命令运行 JAR 文件时,默认会加载 JAR 文件的 MANIFEST.MF 文件中指定的 Main-Class。如果你想在运行时指定一个类来加载,可以通过以下方式实现: 方法 1:直接指定类路径和类名 如果你不想使用…...
MVC 模式深度解析与 Spring 框架实践研究
MVC 模式深度解析与 Spring 框架实践研究 摘要 MVC(Model-View-Controller)模式作为软件工程中最重要的架构模式之一,通过将应用逻辑划分为模型、视图和控制器三个独立组件,实现了代码的高内聚低耦合,显著提升了软件的可维护性和可扩展性。本文从 MVC 模式的核心思想出发…...
驱动开发硬核特训 · Day 11(下篇):从 virtio_blk 看虚拟总线驱动模型的真实落地
🔍 B站相应的视屏教程: 📌 内核:博文视频 - 总线驱动模型实战全解析 敬请关注,记得标为原始粉丝。 🔧 在上篇中,我们已经从理论视角分析了“虚拟总线驱动模型”在 Linux 驱动体系中的独特定位。…...
Java实现快速排序算法
用「整理书架」理解快速排序原理 想象你有一堆杂乱的书需要按大小排序,快速排序的步骤可以类比为: 1. 选一本“基准书”(比如最右侧的书) 2. 把书分成三堆: - 左边:比基准小的书 - 中间:基…...
3.3.2 应用层协议设计protobuf(二进制序列化协议)
文章目录 3.3.2 应用层协议设计protobuf(二进制序列化协议)1. 什么是协议设计什么是协议为什么说进程间通信就需要协议,而不是客户端与服务端之间为什么需要自己设计协议 2. 判断消息的完整性->区分消息的边界1.固定长度2. 特定符号3. 固定…...
软件测试过程模型:v模型、w模型、x模型、H模型
软件测试流程 获取测试需求编写测试计划制定测试方案开发和设计测试用例执行测试提交缺陷报告测试分析与评审提交测试报告准备下一版本测试 软件测试过程模型 v模型 【V模型是线性的操作方式】 优点: 验收测试的标准是用户的需求,用户需求对应指导…...
设计模式-代理模式
虚代理 根据需要创建对象...
cocos Spine资源及加载
COCOS Spine 资源加载 创建 Canvas 以及Camera 再进行spine 拖入 提供40个实战酷炫技能spine文件: Spine文件下载...
约翰·麦卡锡:我的人工智能之梦
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 约翰麦卡锡:我的人工智能之梦 一、引言:计算机科学的传奇人物…...
Scrapy结合Selenium实现搜索点击爬虫的最佳实践
一、动态网页爬取的挑战 动态网页通过JavaScript等技术在客户端动态生成内容,这使得传统的爬虫技术(如requests和BeautifulSoup)无法直接获取完整的内容。具体挑战包括: 数据加载异步化:数据并非一次性加载ÿ…...
Oracle数据库数据编程SQL<9.3 数据库逻辑备份和迁移Data Pump (EXPDP/IMPDP) 导出、导入补充>
Oracle Data Pump 是 Oracle 10g 引入的高效数据迁移工具,相比传统的 EXP/IMP 工具,它提供了更强大的功能和显著的性能提升。以下是对 EXPDP 和 IMPDP 工具的全面讲解。 目录 一、高级功能扩展 1. 数据过滤与转换 2. 加密与安全 二、性能调优进阶 1. 并行处理优化 2. …...
Vue 3 + TypeScript 实现一个多语言国际化组件(支持语言切换与内容加载)
文章目录 一、项目背景与功能概览二、项目技术架构与依赖安装2.1 技术栈2.2 安装依赖 三、国际化组件实现3.1 创建 i18n 实例3.2 配置 i18n 到 Vue 应用3.3 在组件中使用国际化内容3.4 支持语言切换 四、支持类型安全4.1 添加类型支持4.2 自动加载语言文件 一、项目背景与功能概…...
RK3506+net9+VS2022跨平台调试C#程序
下载GetVsDbg.sh ,这脚本会下载一个压缩包,然后解压缩,设置x权限等等。但是目标板子连不上,就想办法获取到下载路径,修改这个脚本,显示这个下载链接后,复制一下,用电脑下下来 修改好…...
c# 反射及优缺点
在C#中,反射(Reflection)是一种强大的机制,允许程序在运行时检查其自身的结构(如类型、属性、方法等),以及动态地调用对象的方法或访问其属性。反射主要用于那些在编译时不知道具体类型信息&…...
基于SpringBoot的在线教育系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...
吴恩达深度学习复盘(16)决策树|节点纯度与熵
决策树简介 决策树算法在很多应用中被使用,机器学习比赛中会经常见到,但在流行病学领域未受到太多关注。 决策树示例 —— 猫的分类 以经营猫收养中心为例,通过动物的耳朵形状、脸型、是否有胡须等特征,来训练一个分类器判断动…...
C++基础精讲-07
文章目录 1. const对象2. 指向对象的指针3. 对象数组4. c中const常见用法总结4.1 修饰常量4.2 修饰指针4.3 修饰函数参数4.4 修饰函数返回值4.5 修饰成员函数4.6 const对象 5. 赋值运算符函数(补充)5.1 概念5.2 默认赋值运算符函数局限5.3 解决办法 1. c…...
100个有用的AI工具 之 生成透明图像LayerDiffuse
Stable Diffusion是开源图像生成界的扛把子,最强的地方在于它的可控性,通过ControlNet,和一系列插件,可以非常精准地控制图像生成的需求。 今天介绍的是SD的一个插件LayerDiffuse,它可以帮助我们用SD生成透明的png图层。我们在用PS抠图的时候,对于头发、毛绒边这种图是非…...
springboot和springcloud的区别
1. 目的与功能 1)Spring Boot: 主要用于快速构建独立的、生产级的 Spring 应用程序。它通过自动配置和嵌入式服务器等特性,简化了微服务的开发、启动和部署,使开发者能够专注于业务逻辑而非繁琐的配置。Spring Boot是一个快速开发的框架,旨在简化Java应用程序的开…...
前端操作document的小方法,主要功能-获取当前页面全部的a标签页,并根据链接中必要的字段进行判断,然后把这些链接放入iframe去打开
首先是一些小方法,有一个问题就是在不同源的页面中无法获取iframe中的dom const isInIframe window.parent ! window.self; console.log(是否在 iframe 中:, isInIframe); console.log(来源页面:, document.referrer); const isSame new URL(document.referrer).o…...
RocketMQ 03
今天是2025/04/14 21:58 day 20 总路线请移步主页Java大纲相关文章 今天进行RocketMQ 6,7,8 个模块的归纳 最近在忙毕设,更新有点慢,见谅 首先是RocketMQ 的相关内容概括的思维导图 6. 安全机制 6.1 ACL 访问控制 核心功能 权限分级:通过…...
基于项目管理的轻量级目标检测自动标注系统【基于 YOLOV8】
🐱 AILabeler 是一个轻量级目标检测标注系统,专为 YOLO 系列模型设计,支持图像上传、标注框管理、类别设置、自动标注(YOLOv8)、导出多格式训练数据等功能。 项目已经发布至https://github.com/as501226107/AILabeler&…...
针对 Java从入门到精通 的完整学习路线图、各阶段技术点、CTO进阶路径以及经典书籍推荐。内容分阶段展开,兼顾技术深度与职业发展
以下是针对 Java从入门到精通 的完整学习路线图、各阶段技术点、CTO进阶路径以及经典书籍推荐。内容分阶段展开,兼顾技术深度与职业发展。 一、学习路线图分阶段详解 阶段1:Java基础入门(3-6个月) 目标:掌握Java核心…...
深度学习总结(13)
选择损失函数 为问题选择合适的损失函数,这是极其重要的。神经网络会采取各种方法使损失最小化,如果损失函数与成功完成当前任务不完全相关,那么神经网络最终的结果可能会不符合你的预期。因此,一定要明智地选择损失函数…...
AI测试引擎中CV和ML模型的技术架构
技术架构概述 1. 数据采集层 此层负责收集各种类型的数据,为后续的模型训练和测试提供基础。对于CV模型,主要采集图像、视频数据,可来源于摄像头、图像数据库等;对于ML模型,采集结构化数据(如表格数据)、非结构化数据(如文本数据)等,数据来源包括业务系统日志、传感…...
业务架构发展历史及相关技术应用介绍
1,单体架构 企业处于发展初期阶段,业务的开发量与用户的访问量较少的情况下,通常情况会将业务编写在一个应用中,由一个web容器完成部署调用。如下图,一个应用中所有的功能模块写在一个war包中,功能模块的代…...
Java栈与队列深度解析:结构、实现与应用指南
一、栈与队列核心概念对比 特性栈 (Stack)队列 (Queue)数据原则LIFO(后进先出)FIFO(先进先出)核心操作push(入栈)、pop(出栈)、peek(查看栈顶)offer(入队)、poll(出队)、peek(查看队首)典型应用函数调用栈、括号匹配、撤销操作任…...
CentOS DVD完整版与Minimal版的区别
文章目录 一、体积与内置软件:从“大而全”到“小而精”二、安装体验:开箱即用 vs 高度定制三、适用场景:桌面与服务器的分水岭四、后续配置:时间成本的权衡五、性能与资源占用六、推荐新手下载完整版建议: 在 CentOS…...
AI日报 - 2025年4月13日
🌟 今日概览(60秒速览) ▎🤖 AGI突破 | OpenAI CFO称AGI可能已到来 Sarah Friar透露Sam Altman认为AGI潜力尚未完全发挥,引发行业热议 ▎💼 商业动向 | OpenAI开发新型AI工程师A-SWE 超越Copilot,能独立完成应用构建、…...
有哪些基于solidity的应用
🔥 Solidity 常见应用分类(附例子) 🏦 1. DeFi(去中心化金融) Solidity 的最大应用场景之一。 项目功能示例合约逻辑Uniswap去中心化交易所(AMM)流动性池、定价算法、swap函数Aave /…...
mybatis--多对一处理/一对多处理
多对一处理(association) 多个学生对一个老师 对于学生这边,关联:多个学生,关联一个老师[多对一] 对于老师而言,集合,一个老师有多个学生【一对多】 SQL: 测试环境搭建 1.导入依…...
中兴B860AV3.2-U-晶晨S905L3B芯片-安卓9.0-2+8G-线刷固件包
中兴B860AV3.1-U/B860AV3.2-U--晶晨S905L3B芯片-安卓9.0-28G-线刷固件包 线刷方法:(新手参考借鉴一下) 1、准备好一根双公头USB线刷刷机线,长度30-50CM长度最佳,同时准备一台电脑; 2、电脑上安…...
资源分配不均,如何优化
优化资源分配需要关注资源需求评估精准性、资源调度合理性、实时监控与反馈机制、沟通协调的高效性以及持续改进的管理理念。其中,资源需求评估精准性最为关键。精准的资源需求评估意味着对项目各阶段所需资源的准确把控,这能有效防止资源过剩或短缺现象…...
Kimi-VL 解读:高效 MoE 视觉语言模型VLM,兼顾长上下文与高分辨率
写在前面:一起读多模态大模型Kimi-VL Moonshot AI 推出了 Kimi-VL,一个高效的、开源的、基于混合专家(MoE)架构的视觉语言模型。Kimi-VL 旨在解决上述痛点,它具备以下几个核心特点: 高效 MoE 架构:语言解码器采用 MoE 架构,在保持强大能力的同时,显著降低了推理时的激…...
2024团体程序设计天梯赛L3-1 夺宝大赛
L3-037 夺宝大赛 分数 30 作者 陈越 单位 浙江大学 夺宝大赛的地图是一个由 nm 个方格子组成的长方形,主办方在地图上标明了所有障碍、以及大本营宝藏的位置。参赛的队伍一开始被随机投放在地图的各个方格里,同时开始向大本营进发。所有参赛队从一个方格…...
SpringBoot DevTools:开发工具与热部署机制
文章目录 引言一、Spring Boot DevTools概述二、自动重启机制2.1 工作原理2.2 自定义重启触发器 三、LiveReload支持3.1 浏览器自动刷新3.2 与前端框架集成 四、属性默认值调整4.1 缓存配置4.2 日志配置 五、远程开发支持5.1 配置远程应用5.2 使用远程客户端 总结 引言 在Java…...
PyCharm 开发工具 修改字体大小及使用滚轮没有反应
PyCharm 开发工具 修改字体大小及使用滚轮没有反应 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是Python基础语法。前后每一小节的内容是有学习/理解关联性,希望对您有用~ PyCharm 开发工具 修改字体大小及…...
小刚说C语言刷题——每日一题东方博宜1000熟悉OJ环境
1.题目描述 2.参考代码(C语言版) #include <stdio.h> int main(void) { //定义两个整型变量num1和num2 int num1,num2; int sum;//定义两个数的和sum //下面语句表示输入两个数字 scanf("%d%d",&num1,&num2); sumnum1num…...
Ubuntu安装Docker容器,通过Tomcat部署项目
温馨提示:本教程不是最完美的,只能说是填鸭式教育,仅仅让你快速部署Docker的tomcat项目。 *******命令行需要一行一行操作哟!!!******* 一、检查Ubuntu本地的Tomcat能发正常打开项目 1.1 检查本地tomcat是…...
ubuntu22.04安装zabbix7.0
一、安装repository wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0ubuntu24.04_all.deb dpkg -i zabbix-release_latest_7.0ubuntu24.04_all.deb apt update二、安装Zabbix server,Web前端,ag…...
AIGC工具平台-建筑平面图3D渲染
本模块是一款智能化的建筑设计辅助工具,可将任意房屋平面设计图快速转换为高品质3D渲染效果图,让建筑设计更加直观、高效。用户无需复杂的3D建模操作,仅需上传房屋平面图,系统即可一键生成符合实际尺度的3D渲染效果,精…...
OpenGL学习笔记(立方体贴图、高级数据、高级GLSL)
目录 立方体贴图天空盒环境映射斯涅尔定律(Snells Law)菲涅尔效应(Fresnel Effect)动态环境贴图 高级数据分批顶点属性复制缓冲 高级GLSL顶点着色器变量片段着色器变量接口块Uniform缓冲对象Uniform块布局使用Uniform缓冲测试 Git…...
嵌入式进阶:如何选择合适的开发平台?
随着现代工业、物联网以及人工智能技术的迅速发展,嵌入式系统已经由简单的控制器向复杂的高性能系统迈进。从传统家电到智能机器人、从自动驾驶汽车到工业自动化,每一项应用都对嵌入式系统的响应速度、运行稳定性和能耗管理提出了更高要求。在这种背景下…...
CVPR‘25 SOTA——GoalFlow论文精读
1)第一遍___粗读 Q: 这篇论文试图解决什么问题? A: 这篇论文提出了一个名为 GoalFlow 的端到端自动驾驶方法,旨在解决自动驾驶场景中高质量多模态轨迹生成的问题。具体而言,它试图解决以下问题: 轨迹选择的复杂性&am…...
vue3 onMounted 使用方法和注意事项
基础用法 / 语法糖写法 <script> import { onMounted } from vue;// 选项式 API 写法 export default {setup() {onMounted(() > {console.log(组件已挂载);});} } </script><script setup> onMounted(() > {console.log(组件已挂载); }); </scrip…...
【ubuntu】linux开机自启动
目录 开机自启动: /etc/rc.loacl system V 使用/etc/rc*.d/系统运行优先级 遇到的问题: 1. Linux 系统启动阶段概述 方法1:/etc/rc5.d/ 脚本延时日志 方法二:使用 udev 规则来触发脚本执行 开机自启动: /etc/…...
OpenCV day2
Matplotlib相关知识 Matplotlib相关操作: import numpy as np from matplotlib import pyplot as pltx np.linspace(0, 2 * np.pi, 100) y1 np.sin(x) y2 np.cos(x)# 使用红色虚线,圆点标记,线宽1.5,标记大小为6绘制sin plt.p…...
OpenCV 图形API(31)图像滤波-----3x3 腐蚀操作函数erode3x3()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 使用3x3矩形结构元素腐蚀图像。 该函数通过使用中心作为锚点的3x3矩形结构元素来腐蚀源图像。腐蚀操作可以应用多次(迭代࿰…...
机器学习概述自用笔记(李宏毅)
机器学习概述 机器学习即找一个复杂的人类写不出来的函数,把输入(向量,矩阵,序列)转换为输出。 regression:输出是一个数值(预测PM2.5的数值) classification:选择设置…...