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

系统和功能测试:确保软件的功能和易用性

目录

概述

功能测试

LOSED 模型

用例的设计

等价类划分

边界值分析

循环结构测试的综合方法

因果图

决策表

功能图

正交实验设计

易用性测试

内部易用性测试

外部易用性测试

功能性测试

正向功能性测试

负向功能性测试

功能性测试工具

结语


概述

在软件开发中,系统测试和功能测试是确保软件质量的关键环节。系统测试关注整个系统的集成和行为,而功能测试则专注于验证软件的功能是否满足需求。本文将探讨功能测试的范围和 LOSED 模型、用例的设计方法、易用性测试、功能性测试以及相关测试工具,帮助读者更好地了解和实施系统和功能测试。

功能测试

功能测试是指验证软件是否按照预期的方式执行所需的功能。功能测试的范围通常包括:

  1. 输入和输出:验证软件是否能够正确地处理各种输入,并产生预期的输出结果。这包括对用户输入的数据、系统参数、外部接口等进行测试,确保软件能够正确解析和处理各种输入情况,并生成正确的输出。

  2. 功能完整性:验证软件是否实现了所有规定的功能,没有遗漏或多余的功能。功能完整性测试旨在确认软件是否符合需求规格说明书或其他功能规范,是否包含了所有预期的功能模块和特性。

  3. 功能正确性:验证软件的功能是否符合需求文档、用户故事或用例中的描述。这包括验证软件是否实现了预期的功能行为、交互流程和业务逻辑,以确保软件满足用户的需求和期望。

  4. 异常处理:验证软件是否能够正确地处理异常情况,如无效输入、错误操作或系统故障等。异常处理测试旨在确认软件在面对异常情况时能够给出合理的响应和处理,避免系统崩溃或数据丢失等严重后果。

LOSED 模型

LOSED 模型是一种功能测试的设计模型,它包含五个要素:

  1. L(Legality,合法性):此部分不仅检查输入是否合法,也确认输出是否符合预期和标准。输入不仅可以是用户输入,还可以是其他系统或模块传递给被测试模块的数据。

  2. O(Operation,操作):在操作环节,我们还应注意验证软件是否能准确地处理不同的数据类型。比如,在进行数值计算时是否能确保精度,在处理大数据集时是否有良好的性能。

  3. S(Schedule,调度):这部分也需要确认软件是否可以正确处理并发和同步的问题,特别是在多线程或分布式环境下。

  4. E(Exit,退出):在软件出错时,我们不仅需要检查是否能正确退出,还应该验证软件是否能给出明确的错误信息,以便用户理解发生了什么错误,并能采取适当的修复措施。

  5. D(Decision,决策):在决策部分,额外的验证点可以包括软件如何处理边缘情况和异常情况,比如输入数据为空或格式不正确时,软件是否能做出正确的决策。

用例的设计

用例的设计是功能测试的重要环节,它可以帮助测试人员发现更多的缺陷,提高测试的覆盖率。常见的用例设计方法包括:

等价类划分

等价类划分是一种软件测试技术,用于设计测试用例,通过划分输入域的有效值和无效值为等价类,以便更有效地覆盖各种情况。其基本原理是假设属于同一等价类的输入具有相同的影响,并且只需选择其中一个代表性的值进行测试,以减少测试用例的数量,同时保证对系统进行了充分的测试。

以年龄输入为例,可以将输入域划分为以下等价类:

  1. 未成年等价类:0岁到17岁之间的年龄范围。
  2. 成年等价类:18岁到59岁之间的年龄范围。
  3. 老年等价类:60岁以上的年龄范围。

针对每个等价类,设计的测试用例应该包括典型的有效值和无效值,以确保覆盖了各种可能的情况。例如:

  • 对于未成年等价类,可以设计包括0岁、10岁和17岁的测试用例,以及负数和非整数的无效值。
  • 对于成年等价类,可以设计包括18岁、30岁和59岁的测试用例,以及负数和非整数的无效值。
  • 对于老年等价类,可以设计包括60岁、70岁和80岁的测试用例,以及负数和非整数的无效值。

