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

软件测试基础知识(2) -- 软件评测师(十三)

3 基于风险的测试

    风险是当前未发生而未来有肯会发生并造成一定负面影响的事件。

3.1 基于风险的测试概述

    (1)测试计划内容的核心:

    1)测什么:从风险出发,需要明确地列举出要测试哪些具体的功能和非功能的质量特性,即测试范围。

    2)如何测:应用测试基础知识、原则和设计技术,结合非功能质量特性的风险情况,设计和安排测试阶段,结合测试类型等内容形成测试策略。

    3)什么时候测:结合风险缓解措施和软件开发的生存周期安排测试活动。将测试内容、测试策略的内容进一步分解为具体的测试任务。

    4)谁来测:根据不同的测试阶段、测试类型、技术特长等要素确定测试团队。

    (2)基于风险的测试计划指定的步骤如下:

    (3)基于风险的测试的应用领域:基于风险的测试目前通常用于商业产品、非安全攸关的产品或服务。

3.2 风险分析和缓解措施设计

    风险分析和缓解措施设计的过程如下:

    (1)风险识别:通常的做法是通过专家访谈、头脑风暴和采用风险框架或检查表来尽量保证识别完整的风险和客观地评估其优先级。

    (2)风险的影响和发生概率评估:风险是可能发生的负面影响的事件,其两个基本要素为:风险发生的可能性(概率)和风险一旦发生可能造成的影响(损失)。以软件测试作为度量软件产品质量的手段,简而言之就是通过执行测试,获取相关数据,再经过计算得到软件产品正确运行的概率或发生失效的概率。

    (3)风险的优先级:如果风险发生的概率确定,则风险造成的负面影响越大,一旦发生所造成的损失也越大,也应该优先处理。所以风险优先级(R)、发生概率(P)和影响(I)的关系,可以初步总结为以下公式:R=P\timesI。然而,测试活动解决的是当前的开发测试活动中遭到风险的概率(C)与期望产品上市后发生风险的可能性(P)之间的差距。所以对于软件测试计划,其要对应的风险的优先级,应该修正为如下公式:R=(C-P)\timesI。

    (4)风险与缓解措施如下所示:

     1)测试级别的划分,能对应解决软件开发的复杂性问题。

    2)测试类型的设计和安排,将测试类型安排在最适合对应的测试级别中来识别和缓解产品的风险。

    3)测试设计方法,在每个测试级别和类型中,都需要进行测试设计和执行的工作。

    4)测试执行方法,对每个测试级别和测试类型都应具体地设计安排对应的测试执行手段。

    (5)一般性的缓解措施指南:绝大部分软件产品是一个历史产品线的沿袭,系统的整体架构、模块和功能基本与历史产品线相同。变化的是少量的非核心新功能和底层硬件的升级换代。

    1)可能的测试级别的划分:

  • 对于没有代码变更的已有软件模块,无需进行单元测试。
  • 根据单元测试最终的情况考虑是否安排一轮在模拟器环境中执行的预集成测试,包括新功能的所有集成测试和回归测试。
  • 对新添加的功能进行集成测试。
  • 在系统测试级别,对所有功能进行完整的三轮回归测试。

    2)设计风险缓解措施的步骤:

  • 安排测试级别来对应软件系统的复杂度风险。
  • 根据各个测试级别的特点和资源情况安排,通过特定的测试类型在本级别内对应特定的质量特性风险。
  • 在安排测试类型后,考虑采用哪些测试设计方法设计测试用例。
  • 根据与被测试对象的交互方式可能的测试环境、测试工具的情况来设计测试执行的方法。

    3)基于风险的原则:

  • 由风险导出相关质量特性,而非单纯考虑质量特性,避免扩大某些不必要的质量特性的测试,忽略应覆盖到的质量特性测试。
  • 由质量特性得到的测试类型,避免安排无意义的测试活动来进行某些特定目标的测试。
  • 根据测试类型考虑测试设计方法,更有针对性。
  • 根据测试类型和测试级别设计测试执行的方法,而非相反。避免安排哪些能测试的测试类型,应根据需要去设计开发测试环境和测试工具。

