1.测试过程之需求分析和测试计划
测试基础
流程
1.分析测试需求
2.编写测试计划
3.设计与编写测试用例
4.执行测试
5.评估与总结
测试目标
根据测试阶段不同可分为四个主要目标:预防错误(早期)、发现错误(开发阶段)、建立信心(验收阶段)、提供信息(运维阶段)
1.早期测试
- 实施时机:从需求分析阶段开始同步跟进,贯穿设计、编程全过程
- 测试形式:
- 静态测试:不执行程序的测试方式,包括文档审查(需求/设计文档)和代码走查
- 检查要点:错别字、逻辑错误、需求偏差(多/少/错误理解)
- 核心价值:预防错误发生,避免错误"兑现"(如需求误解导致后续开发偏差)
- 典型案例:检查需求文档是否准确反映用户真实意图,算法设计是否符合业务逻辑
2.组件测试和单元测试
- 测试对象:模块化开发的独立组件(如程序中的a/b/c/d模块)
- 必要性:
- 隔离缺陷定位:避免多模块集成后难以追溯问题根源
- 责任明确:类似四人合作项目出问题时需要明确责任方
- 执行主体:通常由开发人员或懂开发的测试人员实施
- 测试重点:验证单个组件功能实现的正确性
3.集成测试
- 测试策略:逐步组合已通过单元测试的模块(如a+b模块组合,c+d模块组合)
- 技术需求:需要既懂开发又懂测试的复合型人才
- 与单元测试区别:
- 关注模块间接口和交互
- 需要实际执行程序代码
- 典型问题:模块间数据传递错误、接口协议不匹配
4.系统测试
- 测试范围:完整集成的软件系统
- 角色分工:以专业测试人员为主导,开发人员参与度降低
- 核心目标:大规模发现缺陷(追求缺陷发现数量最大化)
- 阶段特征:仍处于可修正缺陷的开发阶段(区别于验收后的维护阶段)
5.验收测试
- 执行主体:最终用户或客户代表
- 目标转变:从"发现缺陷"转为"建立使用信心"
- 通过标准:基本功能满足需求,非关键缺陷不影响主要使用
- 商业价值:决定软件能否正式交付的重要环节
6.运行或维护阶段
- 测试类型:
- 非功能测试:性能、资源占用、兼容性等实际运行指标
- 维护测试:漏洞修复、版本升级、灾难恢复等场景测试
- 数据反馈:收集真实使用环境下的质量信息(性能基线、用户行为数据)
- 持续改进:为后续版本迭代提供优化依据
区分概念
1.测试&调试
- 人员:
- 测试:测试人员、开发人员和用户都会参与缺陷发现过程
- 调试:仅由开发人员负责缺陷修复
2.软件质量保证&软件测试
- 测试三要素:
- 发现:通过专业方法识别软件中的缺陷
- 报告:使用缺陷管理系统规范提交问题
- 跟踪:持续验证缺陷修复状态直至关闭
- 调试三步骤:
- 定位:精确找到缺陷出现的代码位置
- 分析:诊断缺陷产生的根本原因
- 修改:编写正确的代码解决方案
软件测试定义: 软件测试不仅是对程序的测试,而是对软件所有部分(包括程序、数据和文档)的测试。
测试的过程
- 测试过程: 测试过程包括需求分析、计划制定、用例编写、执行测试、评估与总结。其中,执行测试只占整个测试过程的一小部分时间,需求和用例设计占据大部分时间(各约30%-40%)。
开始测试工作的任务
- 开始测试的首要任务: 测试需求分析。
测试早做和测试晚做的考虑
测试早做的优势: 测试早做比较好,最好在开发需求分析阶段就同步介入。
5. 测试需要谋划或规划
测试规划: 在测试之前需要制定测试计划,明确测试内容、范围、人员、时间以及可能遇到的问题和解决方案。
软件测试的原则
规格说明书(需求定义)占54%
设计阶段占25%
代码实现占15%
其他原因占6%
- 主要责任方:缺陷主要来源于需求相关方(用户、需求分析师等),而非程序员
- 深层原因:包括需求表述不清、理解偏差、沟通不畅等非技术因素
- 软件缺陷构成分析 * 数据解读:基于对100个典型缺陷的溯源研究* 重要性排序:需求问题 > 设计问题 > 编码问题 > 其他问题* 柱状图展示:以可视化形式再次验证饼图结论,需求文档缺陷占比最高
- 测试第一个任务是需求分析 * 工作流程:测试工作必须从需求分析开始,贯穿整个测试周期* 持续关注:即使在后续测试阶段也要不断回顾需求文档* 需求理解:需要确保测试团队与开发团队对需求的理解完全一致
- 制造缺陷的罪魁祸首不是程序员* 认知误区破除:发现缺陷时不应首先归咎于开发人员* 全面分析:需要考察缺陷是否源于需求定义不明确或不完整* 团队协作:测试人员应与需求分析人员保持密切沟通
- 做好需求评审 * 评审机制:组织开发、测试、用户三方共同参与需求评审* 一致性检查:确保测试需求与开发需求、用户需求三者一致* 文档验证:通过正式会议确认需求文档的准确性和完整性
完全测试不可能
- 并行性:测试应与软件开发或维护工作并行进行,持续开展测试活动
- 前置规划:在测试工作正式开始前较长时间就需制定测试计划,包括需求分析、环境搭建、缺陷处理、评估总结等全流程规划
- 计划价值:测试计划越详尽,测试过程越能避免走弯路,计划需覆盖整个测试生命周期
测试阶段
单元测试->集成测试->系统测试->验收测试
- 并行性:测试应与软件开发或维护工作并行进行,持续开展测试活动
- 前置规划:在测试工作正式开始前较长时间就需制定测试计划,包括需求分析、环境搭建、缺陷处理、评估总结等全流程规划
- 计划价值:测试计划越详尽,测试过程越能避免走弯路,计划需覆盖整个测试生命周期
- 单元测试特点:针对每个独立小程序进行测试,代码规模最小,由开发人员主导
- 集成测试特点:将相互调用的程序模块组合测试,代码规模中等,开发人员参与
- 系统测试特点:所有程序整体测试,代码规模最大,由专业测试人员执行
- 验收测试特点:用户主导的最终验证测试,不涉及代码层面
- 分阶段优势:能准确定位问题来源(如单元测试可隔离错误),符合"尽早测试"原则
- 实施条件:公司自有项目容易实现,外包项目可能难以严格分阶段
软件测试是一个迭代的过程
- 核心特征:测试活动是持续循环进行的,不是一次性完成的,每个版本都需要重复测试流程
- 典型流程:测试版本1→提交缺陷→修复缺陷→测试版本2→提交新缺陷→修复新缺陷→测试版本3→⋯测试版本1 ->提交缺陷 修复缺陷 ->测试版本2 -> 提交新缺陷 -> 修复新缺陷 -> 测试版本3 ->cdots测试版本1→提交缺陷→修复缺陷→测试版本2→提交新缺陷→修复新缺陷→测试版本3→⋯
处理小组关系
- 共同目标导向: 时刻提醒团队成员(包括自己)最终目标是追求高质量产品,而非追究缺陷责任人。应以合作而非争斗的态度处理问题。
- 中性沟通技巧:
- 缺陷报告应采用中性、事实性陈述,避免使用"你/我/他"等人称代词
- 禁用问号、叹号等带有情绪色彩的标点符号
- 示例:用"登录按钮点击无响应"替代"你的登录功能有问题!"
- 换位思考原则:
- 理解他人反应背后的原因
- 反思自身沟通方式是否恰当
- 考虑对方专业背景导致的认知差异
- 有效沟通保障:
- 确认双方理解一致(开发理解缺陷描述,测试理解开发思路)
- 清晰说明缺陷危害性和严重程度
- 建立"发现-修复缺陷"的共同目标认知
- 技能互补优势:
- 测试人员掌握基础开发知识可减少误报
- 开发背景有助于理解系统实现原理
- 技术共识能提升缺陷报告的专业可信度
软件开发模型
- 软件产品从最初构思到最终退役的全过程
- 包含从创意产生到停止使用的完整时间线
1.什么是软件开发模型
软件产品从最初构思到最终退役的全过程
大爆炸模型
边写边改模型
瀑布模型
制定周密计划的开发模型,强调分阶段严格审查和完整文档记录,步骤不可颠倒(计划→需求分析→设计→编码→测试→运行→评价→维护循环)
螺旋模型
敏捷模型
软件测试模型
V模型
* 左端为开发阶段:用户需求→需求分析→概要设计→详细设计→编码* 右端为测试阶段:单元测试→集成测试→系统测试→验收测试
- 对应关系:* 单元测试↔详细设计* 集成测试↔概要设计* 系统测试↔需求分析* 验收测试↔用户需求
- 分层策略:* 底层测试: 单元测试和集成测试,验证源代码正确性* 高层测试: 系统测试和验收测试,验证需求符合性
W模型
双V结构: 由两个V字型构成,左边V代表开发过程(需求分析→概要设计→详细设计→编码实现→模块集成→系统构建→系统安装),右边V代表测试过程(需求测试→概要设计测试→详细设计测试→单元测试→集成测试→系统测试→验收测试)
- 需求测试: 验证需求说明书是否准确反映用户真实需求,检查有无遗漏、错误或多余需求
- 设计测试:
- 概要设计测试:验证系统架构和算法是否正确
- 详细设计测试:检查具体实现细节是否合理
- 文档测试本质: 不是简单检查文档错别字或病句,而是通过文档验证开发人员对需求和设计的理解是否正确
H模型
- 核心结构:
- 上方为测试流程:包含"准备测试→就绪点→测试执行"三个阶段
- 下方为其他流程:可以是开发、设计、编码等任意流程
- 中间通过"就绪点"连接两个流程
特点:
- 独立性:
- 测试活动完全独立于开发流程
- 不再被开发阶段所牵制(不同于V模型和W模型)
- 测试团队可自主安排测试活动
- 并发性:
- 测试贯穿整个产品生命周期
- 可与任何开发活动并行进行
- 示例:需求分析阶段可同步开展需求文档测试
- 完整性:
- 不仅包含测试执行,还包括:
- 测试计划制定
- 需求分析验证
- 测试用例设计
- 测试环境搭建
- 缺陷提交与跟踪
- 测试评估总结
- 不仅包含测试执行,还包括:
- 灵活性:
- 测试层次可打乱传统次序
- 支持不同测试活动并行开展(如单元测试与集成测试可同时进行)
- 示例:外包团队可分别负责不同层次的测试
- 就绪机制:
- 当测试准备工作完成时到达"就绪点"
- 就绪后立即转入测试执行阶段
- 强调"尽早准备,尽早执行"原则
X模型
前置模型
敏捷测试模型
- 核心特点:
- 新型软件开发方法,强调客户持续参与
- 测试活动贯穿整个开发过程,与传统开发模式有显著区别
- 采用结对编程方式,两名开发人员共用一台计算机协同工作
测试模型的使用
V模型
对应开发模型: 与瀑布模型配套使用,左边V表示开发流程,右边V表示测试流程
测试特点: 在瀑布模型每个开发环节完成后进行对应测试,属于后置测试模式
优化意义: 对传统瀑布模型的测试环节进行了系统化优化,形成完整测试体系
适用场景: 适合需求明确、变更少的项目,测试阶段划分清晰
W模型
模型特征: 双V结构形成W形状,开发与测试同步进行
对应开发模型: 主要配套螺旋模型使用,测试早期介入项目
产生背景: 伴随公司内部测试团队的工作模式而诞生
优势: 开发过程中测试团队可同步跟进,实现并行工作
H模型
核心特点: 测试完全独立于开发流程,可随时启动
触发机制: 当测试准备工作完成到达"就绪点"时即可执行测试
产生背景: 为适应第三方测试需求而发展出的模型
灵活性: 支持多团队并行测试不同模块,文档也可单独测试
应用场景: 特别适合外包项目或需要多团队协作的大型项目
敏捷测试模型
配套开发模型: 专为敏捷开发设计,强调客户持续参与
工作流程:
先编写测试用例
结对编程时同步测试
单元测试通过后集成代码
最终由客户进行验收测试
核心理念: 通过频繁交付和客户反馈实现快速迭代
测试阶段
单元测试
前置条件
功能性验证: 确保单元能正确实现设计功能,如编写求和方法时,需验证能否正确计算两数之和。
健壮性测试: 通过逆向测试验证单元对无效输入的容错能力,包括测试字母、汉字、标点符号等非法输入时的报错处理。
性能优化: 关注代码执行效率,比较不同实现方式的性能差异。例如:比效率更高,因为计算机需将乘法转换为加法运算;排序算法中不同方法的时间消耗差异(冒泡排序vs二分法排序)。
测试局限性: 单元测试阶段无法测试界面、兼容性和易用性等特性,因代码尚未形成完整运行环境。
测试所用技术
白盒测试技术
- 核心概念:将程序视为透明盒子,关注内部处理流程和程序结构
- 测试对象:包括顺序语句、if语句、if-else、switch-case、while/for循环等程序结构,以及>>>,<<<,andandand,ororor等逻辑运算符
- 典型方法:通过覆盖率指标(语句覆盖、分支覆盖等)来验证程序内部逻辑
- 测试特点:需要观察程序执行的每个细节过程,就像观察透明机器中鸡被拔毛时的反应(痛苦程度、是否挣扎等)
黑盒测试技术
- 核心概念:将程序视为黑色盒子,只关注输入输出是否符合预期
- 测试对象:程序整体功能,不关心内部实现细节
- 典型方法:等价类划分、边界值分析、场景法、决策表、错误猜测等
- 测试特点:如同给机器蒙上黑布,只关心投入公鸡后是否光着出来(功能结果),不关心内部处理过程
- 应用顺序:通常先进行黑盒测试验证基本功能,再进行白盒测试(先确认程序能完成基本功能再检查内部结构)
灰盒测试
- 混合特性:结合白盒和黑盒测试的特点
- 典型应用:网页测试中,既检查前台输入输出(黑盒),又检查部分代码(白盒)
- 优势:能兼顾功能验证和部分内部逻辑检查
组件测试能够发现的缺陷
- 功能性缺陷:组件内部功能实现错误
- 运行时缺陷:仅在实际运行时会暴露的问题(如死循环)
- 本机性能问题:代码层面的性能瓶颈
- 健壮性问题:异常处理能力不足等鲁棒性问题
- 测试局限:只能发现组件单独运行时的缺陷,无法发现与其他组件的交互问题
组件测试可能遗留的缺陷
- 接口问题:组件间参数传递和返回值问题
- 大环境问题:多组件协同工作时的兼容性问题
- 非功能性缺陷:界面美观性、易用性、整体系统性能等
- 遗留原因:单元测试环境与真实运行环境存在差异,无法完全模拟实际使用场景
集成测试
- 测试重点:
- 接口测试: 组件连接时的静态参数传递机制
- 交互测试: 系统各部分协同工作的动态行为
- 必备知识:
- 开发技能(需编写测试驱动器和桩模块)
- 测试技术专业知识
- 组件间交互的详细知识(参数传递规则、数据处理逻辑)
- 前提条件:
- 已完成集成的被测系统
- 测试台(test bed)的建立(包含可复用的测试工具和环境)
- 完整的组件交互文档
- 关键区别:
- 单元测试: 验证独立模块功能,侧重内部逻辑
- 集成测试: 验证模块组合功能,侧重接口和交互
系统测试
定义:测试集成系统以验证它是否满足指定需求的过程,是基于风险的测试,确认系统满足特定的功能性和非功能性需求。
- 测试对象:整个集成后的系统,如同拼图中所有单元模块组合完成的整体。
- 环境要求:测试环境应尽可能与目标环境保持一致,不再是开发环境,而是接近用户实际使用环境。
- 测试范围:包含之前单元测试和集成测试未覆盖的全部功能性和非功能性需求(如性能、易用性、兼容性、界面、安全性、可维护性、可移植性等)。
验收测试
- 执行主体: 由客户方的商业用户/普通使用者执行
- 测试重点:
- 验证系统可用性
- 检查是否满足基本业务需求
- 确认无严重影响使用的缺陷
- 典型场景: 如普通员工测试新采购的办公系统是否能完成日常业务流程
- Alpha测试:
- 在开发场地由潜在用户执行(如游戏公司邀请玩家到公司内部测试)
- 又称"内测",测试环境受控
- 目的:发现开发环境下的系统问题
- Beta测试:
- 在用户实际环境执行(如软件公测版发布)
- 又称"公测"或"外测",测试环境多样
- 特点:自动收集使用数据(用户可能不知情)
- 目的:识别未知环境下的系统影响
- 关键区别:
- 测试场地不同(开发场地 vs 用户环境)
- 测试规模不同(小范围 vs 大规模)
- 游戏行业典型应用:内部封测→公开测试→正式发行
项目功能拆分与测试点
- 评审方式:分为小评审(小组内部讨论功能拆分、需求整理和测试点)和大评审(集体评审)
- 功能表示方法:习惯用按钮名称表示功能(如"确定"代表连接数据库),但表示方式不固定
相关文章:

1.测试过程之需求分析和测试计划
测试基础 流程 1.分析测试需求 2.编写测试计划 3.设计与编写测试用例 4.执行测试 5.评估与总结 测试目标 根据测试阶段不同可分为四个主要目标:预防错误(早期)、发现错误(开发阶段)、建立信心(验收阶段&a…...
第三十七天打卡
过拟合的判断:测试集和训练集同步打印指标模型的保存和加载 仅保存权重保存权重和模型保存全部信息checkpoint,还包含训练状态 早停策略 过拟合判断 import torch import torch.nn as nn import torch.optim as optim from sklearn.datasets import load…...
Qt 窗口标志(Window Flags)详解:控制窗口样式与行为
在 Qt 中,windowFlags 用于控制窗口的样式和行为,包括标题栏、边框、最大化/最小化按钮等。合理设置 windowFlags 可以自定义窗口的外观和交互方式。本文将详细介绍常用的窗口标志及其组合效果。 1. 基本概念 windowFlags 是一个 Qt::WindowFlags 类型的…...
ABP VNext + CRDT 打造实时协同编辑
🛠️ ABP VNext CRDT 打造实时协同编辑器 🎉 📚 目录 🛠️ ABP VNext CRDT 打造实时协同编辑器 🎉🧠 背景与挑战🔹 系统架构🛣️ 端到端流程 🚦🔒 安全与鉴…...
微信小程序真机调试时如何实现与本地开发环境服务器交互
最近在开发微信小程序项目,真机调试时需要在手机上运行小程序,为了实现本地开发服务器与手机小程序的交互,需要以下步骤 1.将手机连到和本地一样的局域网 2.Visual Studio中将IIS Express服务器的localhost端口地址修改为本机的IP自定义的端口: 1)找到web api项目…...
Linux: network: dpdk, VF, ip link set down 对VF不生效
文章目录 问题另一个测试的结果是从dpdk的文档看怎么设置VF给VM内核的调用需要使用的命令问题 最近遇到一个问题,也可以说是一种常识,至少是之前不知道的常识:如果一个VF分配给了VM用作dpdk的输入。在host做ip link set down 这个PF的接口,对这个VM里的VF的功能没有任何影…...