通过这种方式设计测试用例,可以有效地覆盖各个等价类,从而发现潜在的问题和缺陷。等价类划分是功能测试中常用的一种技术,能够帮助测试人员在有限的资源和时间内实现高效的测试覆盖。

边界值分析

边界值划分是测试用例设计中的一种常见方法,它着重测验在输入区间的边界上的测试用例。这基于一个观察得来的事实,即软件的错误往往集中在输入或输出的边界上。

具体来说,边界值划分策略涵盖以下几点:

  1. 正常边界值:这包括输入区间的下限和上限。例如,如果一个函数定义它的输入参数范围是1到100,那么1和100就是正常边界值。

  2. 异常边界值:这包括正常边界附近的值。在前面的例子中,0和101就被视为异常边界值。

  3. 边界内外值:正常边界的内、外一侧的值也需要测试。在前面的例子中,这些值可能是2和99(内侧边界值)以及0和101(外侧边界值)。

此外,在设计测试用例时,也需要考虑到一些特殊情况,如输入是空值、null或特殊字符等。

循环结构测试的综合方法

循环结构测试的综合方法是一种测试技术,旨在覆盖循环结构的不同情况,包括正常终止、一次迭代和多次迭代等情况。通过设计测试用例来验证这些情况,可以有效地发现循环结构中的潜在问题和错误。

以计算 1 到 n 之和的方法为例,可以采用以下综合方法来设计测试用例:

  1. 正常终止情况:设计测试用例来验证循环在正常条件下正确终止的情况。对于计算 1 到 n 之和的方法,可以设计 n=0 的测试用例,以确保循环在 n=0 时能够正确地终止,并返回预期的结果。

  2. 一次迭代情况:设计测试用例来验证循环只执行一次迭代的情况。对于计算 1 到 n 之和的方法,可以设计 n=1 的测试用例,以确保循环在 n=1 时能够正确地执行一次迭代,并返回预期的结果。

  3. 多次迭代情况:设计测试用例来验证循环执行多次迭代的情况。对于计算 1 到 n 之和的方法,可以设计 n>1 的测试用例,以确保循环在 n>1 时能够正确地执行多次迭代,并返回预期的结果。

因果图

  1. 定义:因果图是一种图形化表示法,用于表示因果关系、决策点和操作之间的逻辑关系。因果图中的每个节点代表一个输入或者输出。节点之间通过边和逻辑门(如AND、OR和NOT门)相连,用于表示这些输入和输出之间的关系。

  2. 设计测试用例:根据因果图,可以用来设计覆盖所有可能路径的测试用例。这种方式可以保证测试用例的覆盖率,同时也可以帮助减少不必要的重复用例,优化测试效率。

  3. 风险分析和决策:因果图也是一个用于可视化和理解复杂系统的工具。可以利用因果图进行风险分析,了解哪些节点或路径更可能导致错误。有助于进行决策,比如决定将哪些部分的测试优先或重点进行。

决策表

决策表是一种表格化的方法,用于表示输入和输出之间的决策逻辑。通过决策表,测试人员可以清晰地了解系统对不同条件组合的决策结果,从而设计出覆盖各种情况的测试用例。

以根据成绩计算等级的方法为例,可以构造一个简单的决策表如下:

成绩范围等级
90-100A
80-89B
70-79C
60-69D
<60F

在这个决策表中,成绩范围是输入条件,等级是输出结果。根据不同的成绩范围,系统会做出相应的等级决策。

基于这个决策表,可以设计如下的测试用例来验证每个等级的情况:

  1. 输入为95,预期输出为A。
  2. 输入为85,预期输出为B。
  3. 输入为75,预期输出为C。
  4. 输入为65,预期输出为D。
  5. 输入为55,预期输出为F。

通过这些测试用例,可以覆盖决策表中的各种情况,确保系统在不同成绩范围下能够正确地计算等级。

功能图

功能图是一种图形化的方法,用于清晰地表示软件的功能和流程。通过功能图,测试人员可以直观地了解软件系统的各个功能模块之间的交互关系和流程,从而设计出有效的测试用例,确保覆盖所有功能和流程。

