当前位置: 首页 > news >正文

软件测试概念

这里写目录标题

  • 需求
  • 开发模型
    • 软件生命周期
    • 瀑布模型
    • 螺旋模型
    • 增量模型、迭代模型
    • 敏捷模型
      • Scrum
  • 测试模型
    • V模型
    • W模型(双V模型)

需求

  • 用户需求:没有经过合理的评估,通常就是一句话

  • 软件需求:是开发人员和测试人员执行工作的依据

用户的需求不能直接作为开发和测试的依据。针对用户的需求,产品经理需要进行需求分析(技术可行性、市场可行性、成本投入和收益占比等)后才可转变为软件需求。

开发模型

规范的流程是在时代的演变下逐渐成型,并不是一开始就是规范的流程

软件生命周期

  • 软件生命周期实际就是软件的开发模型(认识具体的开发模型之前先了解软件的生命周期)

需求的开始是软件生命的起点,中间会经历需求的计划、设计程序开发,程序测试等阶段,直至软件不再进行维护便到了生命的重点

  • 软件流程:需求分析、计划、设计、编码、测试、运行维护
  • 开发:设计开发文档(用什么技术、用什么框架等等)
  • 测试:明确需求,设计测试用例、测试计划(明确本次测试设计到的工具、设计到的测试类型…)
  • 运行维护:软件上线之后,在线上环境使用下可能会出现一些意向不到的情况

修复性维护:对项目中未发现的问题进行修复。
完善性维护:对功能进行完善。
预防性维护:居安思危,为了避免产品在线上出现一些其他不可预料的问题,进行一些防护的手段。
正常使用没有问题,但是在极端的情况下会出现问题(性能问题)

软件的通用流程

阶段具体内容产出
需求分析分析用户需求是否合理,分别从市场需求、技术等方面进行分析。该阶段会输出需求等文档。
计划对成立的需求执行需求执行计划,多长时间内完成该需求,每段时间具体完成哪些功能。该阶段会输出计划等文档。
设计将需求细化成一个个任务,团队成员各司其职领取任务并进行技术设计(如何进行架构设计,设计哪些接口、采用什么技术)该阶段会输出技术等文档。
编码开发人员参考需求文档、设计文档、交互图等等文件进行代码的编写。代码文件等文档。
测试测试人员需要介入到软件的测试中来,参考测试用例对软件进行测试测试用例、测试设计与计
运行维护项目测试结束之后,项目需要进行上线,并对产品进行线上的维护。线上的维护主要分为三个方面。分别为修复性维护、完善性维护和预防性维护。

瀑布模型

在这里插入图片描述瀑布模型在软件工程中占有重要地位,是所有其他模型的基础框架。瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模式

优点/特点

  1. 强调开发的阶段性
  2. 线性结构,每个阶段只执行一次
  3. 是其他模型的基础框架

缺点

  1. 测试后置
  • 前面各阶段遗留的风险推迟到测试阶段才被发现,导致项目大面积。返工,失去了及早修复的机会
  • 必须留有足够的时间给测试活动,否则导致测试不充分,将缺陷直接暴露给用户(产品质量差)
  1. 周期太长,产品很迟才能被看到和使用,可能会导致需求/功能过时

瀑布模型的适用场景:需求固定的小项目

螺旋模型

在这里插入图片描述

螺旋模型中各个阶段都引入的风险分析+原型
引入的目的是减少各阶段遗留的风险问题,避免把问题留到后面的阶段
在这里插入图片描述优点

  1. 强调严格的全过程风险管理
  2. 强调各开发阶段的质量
  3. 增加风险分析和原型

缺点

  1. 项目中可能存在的风险性与风险管理人员的技能水平有直接关系
  2. 需求人员、资金、时间的增加和投入,可能会导致项目的成本太高

适用场景:规模庞大、复杂度高、风险大的项目。

