【软件测试】第二章·软件测试的基本概念
🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏:🏀软件测试与软件项目管理_十二月的猫的博客-CSDN博客💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光
目录
1. 前言
2. 软件测试的基本概念
2.1 软件质量的内涵
2.2 软件缺陷的定义
2.3 软件缺陷的判断准则
2.4 软件缺陷的产生
2.4 软件缺陷的构成
2.5 修复软件缺陷的代价
3. 软件测试的分类
3.1 几种测试对比
3.2 静态测试和动态测试
3.2.1 产品评审
3.2.2 静态分析
3.2.3 验证与确认
3.3 主动测试和被动测试
3.4 黑盒测试和白盒测试
4. 软件测试的层次
4.1 单元测试
4.2 集成测试
4.3 系统测试
4.4 验收测试
5. 软件测试工作范畴
5.1 测试需求分析
5.2 测试策略指定
5.3 测试计划
5.4 测试设计
5.5 测试执行
5.6 测试结果和过程评估
6. 总结
1. 前言
考试前猫猫又开始更新考试科目了(也就是开始学了bushi)。本学期更新的科目有:
- 软件测试
- 软件项目管理
- 爬虫和Web数据管理
- 数据可视化
本系列【软件测试】将针对软件测试的基础知识进行拆分讲解,既是对自己学习的一次巩固也想为后面学习的猫友们提供一些帮助。如果大家有空可以点个免费的赞和收藏呀~~你的鼓励真的对猫猫很重要。
2. 软件测试的基本概念
- 软件质量
- 软件缺陷
- 缺陷的修复
2.1 软件质量的内涵
内涵: 软件产品具有满足规定的或隐含要求能力有关的特征与特征总和。
软件质量特征:功能、可靠、易用、效率、可维护、可移植。
软件质量特征的三层模型:
不同语境的质量:
2.2 软件缺陷的定义
缺陷就是质量的反义词,了解质量也就明白缺陷。
缺陷定义:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
2.3 软件缺陷的判断准则
- 需求规格说明书和其他需求、设计规范文档
- 竞争对手的产品
- 启发式测试预言
- 统计测试预言
- 一致性测试预言
- 基于模型的测试预言
- 人类预言
2.4 软件缺陷的产生
- 技术问题:算法错误、计算和精度问题、接口参数传递不匹配。
- 团队工作:沟通不充分,有误解
- 软件本身:文档错误,使用场合不合适
2.4 软件缺陷的构成
大部分的缺陷都是:需求和软件功能不匹配。
缺陷的构成(按频率排序):需求 》 设计 》其他 》 代码
软件缺陷在不同阶段的分布:
2.5 修复软件缺陷的代价
缺陷带来的成本称为“劣质成本”。其非线性增长,不及时处理所带来的成本很高。
假如一个需求分析阶段的缺陷,在设计阶段就是它的3~6倍,在编程阶段是它的10倍,在内部测试阶段是它的20~40倍, 在外部测试阶段是它的30~70倍,而到了产品发布出去时,这个数字就是40~1000倍,修正错误的代价不是随时间线性增长,而几乎是呈指数增长的。
3. 软件测试的分类
- 按测试的对象或范围分类,如底层测试/单元测试、接口测试/集成测试、系统测试、业务层的验收测试等
- 按测试目的分类(测试类型),如功能测试、性能测试、可靠性测试、安全性测试、兼容性测试、回归测试等
- 按测试方法的分类分为:静态测试和动态测试、白盒测试和黑盒测试、精准测试、变异测试、蜕变测试、MBT等
3.1 几种测试对比
测试方法中按照是否执行被测软件可以分为静态测试和动态测试。静态测试包括测试需求、设计和代码,但是不执行被测软件。
按照测试人员是否需要主动发起测试还是等待接受测试结果可以分为主动测试和被动测试。
按测试人员是手工还是自动化测试可以分为手工测试和自动化测试。
按测试人员使用基于脚本测试还是设计测试用例测试分为脚本测试和探索式测试。
3.2 静态测试和动态测试
静态测试包括对软件产品的需求和设计文档、代码的评审,以及对代码的静态分析。
注意:管理评审和流程评审不属于静态测试,而是质量保证。
- 评审包括:互为评审、走审、会议评审
- 代码的静态分析主要采用工具进行,但是也存在人工的代码评审。
3.2.1 产品评审
软件产品评审包括:需求文档、设计文档和代码的评审。
产品评审的好处:通过软件评审,可以更早地发现需求工程、软件设计等各个方面的问题,大大减少大量的后期返工,将质量成本从昂责的后期返工转化为前期的缺陷发现。
产品评审的目标:评审是对软件元素或者项目状态的一种评估手段,以确定其是否与期望的结果保持一致,并使其得到改进。
需求评审的标准:
- 正确性
- 完备性
- 一致性
- 易理解性
- 易测试性
- 易追溯性
设计评审的目标:
保证需求能在设计中得到准确和完整的表示,即保证系统架构设计和产品功能规格说明书的质量。
- 系统架构
- 可测试性
- 系统部署
- 设计规格说明书
3.2.2 静态分析
- 人工检测:人工检测偏重于编码风格、质量的检验,对设计、代码进行分析,有效地发现逻辑设计和编码错误。
- 计算机辅助静态分析:利用静态分析工具对被测程序进行特性分析,从程序中提取一些信息,以便检查程序逻辑的各种缺陷和可疑的程序构造。
通过编译器对程序进行语法、词法、依赖值等分析,可以发现程序存在的较为表面的错误。
3.2.3 验证与确认
Verification:Are we building the product right?是否正确地构造了软件?即是否正确地做事,验证开发过程是否遵守已定义好的内容。验证产品满足规格设计说明书的一致性。
Validation:Are we building the right product?是否构造了正是用户所需要的软件?即是否正在做正确的事。验证产品所实现的功能是否满足用户的需求。
3.3 主动测试和被动测试
主动测试:测试人员主动操作被测对象,如输入数据、发送请求等来驱动被测对象,从而验证被测对象的响应或输出结果。
被动测试:测试人员不干预产品的运行,而是被动地监控产品在实际环境中运行而获得系统运行的数据,然后进行分析
3.4 黑盒测试和白盒测试
黑盒白盒与静态动态的结合:
4. 软件测试的层次
软件测试分为四个层次,分布在软件开发的不同阶段:
- 单元测试:组件/模块/类/函数
- 集成测试:单元之间接口
- 系统测试:由单元构成的系统
- 验收测试:系统承载的用户业务
4.1 单元测试
- 单元测试针对程序系统中的最小单元---模块或组件进行测试,一般和编码同步进行。主要采用白盒测试方法,从程序的内部结构出发设计测试用例检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。通常要编写驱动模块和桩模块。
- 单元测试一般由编程人员和测试人员共同完成,而以开发人员为主。
- 单元测试包括代码评审,代码评审可以发现程序50%~70%代码的缺陷。
4.2 集成测试
集成测试,也称联调,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题。
4.3 系统测试
系统测试包括系统功能测试 和 系统非功能测试。
系统功能测试是基于产品功能说明书,针对产品所实现的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用。
系统非功能性测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件和数据等,在实际运行环境下验证系统的非功能性,包括:
- 性能测试
- 安全性测试
- 稳定性测试
- 兼容性测试
4.4 验收测试
验收测试主要有 Alpha 测试 和 Beta 测试。
验收测试的目的是向未来的用户表明系统能够像预定要求那样工作,验证软件的功能和性能如同用户所合理期待的那样。
Alpha 测试是一种验收测试;在将最终产品发布给最终用户之前,执行以识别所有可能的问题和错误。Alpha 测试由作为组织内部员工的测试人员执行。主要目标是确定典型用户可能执行的任务并对其进行测试。
Beta 测试是由软件应用程序的“真实用户”在“真实环境”中进行的,它可以被认为是一种外部用户验收测试。这是将产品运送给客户之前的最终测试。来自客户
的直接反馈是 Beta 测试的主要优势。此测试有助于在客户环境中测试产品。5. 软件测试工作范畴
- 测试需求分析
- 测试策略指定
- 测试计划
- 测试设计
- 测试执行
- 测试结果和过程评估
5.1 测试需求分析
明确测试范围:了解哪些功能点需要测试,哪些功能点不需要测试。
明确测试优先级:哪些目标优先级高,哪些目标优先级低
5.2 测试策略指定
制定或选择更合适、更有效的测试方式、测试方法和技术等,其目的是为了以最低的时间或人力成本达到最大程度地揭示产品的质量风险、尽快完成测试等。
- 测试方式:手工方式与自动方式,静态方式与动态方式,基于脚本测试与探索式测试。
- 测试方法:黑盒测试与白盒测试,基于数据流还是基于控制流的方式。
- 测试过程:先测什么,后测什么,对测试阶段的不同划分。
5.3 测试计划
依赖于测试需求分析,和测试策略等结果
5.4 测试设计
测试设计是解决“如何测”的问题,可以分为测试总体设计和测试详细设计:
- 测试总体设计则主要指测试方案的设计、测试结构的设计。
- 测试详细设计主要是指测试用例的设计。
在测试方案的设计中,测试工作涉及的范围比较大,包括选择测试方法、明确测试策略、设计测试技术路线、选择测试工具和规划测试环境等。
5.5 测试执行
- 手工执行:基于详细设计的测试用例来完成测试,也可以在没有测试用例的情况下进行的探索式测试。
- 自动化执行:指采用测试工具来完成,一般都需要开发自动化测试脚本,然后工具执行脚本,在后续“单元测试与集成测试、系统测试和自动化测试框架”等各章会进行详细讨论。
脚本测试:
手工测试:
也就是设计测试用例进行的探索式测试。
5.6 测试结果和过程评估
- 测试结果评估:对测试结果进行分析,如分析测试覆盖率,以了解测试是否充分;也可以基于缺陷的趋势分析和分布分析,了解缺陷是否已收敛,以及基于缺陷来评估当前被测试的版本的质量。
- 测试过程评估:结合测试计划来进行评审,相当于把计划的测试活动和实际执行的活动进行比较,了解测试计划执行的情况和效果。
6. 总结
本篇文章作为【软件测试】系列的第二篇文章,主要用来帮助大家先与软件测试认识一下,见个面~~~后续将一一带大家和软件测试成为好朋友!
如果想持续关注【软件测试】和【软件项目管理】系列文章,可以订阅:
- 软件测试与软件项目管理_十二月的猫的博客-CSDN博客
如果想学习计算机其他方面的核心知识(都是猫猫的优质好文哦),可以订阅:
- 计算机网络_十二月的猫的博客-CSDN博客
- 软件工程与面向对象_十二月的猫的博客-CSDN博客、
- 操作系统与数据库_十二月的猫的博客-CSDN博客
- 编译原理_十二月的猫的博客-CSDN博客
- 算法启示录_十二月的猫的博客-CSDN博客
如果觉得本文对你有帮助,友友们可以点个赞,收个藏呀~
相关文章:
【软件测试】第二章·软件测试的基本概念
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏:🏀软件测试与软件项目管理_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 …...
部署安装gitlab-ce-17.9.7-ce.0.el8.x86_64.rpm
目录 编辑 实验环境 所需软件 实验开始 安装部署gitlab171.配置清华源仓库(版本高的系统无需做)vim /etc/yum.repos.d/gitlab-ce.repo 2.提前下载包dnf localinstall gitlab-ce-17.9.7-ce.0.el8.x86_64.rpm --rocklinux 3.修改配…...
2025五一杭州西湖三天游
2025五一杭州西湖三天游 文章目录 2025五一杭州西湖三天游一、前言二、杭州游玩记录三、杭州三日游小结四、杭州美食街1、河坊街2、胜利河美食街3、高银街4、中山南路美食街5、武林夜市6、啦喜街美食广场7、大兜路美食街 五、豆包推荐的杭州三日游攻略三天主要行程**第一天&…...
实验五:以太网UDP全协议栈的实现(通过远程实验系统)
文章目录 FPGA以太网:从ARP到UDP的完整协议栈一、引言二、核心模块详解1. ARP协议处理模块1.1 `arp_cache`:ARP缓存模块1.2 `arp_tx`:ARP请求与应答发送模块1.3 `arp_rx`:ARP接收与解析模块2. MAC层处理模块2.1 `mac_layer`:MAC层顶层模块2.2 `mac_tx_mode`:MAC发送模式选…...
现代计算机图形学Games101入门笔记(八)
三角形三点已经知道在uv的位置了,那三角形内部的点,怎么算。 先看A 任一点 面积比求 根据三点坐标属性差值出内部点的位置。 纹理太小了,映射处理方式,取邻近的Nearest感觉一格格的,取周围4个权重Bilinear,取4*4Bicubi…...
C语言学习之文件操作
经过前面的学习,我们已经基本掌握了如何去写一个C语言的代码了。但是在实际的项目中,我们不可能不需要文件去操作。因为如果没有文件,我们写的程序是存储在电脑的内存中的。如果程序推出,内存回收数据就随之丢失了。如果我们要对数…...
《AI大模型应知应会100篇》第63篇:AutoGPT 与 BabyAGI:自主代理框架探索
第63篇:AutoGPT 与 BabyAGI:自主代理框架探索 摘要 随着大语言模型(LLM)技术的不断演进,自主代理(Autonomous Agent) 正在成为 AI 应用的新范式。它不仅能够理解用户意图,还能自主规…...
使用大模型预测急性结石性疾病技术方案
目录 1. 数据预处理与特征工程伪代码 - 数据清洗与特征处理数据预处理流程图2. 大模型构建与训练伪代码 - 模型训练模型训练流程图3. 术前预测系统伪代码 - 术前风险评估术前预测流程图4. 术中实时调整系统伪代码 - 术中风险预警术中调整流程图5. 术后护理系统伪代码 - 并发症预…...
基于运动补偿的前景检测算法
这段代码实现了基于运动补偿的前景检测算法。 主要功能包括: 运动补偿模块:使用基于网格的 KLT 特征跟踪算法计算两帧之间的运动,然后通过单应性变换实现帧间运动补偿。前景检测模块:结合两帧运动补偿结果,通过帧间差…...
鸿蒙OSUniApp开发富文本编辑器组件#三方框架 #Uniapp
使用UniApp开发富文本编辑器组件 富文本编辑在各类应用中非常常见,无论是内容创作平台还是社交软件,都需要提供良好的富文本编辑体验。本文记录了我使用UniApp开发一个跨平台富文本编辑器组件的过程,希望对有类似需求的开发者有所启发。 背景…...
W5500使用SocketTool工具测试
W5500使用SocketTool工具测试 1、按“WINR” 2、输入“IPCONFIG”,得到计算机的IP地址,子网掩码和网关 3、设置W5500设备网络参数如下: 本地网关:192.168.1.1 本地子网掩码: 255.255.255.0 本地物理地址:0C 2…...
《Python星球日记》 第71天:命名实体识别(NER)与关系抽取
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、命名实体识别(NER)基础1. 什么是命名实体识别&#…...
双向长短期记忆网络-BiLSTM
5月14日复盘 二、BiLSTM 1. 概述 双向长短期记忆网络(Bi-directional Long Short-Term Memory,BiLSTM)是一种扩展自长短期记忆网络(LSTM)的结构,旨在解决传统 LSTM 模型只能考虑到过去信息的问题。BiLST…...
CentOS7原有磁盘扩容实战记录(LVM非LVM)【针对GPT分区】
一、环境 二、命令及含义 fdisk fdisk是一个较老的分区表创建和管理工具,主要支持MBR(Master Boot Record)格式的分区表。MBR分区表支持的硬盘单个分区最大容量为2TB,最多可以有4个主分区。fdisk通过命令行界面进行操…...
如何在终端/命令行中把PDF的每一页转换成图片(PNG)
今天被对象安排了一个任务: 之前自己其实也有这个需要,但是吧,我懒:量少拖拽,量大就放弃。但这次躲不过去了,所以研究了一下有什么工具可以做到这个需求。 本文记录我这次发现的使用 XpdfReader 的方法。…...
【0415】Postgres内核 释放指定 memory context 中所有内存 ④
1. frees all memory (memory context) Postgres内核中由函数 AllocSetReset() 完成该功能。即 “释放给定set中分配的所有内存。” 它应当将所有已分配的chunks标记为已释放,但不一定需要归还set所拥有的全部资源。我们的实际实现是,除了“保留”块(“keeper” block)(…...
2025年Flutter初级工程师技能要求
在2025年,随着移动应用市场的持续增长和跨平台开发需求的不断增加,Flutter已经成为许多公司构建高性能、跨平台应用的首选框架。对于初入职场的Flutter初级工程师来说,掌握以下技能要求是必不可少的。这些技能不仅能够帮助你在工作中快速上手…...
AWS技术助力企业满足GDPR合规要求
GDPR(通用数据保护条例)作为欧盟严格的数据保护法规,给许多企业带来了合规挑战。本文将探讨如何利用AWS(亚马逊云服务)的相关技术来满足GDPR的核心要求,帮助企业实现数据保护合规。 一、GDPR核心要求概览 GDPR的主要目标是保护欧盟公民的个人数据和隐私权。其核心要求包括: 数…...
MVCC:数据库并发控制的利器
在并发环境下,数据库需要处理多个事务同时访问和修改数据的情况。为了保证数据的一致性和隔离性,数据库需要采用一些并发控制机制。MVCC (Multi-Version Concurrency Control,多版本并发控制) 就是一种常用的并发控制技术,它通过维…...
第二章、Isaaclab强化学习包装器(3):SKRL Wrapper
0 前言 官方文档:https://isaac-sim.github.io/IsaacLab/main/source/api/lab_rl/isaaclab_rl.html#module-isaaclab_rl.skrl https://skrl.readthedocs.io/en/latest/intro/getting_started.html 在本节中,您将学习如何使用 skrl 库的各种组件来创建强…...
AI数字人实现原理
随着人工智能与数字技术的快速发展,AI数字人(Digital Human)作为新一代人机交互媒介,正在多个行业中快速落地。无论是在虚拟主播、在线客服、教育培训,还是在数字代言、元宇宙中,AI数字人都扮演着越来越重要…...
RBTree的模拟实现
1:红黑树的概念 红⿊树是⼀棵⼆叉搜索树,他的每个结点增加⼀个存储位来表⽰结点的颜⾊,可以是红⾊或者⿊⾊。通过对任何⼀条从根到叶⼦的路径上各个结点的颜⾊进⾏约束,红⿊树确保没有⼀条路径会⽐其他路径⻓出2倍,因…...
ssh connect to remote gitlab without authority
ssh connect to remote gitlab without authority 1 this command can produce a ssh key for authority ssh-keygen -t ed25519 -C "your_emailexample.com"2 this command can get the comment about the key cat ~/.ssh/id_ed25519.pubcopy all content !!!...
gitlab提交测试分支的命令和流程
写在前面 先npm run lint:eslint 先走一遍代码校验然后再提交先把检验跑了再add commit push那些注意一下这个问题:git commit规范不对导致报错subject may not be empty[subject-empty]type may not be empty[type-empty]. 配置lint检查后, 使用commitlint之后报…...
序列化和反序列化hadoop实现
### Hadoop 中序列化与反序列化的实现机制 Hadoop 提供了自己的轻量级序列化接口 Writable,用于高效地在网络中传输数据或将其存储到磁盘。以下是关于其核心概念和实现方式的详细介绍: --- #### 1. **Hadoop 序列化的核心原理** Hadoop 的序列化是一…...
[操作系统] 策略模式进行日志模块设计
文章目录 [toc]一、什么是设计模式?二、日志系统的基本构成三、策略模式在日志系统中的落地实现✦ 1. 策略基类 LogStrategy✦ 2. 具体策略类▸ 控制台输出:ConsoleLogStrategy▸ 文件输出:FileLogStrategy 四、日志等级枚举与转换函数五、日…...
LeetCode 每日一题 3341. 到达最后一个房间的最少时间 I + II
3341. 到达最后一个房间的最少时间 I II 有一个地窖,地窖中有 n x m 个房间,它们呈网格状排布。 给你一个大小为 n x m 的二维数组 moveTime ,其中 moveTime[i][j] 表示在这个时刻 以后 你才可以 开始 往这个房间 移动 。你在时刻 t 0 时从…...
《Python星球日记》 第68天:BERT 与预训练模型
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、BERT模型基础1. 什么是BERT?2. BERT 的结构3.预训练和微调对比二、BERT 的预训练任务1. 掩码语言模型 (MLM)2. 下一句预测 (NSP)三、微调 …...
Angular 知识框架
一、Angular 基础 1. Angular 简介 Angular 是什么? 基于 TypeScript 的前端框架(Google 维护)。 适用于构建单页应用(SPA)。 核心特性 组件化架构 双向数据绑定 依赖注入(DI) 模块化设计…...
python三方库sqlalchemy
SQLAlchemy 是 Python 中最强大、最受欢迎的 ORM(对象关系映射)库,它允许你使用 Python 对象来操作数据库,而不需要直接编写 SQL 语句。同时,它也提供了对底层 SQL 的完全控制能力,适用于从简单脚本到大型企…...
【SSL部署与优化】如何为网站启用HTTPS:从Let‘s Encrypt免费证书到Nginx配置
网站启用HTTPS 的完整实战指南,涵盖从 Let’s Encrypt 免费证书申请到 Nginx 配置的详细步骤,包括重定向、HSTS 设置及常见问题排查: 一、准备工作 1. 确保域名解析正确 • 在 DNS 管理后台,将域名(如 example.com&…...
Kubernetes控制平面组件:Kubelet详解(四):gRPC 与 CRI gRPC实现
云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…...
电商平台自动化
为什么要进行独立站自动化 纯人工测试人力成本高,相对效率低 回归测试在通用模块重复进行人工测试,测试效率低 前期调研备选自动化框架(工具): Katalon Applitools Testim 阿里云EMAS Playwright Appium Cypress 相关…...
【kafka】kafka概念,使用技巧go示例
1. Kafka基础概念 1.1 什么是Kafka? Kafka是一个分布式流处理平台,用于构建实时数据管道和流式应用。核心特点: 高吞吐量:每秒可处理百万级消息持久化存储:消息按Topic分区存储在磁盘分布式架构:支持水平…...
计算机系统结构——Cache性能分析
一、实验目的 加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。掌握Cache容量、相联度、块大小对Cache性能的影响。掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。理解LRU与随机法的基本思想以及它们对Cache性能的影响。 二、实验平台 实…...
Spring Web MVC————入门(2)
1,请求 我们接下来继续讲请求的部分,上期将过很多了,我们来给请求收个尾。 还记得Cookie和Seesion吗,我们在HTTP讲请求和响应报文的时候讲过,现在再给大家讲一遍,我们HTTP是无状态的协议,这次的…...
Adobe DC 2025安装教程
一.软件下载 点此下载 二.软件安装...
W1电力线载波通信技术
CK_Label_W1 产品型号:CK_Label_W1 尺寸:37*65*33.7mm 按键:1 指示灯:1 RGB灯(红/绿/蓝/黄/紫/白/青) 外观颜色:白色 合规认证:CE, RoHS 工作温度:0-50℃ 提示功能:蜂鸣器声音…...
现代 Web 自动化测试框架对比:Playwright 与 Selenium 的深度剖析
现代 Web 自动化测试框架对比:Playwright 与 Selenium 的深度剖析 摘要:本文对 Playwright 与 Selenium 在开发适配性、使用难度、场景适用性及性能表现等方面进行了全面深入的对比分析。通过详细的技术实现细节阐述与实测数据支撑,为开发者…...
第二章:CSS秘典 · 色彩与布局的力量
剧情承接:色彩失衡的荒原 林昊穿过 HTML 大门,眼前却是一片 灰白扭曲的荒原。所有页面元素如同幽灵般漂浮,没有色彩、没有结构,错乱无章。 “这是失控的样式荒原。” 零号导师的声音再次响起, “HTML 给了你骨架&…...
ubuntu studio 系统详解
Ubuntu Studio 系统详解:面向多媒体创作的专业 Linux 发行版 一、定位与目标用户 Ubuntu Studio 是 Ubuntu 的官方衍生版本(Flavor),专为 音频、视频、图形设计、音乐制作、影视后期 等多媒体创作场景设计。目标用户包括&#x…...
在 Ubuntu 20.04.6 LTS 中将 SCons 从 3.1.2 升级到 4.9.1
在 Ubuntu 20.04.6 LTS 中将 SCons 从 3.1.2 升级到 4.9.1,可以通过以下步骤完成: 方法 1:使用 pip 安装(推荐) 步骤 1:卸载旧版本 SCons # 如果通过 apt 安装的旧版本,先卸载 sudo apt remov…...
边缘计算网关工业物联网应用:空压机远程运维监控管理
边缘计算网关在空压机远程运维监控管理中的工业物联网应用,主要体现在数据采集与处理、设备监控、故障诊断与预警、远程控制等方面,以下是具体介绍: 数据采集与处理 多源数据采集:边缘计算网关能连接空压机的各类传感器…...
【大模型面试每日一题】Day 18:大模型中KV Cache的作用是什么?如何通过Window Attention优化其内存占用?
【大模型面试每日一题】Day 18:大模型中KV Cache的作用是什么?如何通过Window Attention优化其内存占用? 📌 题目重现 🌟🌟 面试官:大模型中KV Cache的作用是什么?如何通过Window Attention优…...
Spring的 @Validate注解详细分析
在 Spring Boot 中,参数校验是保证数据合法性的重要手段。除了前面提到的NotNull、Size等基础注解外,JSR-303(Bean Validation 1.0)、JSR-349(Bean Validation 1.1)和 JSR-380(Bean Validation …...
现代计算机图形学Games101入门笔记(三)
三维变换 具体形式缩放,平移 特殊点旋转。这里涉及到坐标系,先统一定义右手坐标系,根据叉乘和右手螺旋判定方向。这里还能法线Ry Sina 正负与其他两个旋转不一样。这里可以用右手螺旋,x叉乘z,发现大拇指朝下࿰…...
AI时代的弯道超车之第八章:具体分享几个AI实际操作方法和案例
在这个AI重塑世界的时代,你还在原地观望吗?是时候弯道超车,抢占先机了! 李尚龙倾力打造——《AI时代的弯道超车:用人工智能逆袭人生》专栏,带你系统掌握AI知识,从入门到实战,全方位提升认知与竞争力! 内容亮点: AI基础 + 核心技术讲解 职场赋能 + 创业路径揭秘 打破…...
企业网络新选择:软件定义架构下的MPLS
随着现代企业园区网络和运营商级基础设施的不断发展,多协议标签交换 (MPLS) 已成为一项基础技术,这要归功于其高效的数据包转发、高级流量工程功能以及对多租户环境的强大支持。 什么是MPLS? MPLS(多协议…...
SparkSQL操作Mysql
(一)准备mysql环境 我们计划在hadoop001这台设备上安装mysql服务器,(当然也可以重新使用一台全新的虚拟机)。 以下是具体步骤: 使用finalshell连接hadoop001.查看是否已安装MySQL。命令是: rpm -qa|grep…...
【论文阅读】UNIT: Backdoor Mitigation via Automated Neural Distribution Tightening
ECCV2024 https://github.com/Megum1/UNIT 我们的主要贡献总结如下: 我们引入了UNIT(“AUtomated Neural DIstribution Tightening”),这是一种创新的后门缓解方法,它为每个神经元近似独特的分布边界,用于…...