[春秋云镜] CVE-2023-23752 writeup
首先奉上大佬的wp表示尊敬:(很详细)[ 漏洞复现篇 ] Joomla未授权访问Rest API漏洞(CVE-2023-23752)_joomla未授权访问漏洞(cve-2023-23752)-CSDN博客 知识点 Joomla版本为4.0.0 到 4.2.7 存在未授权访问漏洞 Joomla是一套全球知名的内容管理…...
Java集合操作常见错误与最佳实践
错误69:搜索无关类型的对象 泛型方法的类型安全漏洞 在Java引入参数化类型前,集合元素只能声明为Object类型,导致可以随意将字符串添加到数值列表中。虽然泛型机制对添加元素的方法进行了类型约束,但搜索和删除相关方法仍保留了Object类型的参数设计。这包括以下关键方法…...

CSS专题之水平垂直居中
前言 石匠敲击石头的第 16 次 在日常开发中,经常会遇到水平垂直居中的布局,虽然现在基本上都用 Flex 可以轻松实现,但是在某些无法使用 Flex 的情况下,又应该如何让元素水平垂直居中呢?这也是一道面试的必考题…...
python打卡day41@浙大疏锦行
知识回顾 1. 数据增强 2. 卷积神经网络定义的写法 3. batch归一化:调整一个批次的分布,常用与图像数据 4. 特征图:只有卷积操作输出的才叫特征图 5. 调度器:直接修改基础学习率 卷积操作常见流程如下: 1. …...
vue3 基本语法 父子关系
在Vue 3中,父子组件的关系是通过组件的嵌套实现的。父组件可以传递数据(props)给子组件,同时子组件可以通过事件(emits)与父组件通信。下面是如何在Vue 3中建立和使用父子组件的基本语法: 1. 创…...
算法-js-子集
题:给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 方法一:迭代法 核心逻辑:动态扩展子集, 小规…...