3.3测试级别与测试实施

    测试级别与测试实施过程如下:

    (1)单元测试设计与实施:在单元测试级别,设计测试用例的依据是模块、组件、函数等单元的详细设计书或代码。一般安排测试设计方法的参考规则如下:

  • 对单元的明确功能,根据具体特性选择基于规格说明的测试设计技术。
  • 对于单元输入的各项参数可以采用等价类划分、边界值、组合测试技术。
  • 对于有着美国你却的状态和转移定义的模块,应该采用状态转移测试进行覆盖。
  • 对于有明确逻辑判断规格要求的,应采用判定表技术。
  • 通过代码覆盖度工具可对执行以上测试用例时达到的白盒测试覆盖进行度量。对于未能达到覆盖目标的部分代码,通过基于结构的测试设计技术来补充测试用例进行覆盖。
  • 一般对生命攸关系统中关键模块、核心算法模块,有法规或行业标准要求必须达成某种代码覆盖。

    (2)集成测试设计与实施:集成测试的测试设计方法为“灰盒”测试设计,其具体的做法是综合运用基于规格说明的测试设计技术和基于结构的测试设计技术来设计测试用例。

    1)通常的测试设计技术的参考规则如下:

  • 以场景测试为主要测试设计技术。
  • 为了在场景中找出异常或极端的情况,可对通信消息的内容参数或调用的接口参数及返回值,应用等价类和边界值方法。
  • 对于通过异步通信来进行的模块间交互协同,还应考虑异步通信带来的固有风险:消息丢失、重复、内容错误、超时、响应延迟与请求的重发、消息流程的交叉。
  • 对于有状态转移的模块间交互协同,可采用状态转移测试,测试多个状态机间同步的情况。

    2)集成测工具应具备以下功能:

  • 获取模块间调用的信息。
  • 根据测试要求匹配模块间调用(响应)。
  • 根据测试要求修改模块间调用(响应),包括修改调用的方法和参数内容。
  • 根据测试要求重复模块间调用(响应)。
  • 根据测试要求丢弃模块间调用(响应)。
  • 根据测试要求延迟发送模块间调用(响应)。

    (3)系统测试设计与实施:系统测试中主要应用基于规格说明的各种测试技术。通常系统测试采用手工测试和自动化测试相结合的方式来实施,由测试人员根据测试用例和用户手册等资料,对系统进行输入,观察其输出等外部行为。

    (4)验收测试设计与实施:验收测试的实施通常以手工测试为主。验收测试的测试用例一般有两个来源:

  • 从系统测试用例中随机抽取一些基本使用场景。
  • 从用户实际使用的场景出发,采用场景法来设计测试用例。验收测试的测试用例与其他测试级别的不同之处在于,验收测试更关注软件系统的功能在用户真实的使用场景中是否能提供用户所需要的价值,以及能否更优化的用法或需求来更好地满足客户的需求。

3.4 测试估算

    目前主要有3种测试估算的方法,如下:

    (1)宽带德尔斐(Delphi)法:又称为专家法,基本方法是召集多位产品领域、开发领域和测试领域的专家,最好能包含产品的利益相关方,各自独立地对识别的风险和风险缓解措施进行头脑风暴式的估算,或通过访谈,收集专家和有经验的工程师的经验和看法。

    (2)基于历史数据法:当软件产品在组织内有过类似的经验时,可参考过去项目的历史经验比如一系列产品线中的某个特定产品的测试。

    (3)根据测试级别、测试类型和测试技术进行测试估算:从功能和风险对应的测试类型和测试设计技术出发,逐个地根据功能和测试设计技术来估算可能的测试用例数量,然后根据测试用例数量可以估计出测试设计和测试执行一轮的工时。

4 软件测试新技术的应用