增量模型、迭代模型

  • 增量模型:将大需求拆分成小需求,每个小需求独立开发上线
    在这里插入图片描述
  • 迭代模型:基础板本->优化版本1->优化版本2->……
  • 增量模型将一个大的需求修改成多个小功能,每个功能独立开发上线
  • 迭代模型会上线一个基础版本,但是基础版本所有的功能都有只不过功能比较简陋,后期再继续迭代优化上线

增量是逐块建造的概念,迭代是反复求精的概念。

迭代模型和增量模型在现在已经不会单独去使用,而是配合着去使用

适用场景:大型项目,需求不明确

敏捷模型

克服在项目开发期间处理来自客户的变更请求以及合并这些变更所需的高成本和时间。

  • 敏捷模型主要旨在帮助项目快速适应变更请求。因此,敏捷模型的主要目的是促进项目的快速完成。
  • 敏捷性是通过使过程适应项目,删除对特定项目可能不是必需的活动来实现的。此外,避免任何浪费时间和精力的事情。
  • 在敏捷模型中,需求被分解成许多可以增量开发的小部分。
  • 敏捷模型采用迭代开发。每个增量部分都是在迭代中开发的。每次迭代都旨在小而易于管理,并且只能在几周内完成。
  • 一次为客户计划、开发和部署一个迭代。没有制定长期计划。

《敏捷宣言》

  1. 个体与交互重于过程和工具

强调高效的沟通

  1. 可用的软件重于完备的文档

强调轻文档,文档不应该作为工作验收的标准

  1. 客户协作重于合同谈判

主动及时了解当下的需求

  1. 响应变化重于遵循计划

能够主动迎接变化

敏捷模型的四个特点:轻文档,轻流程,重自标,重产出

Scrum

  • Scrum是敏捷模型中的一种,又称为迭代式增量软件开发模型。
  • 在scrum模型中,主要有三个角色和五个重要会议。
  • 三个角色不是指三个人,而是三类角色

三个角色:scrum由product owner(产品经理)、scrum master(项目经理)和team(研发团队)组成。

  1. product owner负责整理userstory(用户故事),定义其商业价值,对其进行排序,制定发布计划,对产品负责。

产品经理收集需求,产出软件需求文档

  1. scrum master负责召开各种会议,协调项目为研发团队服务。
  2. 研发团队则由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品。

由很多角色组成:开发人员(前端、后端)、测试、交互、设计……

迭代开发:scrum将产品的开发分解为若干个小sprint(迭代),其周期从1周到4周不等,但不会超过4周。参与的团队成员一般是5到9人。每期迭代要完成的userstorv是固定的。每次迭代会产生一定的交付。

Scrum的流程

  • 产品负责人负责整理user story,形成product backlog。
  • 发布计划会议:product owner负责讲解user story,对其进行估算和排序,发布计划会议的产出就是制定出这一期迭代要完成的story列表,sprint backlog。
  • 迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,每个任务都有明确的负责人,并完成工时的初估计。
  • 每日例会:每天scrum master召集站立会议,团队成员回答昨天做了什么今天计划做什么,有什么问题。
  • 演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取期间大家的反馈记录下来,由po整理,形成新的story。得的成果。
  • 回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次选代继续改进,以达到持续改进的效果。

在这里插入图片描述
敏捷中的测试
轻文档和快速迭代

  • 敏捷模型中强调轻文档,所以测试人员不应使用传统的Excel编写测试用例的方法,更多的是0使用思维导图、探索性测试(强调自由度,设计和执行同时进行,根据测试结果不断调整测试计划)、自动化测试等

轻文档:测试用例、测试计划文档、测试报告……

  • 敏捷讲求合作,在敏捷项目组中,测试人员应多主动跟开发人员了解需求、讨论设计、一起研究bug出现的原因。

测试模型

V模型

在这里插入图片描述
V模型:目的是改进软件开发的效率和效果。是瀑布模型的变种。

优点:

  1. 明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系,有效提升测试的质量和效率。
  2. V模型指出:
    单元和集成测试应检测程序的执行是否满足软件设计的要求
    系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标
    验收测试确定软件的实现是否满足用户需要或合同的要求