(新)MQ高级-MQ的可靠性
消息到达MQ以后,如果MQ不能及时保存,也会导致消息丢失,所以MQ的可靠性也非常重要。 一、数据持久化 为了提升性能,默认情况下MQ的数据都是在内存存储的临时数据,重启后就会消失。为了保证数据的可靠性,必须…...
Android设置界面层级为最上层实现
Android设置界面层级为最上层实现 文章目录 Android设置界面层级为最上层实现一、前言二、Android设置界面层级为最上层实现1、主要代码2、后遗症 三、其他1、Android设置界面层级为最上层小结2、悬浮框的主要代码悬浮框 注意事项(1)权限限制(…...
云原生微服务架构演进之路:理念、挑战与实践
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:架构的演进是业务进化的技术反射 在软件行业的发展过程中,架构变迁总是伴随着技术浪潮与业务复杂度的升…...
Go语言使用阿里云模版短信服务
在当今的互联网项目中,短信验证码、通知等功能已成为标配。本文将详细介绍如何使用Go语言集成阿里云短信服务(DYSMSAPI)实现短信发送功能。 一、准备工作 在开始之前,您需要完成以下准备工作: 注册阿里云账号并实名认证开通短信服务(SMS)申…...

Leetcode 3231. 要删除的递增子序列的最小数量
1.题目基本信息 1.1.题目描述 给定一个整数数组 nums,你可以执行任意次下面的操作: 从数组删除一个 严格递增 的 子序列。 您的任务是找到使数组为 空 所需的 最小 操作数。 1.2.题目地址 https://leetcode.cn/problems/minimum-number-of-increas…...

4.2.5 Spark SQL 分区自动推断
在本节实战中,我们学习了Spark SQL的分区自动推断功能,这是一种提升查询性能的有效手段。通过创建具有不同分区的目录结构,并在这些目录中放置JSON文件,我们模拟了一个分区表的环境。使用Spark SQL读取这些数据时,Spar…...
基于昇腾MindSpeed训练加速库玩转智谱GLM-4-0414模型
智谱GLM-4-0414模型提供32B和9B两种参数规模,涵盖基础、推理和沉思等多种模型类型,均基于 MIT 许可协议开放。其中,推理模型 GLM-Z1-32B-0414 性能卓越,与 DeepSeek-R1 等领先模型相当,实测推理速度达每秒200个Tokens。…...

【图像处理入门】2. Python中OpenCV与Matplotlib的图像操作指南
一、环境准备 import cv2 import numpy as np import matplotlib.pyplot as plt# 配置中文字体显示(可选) plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False二、图像的基本操作 1. 图像读取、显示与保存 使用OpenCV…...

Spring Boot微服务架构(九):设计哲学是什么?
一、Spring Boot设计哲学是什么? Spring Boot 的设计哲学可以概括为 “约定优于配置” 和 “开箱即用”,其核心目标是极大地简化基于 Spring 框架的生产级应用的初始搭建和开发过程,让开发者能够快速启动并运行项目…...
GRCh38版本染色体位置转换GRCh37(hg19)
目录 方法 1:使用 Ensembl REST API(推荐,适用于少量位点查询)方法 2:使用 UCSC API方法 3:使用 NCBI API 并转换坐标(需要额外步骤)方法 4:使用本地数据库(最…...

TC/BC/OC P2P/E2E有啥区别?-PTP协议基础概念介绍
前言 时间同步网络中的每个节点,都被称为时钟,PTP协议定义了三种基本时钟节点。本文将介绍这三种类型的时钟,以及gPTP在同步机制上与其他机制的区别 本系列文章将由浅入深的带你了解gPTP,欢迎关注 时钟类型 在PTP中我们将各节…...
解决微信小程序中 Flex 布局下 margin-right 不生效的问题
解决微信小程序中 Flex 布局下 margin-right 不生效的问题 在做微信小程序开发时,遇到了一个棘手的布局问题:在 flex 布局下,给元素设置的 margin-right 不生效,被“吞噬”了。这个问题导致了横向滚动列表的右边距失效࿰…...

Kafka数据怎么保障不丢失
在分布式消息系统中,数据不丢失是核心可靠性需求之一。Apache Kafka 通过生产者配置、副本机制、持久化策略、消费者偏移量管理等多层机制保障数据可靠性。以下从不同维度解析 Kafka 数据不丢失的核心策略,并附示意图辅助理解。 一、生产者端:…...
使用HTTPS进行传输加密
说明 日期:2025年5月30日 与以纯文本形式发送和接收消息的标准 HTTP 不同,HTTPS 使用SSL/TLS等协议对服务器进行身份验证、加密通信内容和检测篡改。 这样可以防止欺骗、中间人攻击和窃听等攻击。 证书很重要,如果用户主动信任了伪造证书&…...

AI书签管理工具开发全记录(八):Ai创建书签功能实现
文章目录 AI书签管理工具开发全记录(八):AI智能创建书签功能深度解析前言 📝1. AI功能设计思路 🧠1.1 传统书签创建的痛点1.2 AI解决方案设计 2. 后端API实现 ⚙️2.1 新增url相关工具方法2.1 创建后端api2.2 创建crea…...

X-plore v4.43.05 强大的安卓文件管理器-MOD解锁高级版 手机平板/电视TV通用
X-plore v4.43.05 强大的安卓文件管理器-MOD解锁高级版 手机平板/电视TV通用 应用简介: X-plore 是一款强大的安卓端文件管理器,它可以在电视或者手机上管理大量媒体文件、应用程序。…...

使用多Agent进行海报生成的技术方案及评估套件-P2P、paper2poster
最近字节、滑铁卢大学相关团队同时放出了他们使用Agent进行海报生成的技术方案,P2P和Paper2Poster,传统方案如类似ppt生成等思路,基本上采用固定的模版,提取相关的关键元素进行模版填充,因此,海报生成的质量…...

Redis--缓存工具封装
经过前面的学习,发现缓存中的问题,无论是缓存穿透,缓存雪崩,还是缓存击穿,这些问题的解决方案业务代码逻辑都很复杂,我们也不应该每次都来重写这些逻辑,我们可以将其封装成工具。而在封装的时候…...