4.1 移动应用软件

    (1)移动应用软件常见的操作系统如下:

  • Android: 基于Linux内核和其他开源软件的修改版移动操作系统。免费的开源软件,源代码称为Android Open Source Project(AOSP),并主要以Apache许可发行。软件包使用APK格式。
  • iOS:曾用名iPhone OS。由苹果公司专门为其硬件创建和开发的移动操作系统。

    (2)移动应用软件的主要特点

  • 多样的交互方式
  • 多样的移动设备
  • 快速的软件版本迭代

    (3)移动应用软件测试的手段如下:

    1)人工测试仍然是开发人员和测试人员使用最普遍的测试方法。

    2)脚本编程测试的主要方法有两类:

  • 测试脚本编程技术:利用测试脚本编程框架和接口编写测试脚本,然后交由测试框架实施自动测试执行和功能检查。
  • 测试脚本录制技术:利用录制回放工具自动化记录和执行测试脚本。

    (4)移动应用软件测试遇到的挑战

    1)脚本编程测试的局限性:

  • 最突出的问题是由于应用软件的用户界面经常发送变化,经常出现脚本无法顺利执行的情况。
  • 测试脚本录制回放工具为测试脚本自动化生成提供了极大的方便,但是通过录制生成的测试脚本受限于录制时移动设备的屏幕大小和分辨率,在没有任何修改适配的情况下,生成的脚本很难直接运行于不同屏幕大小的其他移动设备上,而这一点恰恰是自动化测试框架技术可以轻松解决的问题。
  • 脚本编程测试方法生成的测试脚本依赖开发或测试人员在适当位置插入测试语言用于检查软件功能正确性,因此仍然需要人工参与。

    2)网络基础设施与架构的多样性:

  • 现代的移动应用软件大部分需要联网操作,而网络在软件使用过程中可能会发生变化,比如可能会在4G、3G网络模式下自动切换。
  • 用户在不同物理位置区域上,网络设施的稳定性也会不同,比如网络延时、网络掉包、网络服务中断等,这些情况都可能对移动应用的正常运行带来意想不到的影响。
  • 如今移动应用架构越来越复杂,很多应用需要和后台服务器、其他联网设备、移动设备进行交互。面对复杂的架构设计,如何实施有效的测试方法也是需要探索和解决的问题。

    3)移动设备多样性的挑战。在同一时期市场上存在许多不同系统版本、不同型号和屏幕大小以及不同厂商定制的移动设备。此类现象需要尽可能保证应用软件能够在大部分主流设备上平稳、正确运行。因此,移动应用软件的开发和测试人员在发布应用之前,至少需要在几类不同的Android系统版本的各类型号的移动设备上实施测试,以保证其软件在最大限度下能够正确运行,尽可能减少移动应用兼容性错误。

    (5)移动应用软件的测试如下:

    1)功能测试:测试目标是验证移动应用的功能是否符合预期。主流测试方法为手工测试方式、自动化脚本测试方式。

    2)性能测试:测试目标是移动应用能提供流畅的用户体验,包括设备性能、服务器/API性能、网络性能方面。

    3)易用性测试:测试目标是在开发周期的早期识别出系统中的易用性错误,并可以避免产品出现故障。关注点有:软件的有效性、软件的使用效率、软件内容的准确性、用户界面的友好性。

    4)信息安全测试:测试目标是防止针对移动应用软件的欺诈攻击、病毒或恶意软件感染、尽早发现可能的安全漏洞、非必要的权限许可等。主流测试方法为:设计审查、白盒代码安全性审查、黑盒安全审计。

    5)可移植性测试:测试目标是确保移动应用软件在不同的主流移动设备上能够正确安装、启动和卸载,以及能够正确、平稳地运行。主流测试方法为:人工测试和众包测试、第三方自动化云测试服务。

    6)网络测试:测试目标是模拟不同的网络环境和质量,检测应用软件的健壮性、易用性和稳定性。根据不同的测试目标,可以细分为:弱网测试、无网测试、异常机制测试。主流测试方法有:通过将移动设备连接到PC上进行网络测试;在专有服务器上构建网络Wi-Fi,移动设备连接该Wi-Fi进行网络测试。

4.2 物联网

    物联网检测IoT,是指能够让所有的被独立寻址的普通的物理对象实现互联互通的网络,是一个在互联网、传统电信网等基础上的信息承载体。

    (1)信息交互的基本特征如下图:

    (2)物联网的安全架构如下图:

    (3)物联网测试面临的挑战

    1)软硬件协同网络挑战:物联网是一种结构性的网络,其中各种软硬件紧密耦合,不仅仅是软件的应用,传感器、通信网关等设备也发挥着重要的作用。

    2)模块交互强连接挑战:由于物联网会涉及不同的软硬件组件之间的体系结构,测试必须接近各种实际的情况。当不同的模块之间进行强连接交互,相互融合时,安全性、兼容性等问题都是测过程中会遇到的挑战。

    3)实时数据测试挑战:因为监管测试和试点测试都具有强制性,所以得到实时的数据在测试过程中是非常困难的,测试人员获得监管点也是非常困难的,因此物联网测试过程中的实时数据测试对测试团队来说也是一大挑战。

    4)网络可用性测试挑战:由于物联网中网络连接有着重要的作用。我们需要在不同的网络环境下进行测试,主要目标是在网络中更快地传输数据。这样我们就需要通过改变网络负载、连接和稳定性等网络可用性指标进行测试。

    (4)物联网的测试类型如下:

    1)可用性测试:测试人员需要对物联网设备及其应用程序的每一个功能、数据处理、消息传递等方面进行测试。另一方面,物联网还应该时刻保持互联相通。建立设备的连接,数据的传输以及消息任务的传递都应该是流畅的。

    2)安全测试:物联网是以数据为中心的,所有设备的连接和操作都基于可用的数据,当数据在设备之间进行交换时,数据就很容易在交换过程中被截取,所以在测试过程中就需要检查数据从一个设备传输到另一个设备时是否被保护或加密。

    3)性能测试:物联网性能测试通过各种自动化的测试工具模拟各种正常的、异常的、峰值的条件对物联网应用的性能指标进行测试。性能测试包含了负载测试和压力测试等。

    4)兼容性测试:物联网兼容性测试的内容主要包括操作系统、浏览器、设备、通信模式等的各种版本。

    5)监管测试:指物联网系统测试过程中需要通过多个监管合规的检查点。

    (5)物联网渗透测试技术:指为了发现系统最脆弱的环节,对目标系统的安全性做更深入地探测,通过模拟黑客可能使用的漏洞发现技术和真实的攻击技术进行测试。物联网渗透测试步骤如下:

    1)威胁建模(固件、嵌入式网络、移动应用)

    2)漏洞利用( 固件、嵌入式网络、移动应用)

    3)攻击技术(物联网设备、无线电)

    物联网渗透测试流程如下:

    1)信息收集:通过探知物联网的感知层、网络层和应用层的相关信息进行信息收集。

    2)进行分析:对收集到的信息进行分类、组织、分析进而识别出目标的攻击路径,并且尝试获得目标的访问权限。

    3)针对性开发:针对已经分析出来的可攻击路径模拟真实的攻击。

    4)生成报告:一个成功的渗透测试能够发现漏洞,并提供日志报告,以便提高未来的物联网的安全性。