以电子商务网站为例,可以构造一个简单的功能图来表示从商品搜索到下单支付的过程,包括以下功能模块和步骤:

  1. 用户登录:用户登录网站的功能模块。
  2. 商品搜索:用户在网站上进行商品搜索的功能模块。
  3. 商品浏览:用户浏览搜索结果并查看商品详情的功能模块。
  4. 加入购物车:用户将感兴趣的商品加入购物车的功能模块。
  5. 购物车管理:用户管理购物车中的商品,包括增删改查等操作。
  6. 下单支付:用户完成商品选择后进行下单支付的功能模块。

基于这个功能图,可以设计如下的测试用例来验证每个步骤的功能:

  1. 测试用户登录功能,包括正常登录和错误登录的情况。
  2. 测试商品搜索功能,验证搜索结果的准确性和搜索关键字的有效性。
  3. 测试商品浏览功能,包括查看商品详情和商品图片的显示等。
  4. 测试加入购物车功能,验证商品是否成功加入购物车和购物车数量的更新。
  5. 测试购物车管理功能,包括添加、删除、修改购物车商品数量等操作的有效性。
  6. 测试下单支付功能,包括选择支付方式、填写订单信息和完成支付的流程。

通过这些测试用例,可以全面覆盖电子商务网站的各个功能模块和操作流程,确保软件系统能够正常运行并满足用户需求。

正交实验设计

正交实验设计是一种数学优化方法,用于在有限的测试用例数量下,最大化地覆盖输入组合。测试人员可以通过正交实验设计来优化测试用例,提高测试效率。例如,对于一个计算直角三角形的斜边的方法,可以采用正交实验设计来优化角度和边长的输入组合,以最少的测试用例覆盖所有可能的组合。

  1. 测试优化:正交实验设计可以帮助我们在有限的测试周期和资源下,尽可能多地覆盖到各种输入组合,这对于处理多输入系统特别有效。根据正交实验设计的原则,我们可以选择和构造一系列测试向量,这些向量能够最大化地覆盖所有可能的输入组合。

  2. 错误检测:正交实验设计同时还能帮助我们检测到更多类型的错误。由于该设计能保证各个因素的水平之间的独立性,因此可以更容易地发现哪一个因素或哪几个因素的改变会引起系统输出的变化。

  3. 现实应用:在实际应用中,正交实验设计方法被广泛应用于各种领域,如软件工程、工业工程、市场调查等领域的实验设计中。

易用性测试

易用性测试关注软件的用户界面和用户体验,它可以分为内部易用性测试和外部易用性测试。

内部易用性测试

内部易用性测试是一种测试方法,旨在评估软件的用户界面是否易于使用和理解。这种测试由开发人员或测试人员执行,目的是确保软件在用户交互方面的设计满足用户的期望和需求。常见的测试方法包括:

  1. 界面元素测试:验证软件的各种界面元素(如按钮、菜单、输入框等)是否易于识别和使用。测试人员会评估界面元素的布局、样式、颜色、大小等方面,以确保它们符合用户的视觉习惯和操作习惯。

  2. 导航测试:验证软件的导航逻辑是否清晰明了,用户是否能够轻松地找到所需的功能。测试人员会模拟用户的操作流程,从一个功能到另一个功能的跳转,评估软件的导航路径是否直观、流畅,是否存在歧义或混乱的情况。

  3. 一致性测试:验证软件的界面元素、导航逻辑和功能在不同页面或模块之间是否一致。测试人员会比较不同页面或模块的设计风格、布局结构和交互方式,确保它们之间的一致性,减少用户的学习成本和困惑感。

外部易用性测试

外部易用性测试是指邀请真实用户或目标用户对软件进行测试,以收集他们的反馈和体验,从而评估软件的易用性和用户体验。这种测试方法能够帮助开发团队更全面地了解用户的需求和偏好,发现潜在的问题,并提供改进建议。常见的外部易用性测试方法包括:

  1. 用户测试:邀请真实用户对软件进行测试,观察他们的使用情况并收集反馈。测试人员可以提供一系列任务或场景,并记录用户在完成这些任务或场景时的操作过程、困难和反馈意见。通过观察用户的行为和听取他们的意见,可以发现软件中存在的问题,并提出改进建议。

  2. 焦点小组测试:邀请一小组目标用户对软件进行测试和讨论,收集他们的反馈和建议。焦点小组测试通常由一位主持人引导,参与者可以自由讨论他们的体验、意见和建议。通过与目标用户的互动,可以深入了解他们的需求和偏好,并获取更多有价值的反馈信息。

  3. 问卷调查:向大量用户发放问卷调查,收集他们对软件易用性的反馈和评价。问卷调查可以覆盖更广泛的用户群体,帮助开发团队了解用户的整体满意度、使用体验和需求。问卷调查可以包括开放式问题和封闭式问题,以便收集用户的具体意见和评价。