缺点:仅仅把测试作为在编码之后的一个阶段,未在需求阶段就介入测试。缺点同瀑布模型。

W模型(双V模型)

在这里插入图片描述
开发V模型并不是单单指编码阶段,而是为产品开发流程而实施的各个阶段
特点:测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进行的

优点:有利于尽早地全面的发现问题。例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度和测试风险及早制定应对措施,显著减少总体测试时间,加快项目进度。
缺点:

  1. 需求、设计、编码等活动被视为串行的;
  2. 测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。
  3. 重流程,无法支持敏捷开发模式。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑。

相关文章:

软件测试概念

这里写目录标题 需求开发模型软件生命周期瀑布模型螺旋模型增量模型、迭代模型敏捷模型Scrum 测试模型V模型W模型(双V模型) 需求 用户需求:没有经过合理的评估,通常就是一句话 软件需求:是开发人员和测试人员执行工作…...

数据库性能杀手与调优实践

目录 前言一、索引缺失引发的全表扫描灾难1.现象与影响2.优化策略 二、SELECT * 的隐性成本1.危害分析2.优化实践 三、分页查询的性能陷阱1.深度分页问题2.优化方案对比 四、执行计划分析方法论1.关键指标解读2.典型劣化模式识别 五、综合优化最佳实践总结 前言 在数据库应用开…...

初始化列表详解

1.类中包含以下成员,必须放在初始化列表位置进行初始化: 1. 引用成员变量 2.const成员变量 3. 自定义类型成员(且该类没有默认构造函数时 ) 2. 成员变量在类中声明次序就是其在初始化列表中的初始化顺序,与其在初始化列表中的先后次序无关…...

【CVE-2025-1094】:PostgreSQL 14.15 SQL注入漏洞导致的RCE_ 利用代码和分析

目标 PostgreSQL 14.15BeyondTrust Privileged Remote Access (PRA) 和 Remote Support (RS) 软件受影响的版本:使用PostgreSQL 14.15及其版本的BeyondTrust产品Explain CVE-2025-1094 是 PostgreSQL 14.15 版本的 psql 交互式工具中发现的 SQL 注入漏洞。由于输入值的验证不…...

【验证技能】VIP项目大总结

VIP项目快做一段落了,历时一年半,也该要一个大汇总。 VIP简介 VIP开发流程 VIP难点 进程同步 打拍插入不同bit位宽数据问题。 动态升降lane VIP做的不好的地方和改进想法 各层之间交互 testsuite两端关键 所有层的实现架构不统一 VIP经验 ** 架构…...

MyBatis 参数处理全解析

在 Java 开发领域,MyBatis 作为一款优秀的持久层框架,凭借其简洁的设计和强大的功能,受到了广大开发者的青睐。而参数处理作为 MyBatis 中一个至关重要的环节,掌握好它能让我们更高效地使用 MyBatis 进行数据库操作。本文将全面深…...

【自然语言处理与大模型】使用Xtuner进行QLoRA微调实操

本文首先对Xtuner这一微调框架进行简单的介绍。手把手演示如何使用Xtuner对模型进行微调训练,包括数据准备、训练命令执行及训练过程中的监控技巧。最后,在完成微调之后,本文还将介绍如何对微调结果进行简单对话测试。 一、Xtuner微调框架 X…...

2023华为od统一考试B卷【二叉树中序遍历】

前言 博主刷的华为机考题,代码仅供参考,因为没有后台数据,可能有没考虑到的情况 如果感觉对你有帮助,请点点关注点点赞吧,谢谢你! 题目描述 思路 0.用Character数组存储树,index下标的左右…...

Midjourney 绘画 + AI 配音:组合玩法打造爆款短视频!

一、引言:AI 重构短视频创作范式 在某短视频工作室的深夜剪辑室里,资深编导正在为一条古风剧情视频发愁:预算有限无法实拍敦煌场景,人工绘制分镜耗时 3 天,配音演员档期排到一周后。而使用 Midjourney 生成敦煌壁画风格的场景图仅需 15 分钟,AI 配音工具实时生成多角色台…...