4.3 大数据

    大数据是将包含结构化、非结构化甚至多结构化的海量数据进行整合,并通过对这些数据的分析来发现数据中隐藏的相关信息,进而优化业务和管理。

    (1)大数据产品的四个特征

    1)数据类型多样:数据不仅仅是文本形式,也有图片、视频、音频等多类型的数据。

    2)数据体量巨大:大数据具有海量的数据规模。

    3)处理速度高速:为了这些海量数据能够得到有效的处理,要求这些数据几乎能够被实时地接收和处理,才能满足大数据应用的需求。

    4)价值密度低:因为数据大量地存在,可能有用的数据分散在其中。

    (2)大数据测试面临的挑战

    1)数据多样性和不完整性

    2)高度扩展性

    3)测试数据管理

    (3)大数据的测试类型

    1)功能测试:前端应用测试能够为数据的验证提供便利。

    2)性能测试:大数据的自动化,能够方便我们在不同的条件下测试目标应用的性能。

    3)数据提取测试:通过测试性地提取数据,可以验证并确保所有的数据均能在大数据应用中被正确地提取和加载。

    4)数据处理测试:在针对大数据的处理策略上,我们需要运用数据自动化工具,重点关注数据的获取与处理过程,通过比较输出文件和输入文件,来验证业务逻辑是否能够被正确地实现。

    5)数据存储测试:借助大数据自动化测试工具,测试人员可以通过将输出数据与数据库中的数据进行比较,来验证输出数据是否已正确地被加载到了数据库中。

    6)数据迁移测试:当应用程序被迁移到其他服务器,或发生任何技术变更时,我们都需要通过软件测试,来验证数据从旧的传统系统迁移到新系统的过程中,所经历的停机时间最少,而且不会造成任何数据丢失。

    (4)大数据测试流程如下:

    (5)常见的大数据测试工具:Hadoop、HPCC、Storm、Cloudera、Cassandra.

4.4 可信软件 

    是指软件系统的动态行为及其结果是符合人们预期,并在受到干扰时仍能提供连续服务的软件,这里的“干扰”包括操作错误、环境影响和外部攻击等。

    (1)软件可信评估与传统的软件质量测量的区别如下:

    1)软件在运行时可能会受到木马、病毒、窃听等外界的恶意攻击,传统的仅考虑自身系统质量的质量测量已难以适用,需考虑软件实际运行时的适用质量。

    2)传统的质量测量通常针对具体的质量属性,如正确性、容错性、易安装性等,较少考虑不同质量属性的综合。而可信性是软件的可用性、可靠性、安全性、正确性、可预测性等诸多属性在使用层面的综合反映。

   3)传统软件质量测量的客观性交高,而可信评估则是主观与客观的结合。

    (2)可信软件的验证技术:

    1)形式化建模与方法:

  • 通过数据流描述、变量关系描述和软件体系结构描述等图形符号,从形式化需求模型中抽取不同形态的分析模型。
  • 根据软件的特点划分为不同分析目标,为每个验证目标定义出相应的技术。
  • 针对建立的性质集合,采用模型检测的方法自动地发现漏洞与验证软件是否满足高安全可靠性需求。
  • 自动生成测试用例,基于系统模型及需求自动生成关于软件实现的测试用例集,提高系统测试的效率和错误发现能力。
  • 将形式化模型进行仿真。

    2)主流的形式化验证技术如下:

  • 定理证明:1. 把软件系统是否满足性质归约的问题转化为定理的形式,然后通过数学逻辑公式和推导演绎规则进行验证;2.需要人工干预,存在因引入人为因素而影响其验证正确性的隐患。
  • 模型检查:1. 用一个模型转换图对软件系统的程序状态和状态之间的迁移关系进行形象建模,用时态逻辑公式对性质归约进行刻画,然后来验证性质归约是否被满足;2. 与定理证明不同的是,模型检查是高度自动化的,而且能在性质违反时给出反例。

    3)可信软件的验证工具: Spin、NuSMV、Atelier-B