功能性测试

功能性测试是指验证软件的功能是否满足需求,它可以分为正向功能性测试和负向功能性测试。

正向功能性测试

正向功能性测试是指验证软件在正常情况下是否能够正确地执行功能。常见的测试方法包括:

  1. 单元测试:这是针对软件中单个模块或函数的独立测试。确保各个独立模块能正确执行预期操作。

  2. 集成测试:这种测试用于检测多个模块或组件结合在一起时的行为,验证组件相互集成后的系统功能是否正确。

  3. 系统测试:以用户的视角对软件进行全面的测试,确保所有功能模块在一起能够按照预期工作,也包括对非功能性需求的测试,比如性能、安全性等。

  4. 验收测试:也称为用户验收测试(UAT)。软件开发完毕后,用户或客户会对其进行测试,以确认产品是否满足他们的需求和业务目标。

  5. 回归测试:当软件进行修改,特别是修补了一些错误之后,回归测试用于确保这些修改没有对其他部分造成影响,或者说引入新的错误。

  6. 冒烟测试:快速测试全系统的主要功能是否工作正常,也被看作是接受进一步测试的入口标准。

负向功能性测试

负向功能性测试是指验证软件在异常或错误情况下是否能够正确地处理。常见的测试方法包括:

  1. 错误处理测试:专注于软件对于错误或异常输入的处理能力,例如输入非法的数据类型或格式、修改不存在的数据、删除未选中的选项等。

  2. 异常路径测试:这种测试关注软件在非正常情况下的行为,例如网络故障、硬件错误、系统崩溃或其他突发状况。

  3. 压力测试:这种测试主要是让软件在超出正常或预期条件下运行,例如超过最大用户数量、超载处理等,来验证软件的稳定性和错误处理能力。

  4. 边缘或边界条件测试:边缘条件通常是软件最容易出错的地方,如输入范围的边界、数组边界、时间或日期边界等。

  5. 安全性测试:测试软件对于恶意攻击、破坏或未授权访问的处理能力,验证系统的安全防护是否足够。

  6. 负载测试:通过不断增加系统的负载,直到系统无法再处理新的请求为止,以观察软件在此过程中的行为和表现。

功能性测试工具