敏感词 v0.25.1 新特性之返回匹配词,修正 tags 标签

开源项目 敏感词核心 https://github.com/houbb/sensitive-word 敏感词控台 https://github.com/houbb/sensitive-word-admin 版本特性 大家好,我是老马。 敏感词以前在实现的时候,没有返回底层实际匹配的词,有时候问题排查非常耗费时间。 …...

【多线程】六、基于阻塞队列的生产者消费者模型

文章目录 Ⅰ. 生产者消费者模型的概念Ⅱ. 生产者消费者模型的优点Ⅲ. 基于阻塞队列的生产者消费者模型MakefileBlock_queue.hpptask.hpptest.cppⅣ. 如何理解提高了效率❓❓❓Ⅰ. 生产者消费者模型的概念 ​ 生产者消费者模型是一种常见的并发模式,用于解决生产者和消费者之间…...

解决Flutter项目中Gradle构建Running Gradle task ‘assembleDebug‘卡顿问题的终极指南

解决Flutter项目中Gradle构建Running Gradle task ‘assembleDebug‘卡顿问题的终极指南 前言 在开发Flutter应用时,经常会遇到Gradle构建卡在Running Gradle task assembleDebug阶段的问题。本文将分享如何通过配置华为云镜像和使用自定义脚本下载依赖的方法解决这些问题。…...

IntelliJ IDEA 保姆级使用教程

文章目录 一、创建项目二、创建模块三、创建包四、创建类五、编写代码六、运行代码注意 七、IDEA 常见设置1、主题2、字体3、背景色 八、IDEA 常用快捷键九、IDEA 常见操作9.1、类操作9.1.1、删除类文件9.1.2、修改类名称注意 9.2、模块操作9.2.1、修改模块名快速查看 9.2.2、导…...

从此,K8S入门0门槛!

前言 当你想要入门K8S的时候,往往会被各种概念搞的晕乎乎的,什么API Server,Scheduler,Controller manager,Etcd,Pod,Kubelet,kube-proxy,deployment…… 哪怕你使用了…...

vue2和vue3组件如何监听子组件生命周期

在 Vue 中监听子组件的生命周期是一个常见需求,但 Vue 官方并不直接推荐这么做,因为这会打破组件的封装性。但在**一些特定场景(如自动化监控、封装逻辑复用)**下仍是有意义的。 下面分别讲解 Vue 2 和 Vue 3 中如何监听 子组件的…...

如何用Python绘制两个圆之间的8条公切线

引言 在几何学中,两圆之间存在多种类型的公共切线。本文将通过Python代码演示如何绘制两个同心圆(半径分别为1.0和3.0)之间的8条公切线,并解释相关数学原理与代码实现细节。 环境准备 import matplotlib.pyplot as plt import …...

会话历史管理——持久化

​​需求场景​​​​推荐方案​​​​理由​​中小企业级应用,需复杂查询MySQL/PostgreSQL事务支持完善,开发成本低海量数据高并发写入Cassandra水平扩展性强,写入性能高非结构化历史数据快速检索MongoDB灵活存储,内置全文检索本…...

C++之IO流

目录 一、C语言的输入与输出 二、流是什么 三、CIO流 3.1、C标准IO流 3.2、C文件IO流 四、stringstream的简单介绍 一、C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键盘)读取数据,并将值存放…...

maven install时报错:【无效的目标发行版: 17】

在很多次运行项目前的maven install时,我总是遇到无效的目标发行版: 17的问题,解决过之后就又忘了怎么解决,浪费了很多时间。。 今天把他总结一下,如图报错: 解决方法 注意: 如果只想解决这个项目的问题…...

开闭原则(OCP)

非常棒的问题!🔍 开闭原则(OCP, Open/Closed Principle)是软件设计的核心原则之一,下面我将从定义、意义、优劣分析、Python示例和结构图五个方面完整解析给你。 🧠 什么是开闭原则? 开闭原则&a…...

FHQ Treap