4.5 人工智能

    人工智能是一种思维和响应方式与人的方式相似的自动化计算技术。狭义的人工智能是指描述或完成具体的任务,例如棋牌对弈、语言翻译、自动驾驶、图像识别等;广义的人工智能是指能够完成多种工作,并能够根据推理在这些任务之间切换。

    (1)人工智能在各行各业的应用:自然语言处理、虚拟现实、语言翻译、广告推送、人脸识别、X光医学影像判断、作曲、案情分析、围棋比赛等等。

    (2)人工智能对软件测试技术的影响:

    1)测试工作前移:人工智能对软件测试的显著影响之一,就是使测试工作前移成为可能。

    2)自动化程度提高:测试项目管理、测试需求分析与测试设计、测试执行

    3)测试更可靠:软件测试的可靠性,主要通过测试的充分性和有效性体现

    (3)人工智能会取代测试人员吗?

    1)软件测试行业由于其工作类型的性质,不太可能被完全取代。

    2)软件测试中有关数据处理的工作,未来会被取代

    3)人工智能在软件测试中的应用还会催生出一些新的富有挑战的工作类型。

    (4)人工智能辅助测试技术:

    1)基于约束的技术:将被测程序或其模型,以及测试准测或测试目标转换为约束,然后通过约束消解器消解约束,最终获得测试用例。

    2)启发式搜索算法:遗传算法、蚂蚁算法、模拟退火算法。

 

 

 

相关文章:

软件测试基础知识(2) -- 软件评测师(十三)

3 基于风险的测试 风险是当前未发生而未来有肯会发生并造成一定负面影响的事件。 3.1 基于风险的测试概述 (1)测试计划内容的核心: 1)测什么:从风险出发,需要明确地列举出要测试哪些具体的功能和非功能的质…...

axios 在请求拦截器中设置Content-Type无效问题

Axios 会根据请求数据自动设置 Content-Type: 当请求体为空时,Axios 会移除 Content-Type 头部 当请求体为对象时,默认设置为 application/json 当请求体为 URLSearchParams 时,默认设置为 application/x-www-form-urlencoded …...

MFC案例:使用键盘按键放大、缩小窗口图像的实验

当在对话框窗口居中显示一幅图像时,图像的尺寸可能大于或小于窗口的尺寸,这时我们希望通过使用按键“”进行图像放大显示,使用按键“-”进行缩小显示(当然也可以使用其它按键)。下面开始使用MFC进行这个实验&#xff0…...

本地(NAS/服务器)与云端(Docker/Kubernetes)部署详解与对比

本地(NAS/服务器)与云端(Docker/Kubernetes)部署详解与对比 一、本地部署(NAS/服务器) 适用场景: 需要完全控制硬件和数据(如隐私敏感场景)。小规模应用或测试环境。网…...

如何解决极狐GitLab 合并冲突?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 合并冲突 (BASIC ALL) 合并冲突发生在合并请求的两个分支(源分支和目标分支)对相同代码行进行了不同…...

DeepSeek在物联网设备中的应用:通过轻量化模型实现本地化数据分析

文章目录 一、引言二、DeepSeek轻量化模型的技术原理1. 模型量化2. 模型剪枝3. 动态精度调整 三、本地化数据分析的实现路径1. 硬件环境配置2. 模型加载与推理3. 数据预处理与后处理 四、行业应用案例1. 医疗智能穿戴设备2. 工业设备预测性维护3. 智能家居能耗优化 五、性能优化…...

opencv--图像