功能性测试工具可以帮助测试人员自动化地执行功能性测试,常见的工具包括:

  1. Selenium:一种开源的自动化测试框架,用于测试 Web 应用程序的功能性。Selenium支持多种编程语言(如Java、Python、C#等)和各种浏览器,能够模拟用户在浏览器中的操作,如点击、输入、选择等,从而进行功能性测试。

  2. Appium:一种开源的移动应用程序测试框架,用于测试iOS和Android平台上的移动应用程序的功能性。Appium支持多种编程语言(如Java、Python、JavaScript等)和各种移动设备,能够模拟用户在移动设备上的操作,如点击、滑动、输入等,从而进行功能性测试。

  3. SoapUI:一种开源的 Web 服务测试工具,用于测试 SOAP 和 RESTful 接口的功能性。SoapUI提供了丰富的功能,包括创建和执行测试用例、验证响应结果、生成测试报告等,能够帮助测试人员对 Web 服务的函数功能进行全面的测试。

  4. LoadRunner:一种商业的负载测试工具,用于测试软件在高负载情况下的性能和稳定性。LoadRunner能够模拟大量用户同时访问软件,执行各种场景和操作,从而评估软件的性能指标(如响应时间、吞吐量、并发用户数等),帮助测试人员发现潜在的性能问题。

  5. JMeter:一种开源的负载测试工具,用于测试 Web 应用程序和数据库等的性能。JMeter支持多种协议(如HTTP、FTP、JDBC等),能够模拟用户请求并对服务器的响应进行评估,从而进行性能测试、压力测试和稳定性测试。

结语

系统和功能测试是确保软件质量的重要环节,它们分别关注系统的集成行为和软件的功能执行。通过了解功能测试的范围和 LOSED 模型、用例的设计方法、易用性测试和功能性测试,测试人员可以更有效地发现和修复缺陷,确保软件的功能和易用性满足用户的需求。

相关文章:

系统和功能测试:确保软件的功能和易用性

目录 概述 功能测试 LOSED 模型 用例的设计 等价类划分 边界值分析 循环结构测试的综合方法 因果图 决策表 功能图 正交实验设计 易用性测试 内部易用性测试 外部易用性测试 功能性测试 正向功能性测试 负向功能性测试 功能性测试工具 结语 概述 在软件开发…...

关于服务端接口知识的汇总

大家好&#xff0c;今天给大家分享一下之前整理的关于接口知识的汇总&#xff0c;对于测试人员来说&#xff0c;深入了解接口知识能带来诸多显著的好处。 一、为什么要了解接口知识&#xff1f; 接口是系统不同模块之间交互的关键通道。只有充分掌握接口知识&#xff0c;才能…...

树(数据结构)

树的定义 一个根结点&#xff0c;其余结点分为 m 个不相交的集合&#xff0c; 其中每个集合本身又是一棵树&#xff0c;并且称为根的子树。 树的根结点没有前驱&#xff0c;其他结点有且仅有一个前驱。 所有结点可以有0个或多个后继。 基本术语 结点的度 树的度 &#xff1a; 树…...

Spring底层入门(十一)

1、条件装配 在上一篇中&#xff0c;我们介绍了Spring&#xff0c;Spring MVC常见类的自动装配&#xff0c;在源码中可见许多以Conditional...开头的注解&#xff1a; Conditional 注解是Spring 框架提供的一种条件化装配的机制&#xff0c;它可以根据特定的条件来控制 Bean 的…...

优质资料:大型制造企业等级保护安全建设整改依据,系统现状分析,网络安全风险分析

第1章 项目概述 XX 大型制造型企业是国内一家大型从事制造型出口贸易的大型综合企业集团&#xff0c;为了落实国家及集团的信息安全等级保护制度&#xff0c;提高信息系统的安全防护水平&#xff0c;细化各项信息网络安全工作措施&#xff0c;提升网络与信息系统工作的效率&am…...

几种监控工具学习

在Linux上有很多监控工具&#xff0c;比如Zabbix、Prometheus、APM和ELK 监控工具是确保系统稳定运行的关键组件之一&#xff0c;它可以帮助系统管理员和开发人员及时发现并解决问题。 以下是几种流行的监控工具的简要介绍&#xff1a; Zabbix&#xff1a; Zabbix 是一个企…...

树莓派python开发

树莓派自带thonny 点亮LED灯 import RPi.GPIO as GPIO import time# 设置GPIO模式为BCM GPIO.setmode(GPIO.BCM)# 设置LED引脚 led_pin 18# 设置LED引脚为输出 GPIO.setup(led_pin, GPIO.OUT)# 点亮LED GPIO.output(led_pin, GPIO.HIGH)# 延时2秒 time.sleep(2)# 关闭LED GPI…...

纯血鸿蒙APP实战开发——首页下拉进入二楼效果案例

介绍 本示例主要介绍了利用position和onTouch来实现首页下拉进入二楼、二楼上划进入首页的效果场景&#xff0c;利用translate和opacity实现动效的移动和缩放&#xff0c;并将界面沉浸式&#xff08;全屏&#xff09;显示。 效果图预览 使用说明 向下滑动首页页面超过触发距…...

苹果cms:开启高速缓存加快访问速度

由于苹果cms采集的影片数据过多,如果不设置缓存,可能会造成网站访问缓慢,或者CPU消耗过高。随着用户访问量的上升&#xff0c;添加缓存设置是有这个必要的。目前cms提供了四种缓存方式 1&#xff09;file&#xff1a;以文件形式&#xff0c;通俗说直接访问Mysql&#xff0c;要达…...

实时数据推送——长轮询,短轮询,长连接

短轮询 短轮询是最简单的一种数据推送方式&#xff0c;客户端在固定的时间间隔&#xff08;例如每隔5秒&#xff09;向服务器发送请求&#xff0c;询问是否有更新的数据。服务器立即处理请求并返回数据&#xff0c;不论数据是否真的已经更新。 长轮询 长轮询是对短轮询的改进…...

七.音视频编辑-创建视频过渡-应用

引言 在上一篇博客中&#xff0c;我们已经介绍了创建视频过渡的实现方案&#xff0c;步骤非常繁琐&#xff0c;在生成AVMutableVideoCompositionInstruction和AVMutableVideoCompositionLayerInstruction的计算也十分复杂&#xff0c;但其实还有一个创建视频组合的捷径。不过我…...

Android11 InputManagerService启动流程分析

InputManagerService在systemserver进程中被启动 //frameworks\base\services\java\com\android\server\SystemServer.java t.traceBegin("StartInputManagerService"); inputManager new InputManagerService(context);//1 t.traceEnd(); //省略 //注册服务 Servi…...

【计算机网络篇】数据链路层(8)共享式以太网的退避算法和信道利用率

文章目录 &#x1f6f8;共享式以太网的退避算法&#x1f95a;截断二进制指数算法 &#x1f354;共享式以太网的信道利用率 &#x1f6f8;共享式以太网的退避算法 在使用CSMA/CD协议的共享总线以太网中&#xff0c;正在发送帧的站点一边发送帧一边检测碰撞&#xff0c;当检测到…...

wordpress主题 7B2 PRO主题5.4.2免授权直接安装

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 WordPress 资讯、资源、社交、商城、圈子、导航等多功能商用主题&#xff1a;B2 PRO 其设计风格专业且时尚&#xff0c;功能十分强大&#xff0c;包括多栏布局、自定义页面、强大的主…...

Dubbo基本使用

Dubbo基本使用 1.项目介绍2.开发步骤2.1 启动注册中心2.2 初始化项目2.3 添加 Maven 依赖2.3.1 父pom.xml2.3.1 consumer模块和provider模块pom.xml 2.4 定义服务接口2.5 定义服务端的实现2.6 配置服务端 Yaml 配置文件2.7 配置消费端 Yaml 配置文件2.8 基于 Spring 配置服务端…...

JS解密之新js加密实战(二)

前言 上次发了一篇关于新加密的&#xff0c;只解了前边两层&#xff0c;这中间家里各种事情因素影响&#xff0c;没有继续进一步研究&#xff0c;今天百忙之中抽空发布第二篇&#xff0c;关于其中的一小段加密片段&#xff0c;我认为分割成多个小片段是更容易被理解的。逻辑相…...

tsconfig 备忘清单

前言 ❝ Nealyang/blog0 使用 ts 已多年&#xff0c;但是貌似对于 tsconfig 总是记忆不清&#xff0c;每次都是 cv 历史项目&#xff0c;所以写了这篇备忘录&#xff0c;希望能帮助到大家。 本文总结整理自 Matt Pocock 的一篇文章3&#xff0c;加以个人理解&#xff0c;并做了…...

jmeter后置处理器提取到的参数因为换行符导致json解析错误

现象&#xff1a; {"message":"JSON parse error: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Ill…...

栈与队列的实现

前言 本次博客将要实现一下栈和队列&#xff0c;好吧 他们两个既可以使用动态数组也可以使用链表来实现 本次会有详细的讲解 栈的实现 栈的基础知识 什么是栈呢&#xff1f; 栈的性质是后进先出 来画个图来理解 当然可不可以出一个进一个呢&#xff0c;当然可以了 比如…...

线性集合:ArrayList,LinkedList,Vector/Stack

共同点&#xff1a;都是线性集合 ArrayList ArrayList 底层是基于数组实现的&#xff0c;并且实现了动态扩容&#xff08;当需要添加新元素时&#xff0c;如果 elementData 数组已满&#xff0c;则会自动扩容&#xff0c;新的容量将是原来的 1.5 倍&#xff09;&#xff0c;来…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...