按值分裂 /* 按值x分裂Treap&#xff1a;将树u分裂为<x的树l和>x的树r */ void split(int u, int x, int& l, int& r) {if (!u) { l r 0; return; } // 空树直接返回if (t[u].val < x) { // 当前节点值<x&#xff0c;应放入左树l u; …...

题解传送门

做个算法分类&#xff0c;这样找特定算法的题目就方便多了23333 竞赛工具 【竞赛工具】——sublime text4 xcpc竞赛向配置教程 【竞赛工具】——vscode xcpc竞赛向配置教程 算法讲解 [算法学习]——通过RMQ与dfs序实现O(1)求LCA&#xff08;含封装板子&#xff09; [算法…...

ASP.NET MVC​ 入门与提高指南七

39. 量子安全通信与 MVC 应用保障 39.1 量子安全通信概念 量子安全通信基于量子力学原理&#xff0c;利用量子态的特性&#xff08;如量子纠缠、量子不可克隆定理&#xff09;来实现信息的安全传输。与传统加密方式相比&#xff0c;量子安全通信能够提供更高的安全性&#xf…...

Linux工作台文件操作命令全流程解析

全文目录 1 确认当前工作路径2 导航与目录管理2.1 关键命令2.2 逻辑衔接 3 文件基础操作3.1 创建 → 备份 → 重命名 → 清理3.2 文件查看和编辑3.3 文件链接3.4 文件diff 4 文件权限与所有权管理5 文件打包与归档6 参考文献 写在前面 shell是一种命令解释器&#xff0c;它提供…...

03 - spring security自定义登出页面

spring security自定义登出页面 文档 00 - spring security框架使用01 - spring security自定义登录页面02 - spring security基于配置文件及内存的账号密码 自定义登出页面 调整配置类WebSecurityConfig.java package xin.yangshuai.springsecurity03.config;import org.…...

unity webgl netbox2本地部署打开运行

unity webgl netbox2本地部署打开运行 复制NetBox2.exe和index.html 在同一级目录下使用&#xff0c;双击netbox2.exe。 下载文件 下载地址&#xff1a; netbox2.exe...

华为OD机试真题 Java 实现【水库蓄水问题】

前言 博主刷的华为机考题&#xff0c;代码仅供参考&#xff0c;因为没有后台数据&#xff0c;可能有没考虑到的情况 如果感觉对你有帮助&#xff0c;请点点关注点点赞吧&#xff0c;谢谢你&#xff01; 题目描述 思路 1. 其实就是找一个最大的水坑&#xff0c;两个…...

A2A 协议与 MCP 协议:智能代理生态系统的双轮驱动

本文将探讨A2A 协议与MCP 协议的特点、区别及协同作用&#xff0c;帮助开发者和产品设计师更好地理解这一新兴技术领域。 A2A 协议&#xff1a;打造代理间的沟通桥梁 A2A 协议的核心概念 A2A 协议是由 Google 与 50 多家行业合作伙伴共同开发的开放协议&#xff0c;旨在实现…...

使用AI-01开发板和开源后端服务搭建整套小智服务系统

使用AI-01开发板和开源后端服务搭建整套小智服务系统 四博智联的AI-01开发板&#xff0c;基于乐鑫ESP32-C2 专属定制的离线语音模组&#xff0c;能够完美的接入小智AI服务平台&#xff0c;再使用开源后端服务&#xff0c;就能够搭建一个完整的小智AI服务系统了。 下面是具体…...

第三章 权限维持-linux权限维持-隐藏

简介 ssh rootenv.xj.edisec.net -p 密码 xjqxwcyc 1.黑客隐藏的隐藏的文件 完整路径md5 2.黑客隐藏的文件反弹shell的ip端口 {ip:port} 3.黑客提权所用的命令 完整路径的md5 flag{md5} 4.黑客尝试注入恶意代码的工具完整路径md5 5.使用命令运行 ./x.xx 执行该文件 将查询的…...

Linux操作系统系统编程:x86-64架构下的系统调用

在Linux操作系统里&#xff0c;系统编程如同精密仪器的核心部件&#xff0c;掌控着系统运行的关键。而 x86-64 架构下的系统调用&#xff0c;更是连接用户空间程序与内核的关键桥梁。你可以把用户空间的程序想象成一个个 “工匠”&#xff0c;它们有着各式各样的需求&#xff0…...

linux下如何在一个录目中将一个文件复制到另一个录目,删除目录

一.文件复制到另一个目录 在Linux系统中&#xff0c;要将一个文件从一个目录复制到另一个目录&#xff0c;你可以使用cp命令。下面是一些基本的用法&#xff1a; 1. 使用绝对路径 如果你知道文件的绝对路径和目标目录的绝对路径&#xff0c;你可以直接使用cp命令。例如&…...

用Selenium开启自动化网页交互与数据抓取之旅

用Selenium开启自动化网页交互与数据抓取之旅 在当今数字化时代&#xff0c;数据的价值不言而喻&#xff0c;而网页作为海量数据的重要载体&#xff0c;如何高效获取其中的关键信息成为众多开发者和数据爱好者关注的焦点。Selenium这一强大工具&#xff0c;为我们打开了自动化…...

RabbitMQ的交换机

一、三种交换机模式 核心区别对比​​ ​​特性​​​​广播模式&#xff08;Fanout&#xff09;​​​​路由模式&#xff08;Direct&#xff09;​​​​主题模式&#xff08;Topic&#xff09;​​​​路由规则​​无条件复制到所有绑定队列精确匹配 Routing Key通配符匹配…...

多模态大语言模型arxiv论文略读(五十五)

MoMA: Multimodal LLM Adapter for Fast Personalized Image Generation ➡️ 论文标题&#xff1a;MoMA: Multimodal LLM Adapter for Fast Personalized Image Generation ➡️ 论文作者&#xff1a;Kunpeng Song, Yizhe Zhu, Bingchen Liu, Qing Yan, Ahmed Elgammal, Xiao…...

TMI投稿指南(四):投稿相关网址

TMI官网&#xff1a;https://ieeetmi.org/ 模版选择器&#xff1a;选择合适的latex模版 IEEE-Template Selector 评审过程状态查看&#xff1a;​​​​​​ScholarOne Manuscripts AE assigns reviewers&#xff1a;副编辑已经开始选择和邀请审稿人&#xff0c;但同意审稿…...

Oracle无法正常OPEN(三)

在Oracle数据库中&#xff0c;如果几个数据文件丢失&#xff0c;导致数据库无法启动&#xff0c;报错“ORA-01157: cannot identify/lock data file 2 - see DBWR trace file”&#xff0c;如果没有物理备份的情况下&#xff0c;位于丢失数据文件的数据是无法找回的&#xff0c…...

SQL语句练习 自学SQL网 在查询中使用表达式 统计

目录 Day 9 在查询中使用表达式 Day 10 在查询中进行统计 聚合函数 Day 11 在查询中进行统计 HAVING关键字 Day12 查询执行顺序 Day 9 在查询中使用表达式 SELECT id , Title , (International_salesDomestic_sales)/1000000 AS International_sales FROM moviesLEFT JOIN …...

当LLM遇上Agent:AI三大流派的“复仇者联盟”

你一定听说过ChatGPT和DeepSeek&#xff0c;也知道它们背后的LLM&#xff08;大语言模型&#xff09;有多牛——能写诗、写代码、甚至假装人类。但如果你以为这就是AI的极限&#xff0c;那你就too young too simple了&#xff01; 最近&#xff0c;**Agent&#xff08;智能体&a…...

模拟开发授权平台

这次只是实现应用的curd和公私钥的校验以及第三方的通知dmeo项目&#xff0c;大家可以拓开视野来编写 进入主题 项目链接&#xff1a;桌角的眼镜/develop_auth_platform 直接下拉并运行就行 回调应用代码在test包中 回调应用测试代码 package mainimport ("encoding/…...

python数据分析(八):Pandas 文本数据处理

Pandas 文本数据处理全面指南 1. 引言 在数据分析中&#xff0c;文本数据是常见的数据类型之一。Pandas 提供了强大的字符串处理方法&#xff0c;可以方便地对文本数据进行各种操作。本文将详细介绍 Pandas 中的文本处理功能&#xff0c;包括字符串连接(cat)、分割(split)、替…...

Spring AI:简化人工智能功能应用程序开发

Spring AI&#xff1a;简化人工智能功能应用程序开发 一、项目简介 Spring AI 项目致力于简化包含人工智能功能的应用程序的开发工作&#xff0c;并且不会引入不必要的复杂性。该项目从著名的 Python 项目&#xff08;如 LangChain 和 LlamaIndex&#xff09;中获取灵感&#…...

【算法基础】三指针排序算法 - JAVA

一、基础概念 1.1 什么是三指针排序 三指针排序是一种特殊的分区排序算法&#xff0c;通过使用三个指针同时操作数组&#xff0c;将元素按照特定规则进行分类和排序。这种算法在处理包含有限种类值的数组时表现出色&#xff0c;最经典的应用是荷兰国旗问题&#xff08;Dutch …...

从实列中学习linux shell9 如何确认 服务器反应迟钝是因为cpu还是 硬盘io 到底是那个程序引起的。cpu负载多高算高

在 Linux 系统中,Load Average(平均负载) 是衡量系统整体压力的关键指标,但它本身没有绝对的“高/低”阈值,需要结合 CPU 核心数 和 其他性能指标 综合分析。以下是具体判断方法: 一、Load Average 的基本含义 定义:Load Average 表示 单位时间内处于可运行状态(R)和不…...

[面试]SoC验证工程师面试常见问题(三)

SoC验证工程师面试常见问题(三) 在 SoC 验证工程师的面试中,面试官可能会要求候选人现场编写 SystemVerilog、UVM (Universal Verification Methodology) 或 SystemC 代码,以评估其编程能力、语言掌握程度以及解决实际验证问题的能力。这种随机抽题写代码的环节通常…...

架构进阶:深入学习企业总体架构规划(Oracle 战略专家培训课件)【附全文阅读】

本文主要讨论了企业总体技术架构规划的重要性与实施建议。针对Oracle战略专家培训课件中的内容&#xff0c;文章强调了行业面临的挑战及现状分析、总体技术架构探讨、SOA集成解决方案讨论与问题解答等方面。文章指出&#xff0c;为了消除信息孤岛、强化应用系统&#xff0c;需要…...

stm32教程:软件I2C通信协议 代码模板提供

早上好啊大伙&#xff0c;这一期也是stm32的基础教学&#xff0c;这一期说的是 —— I2C通信协议。 文章目录 一、I2C协议概述二、物理层特性硬件结构速率模式 三、协议层机制起始与停止信号数据帧结构应答机制时钟同步与仲裁 四、通信协议1. 起始信号&#xff08;START Condit…...

Java零基础入门Day4:数组与二维数组详解

一、为什么需要数组&#xff1f; 当程序需要处理批量同类型数据时&#xff0c;使用多个变量存储会非常繁琐。例如存储70个学生姓名时&#xff0c;需定义70个变量&#xff0c;而数组可以简化这一过程&#xff0c;提高代码可维护性。 示例&#xff1a;变量存储的弊端 String n…...

一条 SQL 查询语句是如何执行的(MySQL)

第一讲&#xff1a;一条 SQL 查询语句是如何执行的 总览图示 MySQL 查询的执行流程可以大致分为以下步骤&#xff08;如图所示&#xff09;&#xff1a; 连接器&#xff08;Connection&#xff09;查询缓存&#xff08;Query Cache&#xff0c;MySQL 8.0 已废弃&#xff09;…...

IntelliJ IDEA

文章目录 一、集成开发环境(IDE, Integrated Development Environment)二、IntelliJ IDEAIDEA 安装 三、IDEA 管理 Java 程序的结构四、IDEA 开发 HelloWorld 程序 一、集成开发环境(IDE, Integrated Development Environment) 把代码编写&#xff0c;编译&#xff0c;执行等多…...