像素(像素点) 定义: Pixel 是 Picture Element(图像元素)的缩写,是数字图像中最小的独立单位。每个像素代表图像中的一个点的颜色和亮度信息。 关键特性: 颜色:通过不同的色彩模型(如RGB、CMYK…...

【KWDB 创作者计划】_嵌入式硬件篇---数字电子器件

文章目录 前言一、系列前缀(如 "74" 或 "54")74(商用级)54(工业级)二、逻辑家族(如 "LS"、"HC"、"HCT" 等)TTL(晶体管-晶体管逻辑)家族CMOS(互补金属氧化物半导体)家族BiCMOS(双极 CMOS)家族三、功能编号(如…...

前端加密介绍与实战

前端数据加密 文章目录 前端数据加密前端数据加密介绍为什么需要前端数据加密?前端数据加密的常见方式前端数据加密的实现场景:加密用户密码并发送到后端步骤 1:安装加密库步骤 2:实现加密逻辑步骤 3:后端解密 实战总结…...

DAG(有向无环图)计算模型面试内容整理-拓扑排序(Topological Sort)和节点依赖与并行度

拓扑排序(Topological Sort) 拓扑排序(Topological Sort): 拓扑排序是针对有向无环图(DAG)的一种线性排序方法。这种排序方法的特点是,对于DAG中的每一条有向边 (A → B),在拓扑排序中节点A总是排在节点B之前。...

AI语音助手自定义角色百度大模型 【全新AI开发套件掌上AI+4w字教程+零基础上手】

1、简介 此项目主要使用ESP32-S3实现一个自定义角色的AI语音聊天助手(比如医生角色),可以通过该项目熟悉ESP32-S3 arduino的开发,百度语音识别,百度语音合成API调用,百度APPBuilder API的调用实现自定义角…...

【Java面试笔记:基础】13.谈谈接口和抽象类有什么区别?

在 Java 中,接口(Interface) 和 抽象类(Abstract Class) 都是实现多态和代码抽象的机制,但它们在设计目的、语法特性及使用场景上有显著差异。 1. 接口和抽象类的区别 接口(Interface) 定义:接口是对行为的抽象,是抽象方法的集合,用于定义 API 规范。 特点: 不能…...

内存管理(Linux程序设计)

内存管理 目录 内存管理 一.简单的内存分配 代码功能概述 代码流程图 变量声明 动态内存分配 内存分配错误检查 向内存写入字符串 设置退出状态并退出程序 二.请求全部的物理内存 代码功能概述 变量声明 三..可用内存 四.滥用内存 1.代码功能(预期 …...

Prompt 结构化提示工程

Prompt 结构化提示工程 目前ai开发工具都大同小异,随着deepseek的流行,ai工具的能力都差不太多,功能基本都覆盖到了。而prompt能力反而是需要更加关注的(说白了就是能不能把需求清晰的输出成文档)。因此大家可能需要加…...

Postman设置了Cookies但是请求不携带Cookie

1 问题说明 使用Postman工具往往要向本地服务器发送请求携带Cookie便于测试接口,但是在Send下面的Cookies选项中设置域名127.0.0.1,并添加Cookie,发现发送的请求怎么都不会携带Cookie: 通过Fiddler抓包发现并没有Cookie&#xff1…...

微服务Nacos组件的介绍、安装、使用

微服务Nacos组件的介绍、安装、使用 在微服务架构日渐普及的今天,服务注册与配置管理成了系统架构中的关键环节。阿里巴巴开源的 Nacos(Naming and Configuration Service)正是解决这一问题的利器。本文将为你全面介绍 Nacos 的概念、安装方…...

深度剖析塔能科技精准节能方案:技术创新与实践价值

在能源管理领域不断追求高效与可持续发展的进程中,塔能科技的精准节能方案逐渐成为行业内备受瞩目的焦点。 精准节能:核心技术与实现路径 塔能科技的精准节能理念建立在对能源消耗的精细监测与深度分析基础之上。以其节能管理平台为例,该平台…...

AI PPT创作原理解析:让你的演示文稿更智能

在当今信息爆炸的时代,演示文稿已成为我们工作和学习中不可或缺的一部分。然而,制作一份高质量的PPT往往需要投入大量的时间和精力。随着人工智能技术的迅猛发展,AI PPT创作工具应运而生,极大地简化了PPT的制作过程。本文将深入解…...

ollama本地搭建大模型

dajdaj人工智能,现在流行的大模型有很多,像流行的:gpt-3.5-turbo、通义千问2.5,Llama3; 本地安装大模型有什么好处 大模型都是开源的,安装在自己的电脑上也是免费使用的;可以结合自己的私有文…...

AIGC(生成式AI)试用 31 -- AI做软件程序测试 2

接上文 AIGC(生成式AI)试用 30 -- AI做软件程序测试 1 整合测试项提问并输出测试用例思考并调整提问方式,为完整的输年程序测试提问准备 - 再次对需求提问 --> 实际是之前的提问记录找不到了,不过有新发现;不妨后…...

【深度学习与大模型基础】第13章-什么是机器学习

1. 什么是机器学习? 想象你在教一个小朋友认猫: 传统编程:你写一本《猫的100条特征手册》(比如有胡须、尖耳朵),让计算机对照检查。 机器学习:你直接给计算机看1000张猫和狗的图片&#xff0c…...

大数据利器Kafka

大数据利器Kafka:从入门到实战的全面指南 在大数据的世界里,Kafka就像是一个高效的“数据快递员”,负责在不同的系统之间快速、可靠地传递数据。今天,咱们就一起来深入了解一下这个强大的工具。Kafka是由LinkedIn开发的分布式发布…...

工具指南:免费将 PDF 转换为 Word 的 10 个工具

可移植文档格式或 PDF 是大多数企业使用的流行文件格式,主要用于共享项目材料并确保整个团队协同工作。它还有助于避免处理大量文档和丢失关键数据。使用顶级 PDF 转换器还可以更轻松地高效地进行日常活动。企业可以依靠专业的文档扫描服务对其他格式的文档进行 PDF…...

Elasticsearch复习笔记

文章目录 ES 基础为什么用 Elasticsearch初识和安装概述安装 elasticsearch安装 Kibana 倒排索引正向索引倒排索引正向和倒排 基础概念文档和字段索引和映射MySQL 和 elasticsearch IK 分词器安装 IK 分词器使用 IK 分词器拓展词典 ES 索引库操作Mapping 映射属性ES 索引库的 C…...

STM32 SysTick定时器

一、SysTick系统定时器概述 1.1 什么是SysTick定时器 SysTick(System Tick Timer)是ARM Cortex-M系列处理器内核集成的24位系统定时器,作为ARM架构的标准外设,它被深度整合在NVIC(嵌套向量中断控制器)中。…...

Modbus TCP协议介绍、原理解析与应用示例

深入了解Modbus TCP协议:介绍、原理解析与应用示例 在工业自动化领域,设备之间的通信与数据交换至关重要。Modbus协议作为一种经典的通信协议,因其简单、开放和易于实现的特点,被广泛应用于各种工业设备之间的数据传输。而Modbus…...

Elasticsearch 报错 Limit of total fields [1000] has been exceeded

一、错误代码: spring boot 链接es 插入审计日志数据报错: Caused by: org.elasticsearch.ElasticsearchException: Elasticsearch exception [typeillegal_argument_exception, reasonLimit of total fields [1000] has been exceeded while adding ne…...

maven中pom.xml setting.xml关系

1 在Spring Boot项目中&#xff0c;pom.xml和settings.xml文件都可以配置Maven仓库地址&#xff0c;但它们的作用和优先级有所不同。 ● settings.xml&#xff1a; ○ 配置本地仓库&#xff1a;使用 <localRepository> 元素指定本地仓库的路径。 ○ 配…...

PubLayNet:文档布局分析领域的大规模数据集

PubLayNet&#xff1a;文档布局分析领域的大规模数据集 1. 数据集概述 PubLayNet&#xff08;Public Layout Network&#xff09;是由IBM AUR NLP团队开发的大规模文档图像数据集&#xff0c;旨在推动文档理解与布局分析领域的研究。该数据集通过自动标注技术&#xff0c;对科…...

JAVA----方法

好久没发博客了~~~~~重生之我开始补知识 1.What is 方法&#xff08;method&#xff09; 方法是程序中最小的执行单元。 简单来说&#xff0c;就是将一些重复代码打包&#xff0c;要用的时候我们进行调用就好&#xff01; e.g. public static void main&#xff08;String…...

mybatis xml中特殊字符处理

1&#xff0c;CDATA区&#xff1a; 它的全称为character data,以"<![CDATA[ "开始&#xff0c;以" ]]>" 结束&#xff0c;在两者之间嵌入不想被解析程序解析的原始数据&#xff0c;解析器不对CDATA区中的内容进行解析&#xff0c;而是将这些数据原封…...

vue3+dhtmlx 甘特图真是案例

使用vue3 ts dhtmlx 实现项目任务甘特图展示 支持拖拽&#xff0c;选择人员&#xff0c;优先级&#xff0c;开发状态&#xff0c;进度 效果图 完整代码 安装命令&#xff1a;npm i dhtmlx-gantt <template><div style"height: 100%; background-color: white…...

Chrome/Edge浏览器使用多屏完美解决方案,http部署使用https部署的功能

多屏使用场景&#xff1a;例如1屏显示录入操作界面&#xff0c;2屏显示SOP。或者每个屏上显示不同的看板内容等 废话不少说&#xff0c;直接上代码&#xff1a;将下面的代码复制到txt记事本里&#xff0c;保存为html格式即可本地观看效果 <!DOCTYPE html> <html>…...

Linux中进程的属性:状态

一、通用OS进程中的各种状态与相关概念 1.1通用进程中的状态 CPU执行进程代码&#xff0c;不是把进程执行完才开始执行下一个&#xff0c;而是给每个进程预分配一个“时间片”&#xff0c; CPU基于时间片进行轮转调度&#xff08;每个CPU分别进行&#xff09; 其中发涉及到的…...

软件架构师常用的软件工具有哪些

软件架构师的工作离不开多种工具的支撑&#xff0c;主要包括 建模与设计工具、文档与协作平台、代码质量与静态分析工具、性能与监控工具、DevOps 工具链、架构可视化与管理平台 等。其中&#xff0c;建模与设计工具 是架构师最核心的武器&#xff0c;能够帮助其从业务抽象到技…...

rl中,GRPO损失函数详解。

文章目录 **一、GRPO损失函数的设计背景****二、代码逐行解析****三、关键组件详解****1. 对数概率与KL散度计算****2. 优势值与策略梯度****3. 掩码与平均损失****四、训练动态与调参建议**在TRL(Transformer Reinforcement Learning)库中,GRPO(Group Relative Policy Opt…...

奇安信春招面试题

奇安信面试真题&#xff0c;以下是5道具有代表性的经典技术面试题及其解析&#xff0c;覆盖网络安全、渗透测试、安全架构设计等核心领域。 《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.…...

MineWorld,微软研究院开源的实时交互式世界模型

MineWorld是什么 MineWorld是微软研究院开发并开源的一个基于《我的世界》&#xff08;Minecraft&#xff09;的实时互动世界模型。该模型采用了视觉-动作自回归Transformer架构&#xff0c;将游戏场景和玩家动作转化为离散的token ID&#xff0c;并通过下一个token的预测进行…...

Nginx RTMP配置存储位置

window&#xff1a; 支持本地磁盘和远程网络位置 配置文件如下 worker_processes 1;events {worker_connections 1024; }#RTMP服务 rtmp {server { listen 1935; #监听端口chunk_size 4096; #数据传输块大小application my_live { # 创建rtmp应用hlslive on; # 当路径匹…...

JVM理解(通俗易懂)

虽然网上有很多关于JVM的教程,但是都天花乱坠,很多都是一上来就JVM内存模型、JVM双亲委派等等,(可能我比较菜看不懂)。于是我自己决定写一篇能看懂的文章~如果有看不懂我就自己百度,大家有什么疑问也可以评论区交流~ 欢迎指点我的Error~ JVM概念 JVM大家都知道,就Ja…...

python三维矩阵的维度

matrix_3x3x3 np.array([[[ 8.35, 16.72, 17.46],[16.72, 33.49, 34.97],[17.46, 34.97, 36.51]],[[16.72, 33.49, 34.97],[33.49, 67.09, 70.05],[34.97, 70.05, 73.13]],[[17.46, 34.97, 36.51],[34.97, 70.05, 73.13],[36.51, 73.13, 76.35]] ]) 例如这样的三维矩阵&#…...

HarmonyOS 是 Android 套壳嘛?

文章目录 HarmonyOS 是 Android 套壳吗&#xff1f;技术视角的深度解析一、核心结论二、技术对比&#xff1a;从底层到应用层1. 内核与基础架构2. 应用开发与运行机制3. 生态与应用场景 三、常见误解的澄清误解 1&#xff1a;“HarmonyOS 使用 Android 应用&#xff0c;所以是套…...

【Java面试笔记:基础】10.如何保证集合是线程安全的? ConcurrentHashMap如何实现高效地线程安全?

1. 保证集合线程安全的方式 传统同步容器:如 Hashtable 和 Vector,通过在方法上加 synchronized 关键字实现线程安全,但性能较低。同步包装器:通过 Collections.synchronizedMap 等方法将普通集合包装成线程安全的集合,但仍然使用粗粒度的锁,性能不佳。List<String>…...

【Amazing晶焱科技高速 CAN Bus 传输与 TVS/ESD/EOS 保护,将是车用电子的生死关键无标题】

台北国际车用电子展是亚洲地区重量级的车用电子科技盛会&#xff0c;聚焦于 ADAS、电动车动力系统、智慧座舱、人机界面、车联网等领域。各大车厂与 Tier 1 供应链无不摩拳擦掌&#xff0c;推出最新技术与创新解决方案。 而今年&#xff0c;“智慧座舱” 无疑将成为全场焦点&am…...

电控---DMP库

一、DMP库的本质与核心定位 DMP库是为Invensense&#xff08;现TDK&#xff09;系列传感器&#xff08;如MPU6050、MPU9250等&#xff09;内置的数字运动处理器&#xff08;DMP&#xff09;硬件模块提供的软件接口层。其核心目标是&#xff1a; 抽象硬件操作&#xff1a;将复…...

YOLO数据处理

YOLO&#xff08;You Only Look Once&#xff09;的数据处理流程是为了解决目标检测领域的核心挑战&#xff0c;核心目标是为模型训练和推理提供高效、规范化的数据输入。其设计方法系统性地解决了以下关键问题&#xff0c;并对应发展了成熟的技术方案&#xff1a; 一、解决的问…...

Linux实现网络计数器

1.TcpServer.hpp文件 类TcpServer的私有成员变量有端口号&#xff0c;指向类Socket对象的指针&#xff0c;布尔值表示是否运行&#xff0c;以及回调函数&#xff0c;ioservice_t是表示参数为指向Socket对象的指针和InetAddr对象的函数&#xff0c;TcpServer类的构造函数接收端…...

数据分析:用Excel做周报

目录 1.初始模板 ​编辑 2.填充数据 2.1 日期以及表头 2.2 数据验证 2.3 计算数据填充 2.3.1 灵活计算 2.3.2 单独计算 2.3.3 总计 2.4 数据格式 2.5 周累计 2.6 周环比 2.7 业务进度 3 美化 1.初始模板 2.填充数据 2.1 日期以及表头 结果指标有以下这些&#…...

初阶数据结构--排序算法(全解析!!!)

排序 1. 排序的概念 排序&#xff1a;所谓排序,就是使一串记录&#xff0c;按照其中的某个或某些些关键字的大小&#xff0c;递增或递减的排列起来的操作。 2. 常见的排序算法 3. 实现常见的排序算法 以下排序算法均是以排升序为示例。 3.1 插入排序 基本思想&#xff1a;…...

SpringCloud 微服务复习笔记

文章目录 微服务概述单体架构微服务架构 微服务拆分微服务拆分原则拆分实战第一步&#xff1a;创建一个新工程第二步&#xff1a;创建对应模块第三步&#xff1a;引入依赖第四步&#xff1a;被配置文件拷贝过来第五步&#xff1a;把对应的东西全部拷过来第六步&#xff1a;创建…...