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

单元测试、集成测试、系统测试、验收测试、压力测试、性能测试、安全性测试、兼容性测试、回归测试(超详细的分类介绍及教学)

目录

1.单元测试

实现单元测试的方法:

     注意事项:

2.集成测试

   需注意事项:

实现集成测试的方法:

如何实现高效且可靠的集成测试:

3.系统测试

实现系统测试的方法:

须知注意事项:

4.验收测试

实现验收测试的方法:

   注意事项:

5.压力测试

实现压力测试的方法:

   注意事项:

6.性能测试

实现性能测试的方法:

7.安全性测试

实现安全性测试的方法:

8.兼容性测试

兼容性测试通常涉及以下方面:

实现兼容性测试的方法:

9.回归测试

回归测试的步骤如下:

实现回归测试的方法:


软件测试是一个关键环节,主要包括以下几个阶段的测试:

1)单元测试

2)集成测试

3)系统测试

4)验收测试

5)压力测试

6)性能测试

7)安全性测试

8)兼容性测试

9)回归测试

1.单元测试

单元测试是软件开发过程中的一项重要的测试方法,用于测试程序的基本单元(函数、方法、类等)是否按照设计要求正常工作。单元测试的目的是验证代码的正确性,提高代码质量和可维护性。

在单元测试中,开发人员通过编写测试用例,针对函数、方法、类等具体的单元进行测试。测试用例包括输入数据、预期输出和实际输出。通过对比预期输出和实际输出,开发人员可以判断被测试单元是否符合预期。

单元测试有以下几个特点:

1)独立性:每个单元测试都应该是独立的,不依赖于其他模块或者外部资源。

2)自动化:单元测试应该是自动执行的,可以通过脚本或者测试框架来实现自动化。

3)可重复性:每次运行单元测试的结果应该是一致的,不受环境变化的影响。

4)快速性:单元测试应该快速执行,以便频繁运行,及时发现问题。

单元测试可以帮助开发人员及时发现和修复代码中的错误,提高代码质量和稳定性。同时,单元测试还可以提供文档性质的代码示例,方便其他开发人员理解和使用代码。

常用的单元测试框架有JUnit、Pytest、Mocha等,开发人员可以根据自己的项目需求选择合适的框架进行单元测试的编写和执行。

实现单元测试的方法:

1)选择单元测试框架:根据项目的开发语言和需求,选择适合的单元测试框架。常见的单元测试框架有JUnit、Pytest、Mocha等。
2)编写测试用例:针对每个被测试的单元(函数、方法、类等),编写相应的测试用例。测试用例应包括输入数据、预期输出和实际输出。

3)执行单元测试:使用选择的单元测试框架,执行编写的测试用例。可以通过命令行或者集成开发环境工具来执行单元测试。

4)检查测试结果:检查单元测试的运行结果,判断每个测试用例是否通过。可以通过测试框架提供的断言方法或者自定义的断言逻辑来检查实际输出和预期输出是否一致。

5)修复错误:如果测试用例没有通过,说明被测试单元存在问题。开发人员需要根据测试结果定位问题,并进行代码修复。

6)重复执行测试:进行代码修复后,再次执行单元测试,确保修改后的代码通过所有的测试用例。

7)运行测试覆盖率分析:使用测试覆盖率工具,分析单元测试对于代码的覆盖程度。可以根据分析结果,进一步完善测试用例,提高测试覆盖率。

8)持续集成:将单元测试与持续集成工具集成,确保每次代码的提交都会自动执行单元测试。这样可以及时发现和修复代码中的问题。

     注意事项:

···测试用例应该涵盖各种边界情况,以覆盖代码的各种执行路径。

···单元测试应该独立于其他模块和外部资源,并且不应该依赖于具体的执行顺序。

···单元测试应该是可重复的,即每次运行结果都应该是一致的。

···开发人员应该及时运行单元测试,并及时修复测试用例未通过的问题。

···单元测试的代码应该和被测试的代码保持同步更新,以确保测试的准确性。

2.集成测试

集成测试是一种测试方法,旨在测试多个组件、子系统或服务的集成,以确保它们在协同工作时能够按预期进行。以下是集成测试的一般步骤和方法

1)确定测试范围:确定要进行集成测试的组件、子系统或服务。这些组件可以是多个函数、类、模块、包、API或其他可独立测试的单元。

2)定义测试环境:设置一个测试环境,包括所需的硬件、软件和网络配置。确保测试环境与实际生产环境相似。

3)编写测试用例:根据系统设计和需求,编写集成测试用例。测试用例应该包括多个组件的交互场景和预期结果。

4)设置测试数据:准备适当的测试数据,以模拟实际的使用情况。测试数据应包括各种情况,如正常情况、边界情况和异常情况。

5)执行集成测试:按照定义的测试用例和测试数据,执行集成测试。测试过程中应记录测试的执行时间、结果和日志。

6)分析测试结果:检查测试结果,比较实际输出和预期输出。如果测试用例失败,需要进行故障排除,找出问题的根本原因。

7)修复错误:根据测试结果和故障排除的结果,进行代码修复或配置调整。修复后需要重新执行集成测试,确保修复的有效性。
8)运行回归测试:在每次集成测试后,运行回归测试以确保之前通过的测试用例仍然通过。这有助于检测新修复引入的错误。

9)持续集成:将集成测试与持续集成工具集成,确保每次代码提交都会自动执行集成测试。这有助于及时发现和修复代码中的问题

   需注意事项:

···集成测试需要模拟真实场景下的各种外部依赖,如数据库、服务、网络等。可以使用模拟工具来模拟这些依赖关系。

···需要确保集成测试的可重复性,即每次执行的结果都应该是一致的。这可以通过设置隔离的测试环境和恢复测试环境的状态来实现。

···集成测试应该着重测试组件之间的交互和协作,而不仅仅是测试每个组件的独立功能。

···集成测试应该尽可能地覆盖各种交互场景和边界情况,以确保系统在各种情况下都能按预期运行。

实现集成测试的方法:

要实现集成测试,可以采用以下不同的方法:

1)模块驱动集成测试(Top-down Approach):从顶层开始,逐步添加和测试下层模块。首先构建和测试系统的最高级别的模块或组件,然后逐渐添加和测试更低级别的模块,直到所有模块都被整合和测试。

2)自底向上集成测试(Bottom-up Approach):从最低级别的模块或组件开始,逐步添加和测试上层模块。首先构建和测试系统的最低级别的模块或组件,然后逐渐添加和测试更高级别的模块,直到所有模块都被整合和测试。

3)混合集成测试(Sandwich Approach):结合模块驱动集成测试和自底向上集成测试的方法。在这种方法中,可以从顶层开始进行模块驱动的集成测试,并在测试过程中逐步添加和测试低级别的模块。

4)链式集成测试(Big Bang Approach):在此方法中,所有模块或组件一次性整合到系统中,并进行全面的测试。这是一种简单直接的方法,但可能会导致难以找到和解决集成问题。

5)模拟和仿真:在集成测试中使用模拟和仿真工具来模拟外部依赖、模拟网络通信等,以确保测试环境的可控性和可重复性。

6)并行集成测试:在并行开发环境中,各个模块可以同时进行集成测试,以加快整体测试的速度。这种方法需要确保各个模块之间的接口规范明确和一致性。

7)异步和同步集成测试:在异步集成测试中,模块可以独立地进行测试,并在必要时通过消息传递或事件驱动机制进行交互。而在同步集成测试中,模块之间的交互是同步的,需等待其他模块的响应。

如何实现高效且可靠的集成测试:

  • 遵循良好的模块设计和接口规范,以确保模块之间的交互和集成是可靠和可预测的。

  • 创建可重复的测试环境,使每次集成测试的结果都是一致的。

  • 编写全面和多样化的集成测试用例,以覆盖各种交互场景和边界情况。

  • 记录并分析测试结果,及时解决集成问题并进行修复。

3.系统测试

系统测试是软件开发生命周期中的一个阶段,用于测试整个系统是否满足指定的需求和功能。它是在完成单元测试和集成测试后进行的最终测试阶段。系统测试的目标是验证整个系统的功能、性能、可靠性、安全性等方面,以确保系统在实际使用中能够正常运行并满足用户的期望。

实现系统测试的方法:

1)功能测试:验证系统是否按照规格要求正常工作,包括验证系统的各项功能是否满足用户需求和预期。
2)性能测试:测试系统在各种负载和压力下的性能表现,包括系统的响应时间、吞吐量、并发性等指标。

3)可靠性测试:测试系统的可靠性和稳定性,包括系统的容错能力、恢复能力,以及系统是否能够在长时间运行中保持稳定。

4)安全性测试:测试系统的安全性和防护措施,包括验证系统是否易受攻击、是否存在潜在的安全漏洞等。

5)兼容性测试:测试系统在不同硬件、操作系统、浏览器等环境下的兼容性,确保系统能够稳定运行并正确显示。

6)用户界面测试:测试系统的用户界面是否直观、易用,并且符合用户的期望。

7)验收测试:在系统交付给用户之前,由用户或用户代表对系统进行测试和验证,确保系统满足用户的要求和预期。

须知注意事项:

在进行系统测试时,应该制定系统测试计划,明确测试的目标、范围和方法。测试人员应根据需求和规格文档编写测试用例,并执行测试用例,记录测试结果和问题。发现的问题应及时进行修复和验证。测试过程中还应做好测试环境的配置和管理,确保测试环境的稳定和一致性。系统测试是确保软件交付前质量的重要环节,它帮助发现和解决问题,提高系统的可靠性和用户满意度。

4.验收测试

验收测试是软件开发生命周期中的最后一个阶段,主要用于验证软件是否符合用户需求和预期。它是由用户或用户代表负责执行的测试,目的是确认软件是否可以交付给用户使用。

验收测试的主要方法包括:

1)需求确认:确认软件开发过程中所定义的需求是否被满足。测试团队和用户代表应该仔细审查需求文档,并使用这些需求文档作为参考,验证软件是否满足用户的需求。

2)功能测试:验证软件的各项功能是否按照需求文档和规格说明书的规定进行了正确的实现。测试人员应根据需求文档编写测试用例,并通过执行测试用例来验证软件的功能是否能够正常工作。

3)用户界面测试:测试软件的用户界面是否符合用户的期望和需求,包括界面的布局、颜色、字体、图标等方面。测试人员可以通过模拟用户的操作,测试软件的用户界面是否易用、直观。

4)性能测试:测试软件在各种负载和压力下的性能表现,包括系统的响应时间、吞吐量、并发性等指标。测试人员可以使用性能测试工具模拟多种负载情况,来验证软件在实际使用中的性能表现。

5)安全性测试:测试软件的安全性和防护措施,包括验证软件是否易受攻击、是否存在安全漏洞等。测试人员可以使用安全测试工具和方法,对软件进行安全性的评估和测试。

6)兼容性测试:测试软件在不同硬件、操作系统、浏览器等环境下的兼容性,确保软件能够在多种环境下正常运行并正确显示。

···验收测试的结果应该由用户或用户代表进行评估,根据测试结果决定软件是否可以交付给用户使用。如果发现问题或缺陷,测试人员应及时报告给开发团队进行修复。验收测试的目标是确保软件能够满足用户的需求和预期,提高用户满意度。

实现验收测试的方法:

1)确定验收测试的目标和范围:明确要测试的软件功能、用户需求和预期结果
 

2)制定测试计划:根据软件的需求文档和规格说明书,制定详细的测试计划,包括测试的时间安排、资源需求和测试的具体内容。

3)编写测试用例:根据需求文档和用户的期望结果,编写验收测试用例,用于验证软件是否符合用户的需求。

4)执行测试用例:按照测试计划和测试用例,执行测试任务,将软件的功能和性能与用户需求进行比较。

5)记录和报告测试结果:记录测试过程中发现的问题和缺陷,并生成测试报告,向开发团队汇报测试结果。

6)确认和验收:与用户或用户代表进行确认和验收,让他们对软件进行评估,确定是否满足用户的需求和预期。

7)进行回归测试:如果在验收测试过程中发现了问题和缺陷,开发团队需要进行修复和修改,并重新进行测试,确保问题得到解决并验收。

8)完成测试:当软件通过验收测试并满足用户的需求时,测试任务可以宣布完成。

   注意事项:

···验收测试的重点是用户需求和预期结果的验证,测试团队应与用户或用户代表紧密合作,确保测试的有效性和准确性。同时,还需要根据不同的项目和实际情况,灵活调整测试方法和策略,以满足特定需求的测试要求。

5.压力测试

压力测试用于模拟并评估系统在正常或超负荷条件下的性能和稳定性。其目的是确定系统的极限容量和性能瓶颈,以便提前发现和解决问题,确保系统能够在实际使用中正常工作。

实现压力测试的方法:

1)确定测试的目标和需求:明确要测试的系统特征和性能指标,如响应时间、吞吐量、并发用户数等。
2)设计测试场景和负载模型:根据实际使用情况和需求,设计模拟用户行为和负载模型。可以使用工具或编写自定义脚本来生成并发请求和交互行为。

3)配置测试环境:搭建测试环境,包括硬件和软件配置。根据需求可能需要使用多台服务器或模拟网络环境来模拟实际的负载情况。

4)执行压力测试:按照设计的测试场景和负载模型,使用工具或脚本模拟并发用户的请求,并对系统进行大量请求的并发。记录系统的性能指标和行为。

5)监测和分析性能指标:在测试过程中监测系统的性能指标,如响应时间、吞吐量、资源利用率等。分析测试结果,找出性能瓶颈和性能问题。

6)优化和调整系统:根据测试结果,对系统进行优化和调整,解决性能瓶颈和问题。可以进行系统架构调整、代码优化或资源增加等。

7)重复测试和验证:根据修改后的系统,再次进行压力测试,验证性能优化的效果和稳定性。如果需要,可以多次重复测试和微调。

8)生成测试报告和总结:根据测试结果和分析,生成详细的测试报告,总结测试过程中的发现和问题。提供给开发团队和决策者参考

   注意事项:

压力测试需要在一个控制的测试环境中进行,以避免对实际生产环境造成影响。同时,测试过程中要注意监测系统的性能和稳定性,确保系统不会因为测试而崩溃或无法恢复。

6.性能测试

性能测试是用于评估系统在不同负载条件下的性能指标,比如响应时间、吞吐量、并发用户数等。其目的是验证系统的性能是否符合预期,并找出潜在的性能瓶颈和问题,以便进行优化和改进。

实现性能测试的方法:

1)定义性能测试目标:明确要测试的系统性能指标,如响应时间、吞吐量、并发用户数等。根据系统需求和实际使用场景设定合理的性能目标。

2)设计测试场景和负载模型:根据实际使用情况和需求,设计模拟用户行为和负载模型。可以使用工具或编写自定义脚本来模拟用户请求和交互行为。
3)配置测试环境:搭建测试环境,包括硬件和软件配置。确保测试环境与实际生产环境相似,并保证测试环境的稳定性和可靠性。
4)收集基准数据:在正常的负载条件下,收集系统的基准数据,如响应时间、吞吐量、资源利用率等。这些数据将作为性能测试的对比标准。
5)执行性能测试:按照设计的测试场景和负载模型,使用工具或脚本模拟用户请求并对系统进行性能测试。记录系统在不同负载条件下的性能指标,并进行性能监控。

6)监测和分析性能指标:在测试过程中监测系统的性能指标,如响应时间、吞吐量、资源利用率等。分析测试结果,找出性能瓶颈和性能问题。
7)优化和调整系统:根据测试结果,对系统进行优化和调整,解决性能瓶颈和问题。可以进行代码优化、系统配置调整或资源增加等。8)重复测试和验证:根据修改后的系统,再次进行性能测试,验证性能优化的效果和稳定性。如果需要,可以多次重复测试和微调。
9)生成测试报告和总结:根据测试结果和分析,生成详细的测试报告,总结测试过程中的发现和问题。提供给开发团队和决策者参考。

···性能测试需要在一个控制的测试环境中进行,以避免对实际生产环境造成影响。同时,测试过程中要注意监测系统的性能和稳定性,确保系统不会因为测试而崩溃或无法恢复。

7.安全性测试

安全性测试是用于评估系统在安全方面的强度和脆弱性,以及发现潜在的安全漏洞和风险。其目的是确保系统在面临安全攻击和威胁时能够保持数据的机密性、完整性和可用性。

实现安全性测试的方法:

1)确定安全测试目标:明确要测试的安全指标,如身份验证、授权访问、数据保护等。根据系统需求和预期风险设定合理的安全目标。
2)安全需求分析:分析系统的安全需求,了解系统中可能存在的安全风险和漏洞。根据安全标准和最佳实践,制定测试计划和策略。

3)设计安全测试用例:根据安全需求和系统的特点,设计安全测试用例。涵盖身份验证、授权访问、数据保护等方面的测试。可以使用工具或手动测试的方式来执行测试用例。

4)进行安全漏洞扫描:使用安全测试工具来扫描系统的漏洞和弱点。这些工具可以自动发现系统中的安全风险和常见漏洞。

5)模拟安全攻击:使用模拟攻击工具或手动攻击的方式,对系统进行安全攻击模拟。试图发现系统中的弱点和漏洞。

6)分析测试结果:根据安全测试的结果和报告,分析系统中存在的安全风险和漏洞。评估漏洞的严重性和可能的影响。

7)修复和改进系统:根据安全测试的结果,及时修复系统中发现的安全漏洞和风险。进行系统修复和安全配置调整。
8)重复测试和验证:根据修改后的系统,再次进行安全性测试,验证修复和改进的效果和稳定性。如果需要,可以多次重复测试和微调。
9)安全培训和意识:提供安全培训和意识活动,加强团队和用户在安全方面的知识和意识。确保系统在实际使用中能够保持良好的安全性。

···安全性测试需要在一个控制的测试环境中进行,以避免对实际生产环境造成影响。同时,测试过程中要充分保护系统中的敏感数据和资源,确保测试过程中不会泄露敏感信息。

8.兼容性测试

兼容性测试是一种软件测试方法,用于评估系统在不同的环境、平台和配置下的兼容性。它主要关注系统在各种硬件、操作系统、浏览器、数据库等环境中的稳定性和可靠性,以确保系统无论在哪种配置下都能够正常运行和与其他相关组件无缝集成。

在进行兼容性测试时,测试人员会模拟真实的运行环境和用户场景,例如不同操作系统、不同版本的浏览器、不同网络环境等,来测试系统在这些环境下的表现。测试人员会通过运行各种场景和操作,验证系统能否正确响应用户的操作,以及是否与其他组件或系统无缝交互。

兼容性测试的目标是确认系统在不同的平台和环境中能够正常运行,并且保持一致的用户体验。通过进行兼容性测试,可以发现并解决系统在特定环境中出现的问题和冲突,以确保系统能够在各种环境中提供一致的功能和性能。

兼容性测试通常涉及以下方面:

1.操作系统:测试系统在不同操作系统(如Windows、Mac、Linux等)下的兼容性。
2.浏览器:测试系统在不同浏览器(如Chrome、Firefox、Safari、IE等)中的兼容性。
3.设备:测试系统在不同设备(如计算机、手机、平板等)上的兼容性。
4.数据库:测试系统在不同数据库(如Oracle、MySQL、SQL Server等)中的兼容性。
5.网络环境:测试系统在不同网络环境(如低带宽、高延迟等)下的兼容性。

实现兼容性测试的方法:

1)确定测试范围和目标:确定需要进行兼容性测试的环境和平台。考虑到用户使用的操作系统、浏览器、设备和其他相关组件。

2)创建测试计划:制定详细的测试计划,包括测试的目标、测试策略、测试用例和测试环境。

3)准备测试环境:搭建各种测试环境来模拟用户的实际使用情况,包括不同操作系统、浏览器、设备和网络环境。

4)编写测试用例:根据测试计划编写测试用例,覆盖各种兼容性方面的测试场景,包括不同的组件和配置组合。

5)执行测试用例:执行测试用例并记录测试结果。测试期间需要验证系统在不同环境下的功能和性能。

6)分析测试结果:分析测试结果,确定系统在特定环境下的问题和冲突。与开发团队合作解决这些问题。

7)修复和重新测试:开发团队根据测试结果修复问题并重新测试,确保修复的问题得到解决。

8)重复测试:随着系统的迭代和升级,需要定期重复兼容性测试,以确保系统持续在不同环境下的兼容性。

···在实现兼容性测试时,可以借助各种工具和技术来简化和加速测试过程。例如,可以使用云平台来搭建不同操作系统和浏览器的测试环境。也可以使用自动化测试工具来执行大量的兼容性测试用例,以提高测试效率。总结而言,兼容性测试的实现需要明确测试目标、准备测试环境、编写测试用例、执行测试、分析结果和修复问题。通过持续的测试和改进,可以确保系统在不同环境下的兼容性和稳定性。

9.回归测试

回归测试是软件开发过程中确保在进行软件更新、修改或修复后,已有的功能没有受到影响,仍能正常运行。回归测试旨在验证旧功能是否仍然可用,并检测新修改是否引入了新的错误或问题。

回归测试通常在开发周期的后期进行,以确保软件的稳定和可靠性。回归测试可以通过自动化测试工具或手动执行来完成,具体取决于项目的需求和资源。

回归测试在保证软件质量方面起到了重要的作用,帮助开发团队识别和解决潜在的问题,确保更新后的软件能够正常工作并不会影响用户体验。

回归测试的步骤如下:

1.确定回归测试的范围和目标。
2.创建回归测试套件,包括测试用例和测试脚本。
3.执行回归测试,检查已有功能是否受到影响。
4.分析测试结果,发现和报告新引入的错误或问题。
5.修复错误并重新执行回归测试,直到确认软件的稳定性和可靠性。

实现回归测试的方法:

1)手动回归测试:测试人员逐个执行测试用例,验证软件的功能是否正常。这种方法适用于小型项目或者测试用例较少的情况下。

2)自动化回归测试:使用自动化测试工具,编写脚本来执行回归测试。自动化回归测试可以提高效率,减少测试重复劳动,并能够更快速地执行大型的回归测试套件。

3)选择性回归测试:针对已经修改过的代码进行有针对性的回归测试。根据问题的修复范围和影响程度,选择性地执行相关的测试用例,以节省时间和资源。

4)分阶段回归测试:将回归测试分为多个阶段进行,每个阶段测试特定的功能或模块。这样可以在软件开发的不同阶段及时发现和解决问题,以确保软件的稳定性和可靠性。

5)影响分析回归测试:根据功能或模块的变动,分析其对其他功能或模块的影响,有针对性地设计回归测试用例,以验证修改是否引入了新的错误或问题。

···无论采用何种方法,回归测试的目标都是确保软件在进行修改或升级后仍能正常运行,不影响已有的功能。根据项目需求和资源的情况,可以灵活选择合适的回归测试方法。


 

相关文章:

单元测试、集成测试、系统测试、验收测试、压力测试、性能测试、安全性测试、兼容性测试、回归测试(超详细的分类介绍及教学)

目录 1.单元测试 实现单元测试的方法: 注意事项: 2.集成测试 需注意事项: 实现集成测试的方法: 如何实现高效且可靠的集成测试: 3.系统测试 实现系统测试的方法: 须知注意事项: 4.验收测试 实现验…...

整车安全需求考量的多维度深度剖析

在汽车工程领域,整车安全需求的确定是一项复杂且系统的工程,其涵盖了多个关键维度的综合考量。从需求的萌生到最终的落地实施,每一个环节都紧密相扣,涉及众多技术细节与实际操作的权衡。 一、需求来源的多渠道挖掘 整车安全需求的来源广泛,其中 TARA(威胁分析与风险评估)…...

虚幻引擎---初识篇

一、学习途径 虚幻引擎官方文档:https://dev.epicgames.com/documentation/zh-cn/unreal-engine/unreal-engine-5-5-documentation虚幻引擎在线学习平台:https://dev.epicgames.com/community/unreal-engine/learning哔哩哔哩:https://www.b…...

Oracle - 多区间按权重取值逻辑 ,分时区-多层级-取配置方案(二)

Oracle - 多区间按权重取值逻辑 ,分时区-多层级-取配置方案https://blog.csdn.net/shijianduan1/article/details/133386281 某业务配置表,按配置的时间区间及组织层级取方案,形成报表展示出所有部门方案的取值; 例如&#xff0…...

线性代数的发展简史

线性代数的发展简史 线性代数作为数学的一个重要分支,其发展历史悠久而丰富。从古代文明中的基础计算到现代复杂的理论体系,线性代数经历了多个阶段的演变。 古代的起源 线性代数的雏形可以追溯到古埃及、古希腊、古印度和古代中国时期。这些早期文明…...

git使用详解

一、git介绍 1、git简介 Git 是一个开源的分布式版本控制系统(最先进的,没有之一),用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用…...

ros2学习日记_241124_ros相关链接

前言 提醒: 文章内容为方便作者自己后日复习与查阅而进行的书写与发布,其中引用内容都会使用链接表明出处(如有侵权问题,请及时联系)。 其中内容多为一次书写,缺少检查与订正,如有问题或其他拓展…...

【SQL】【数据库】语句翻译例题

SQL自然语言到SQL翻译知识点 以下是将自然语言转化为SQL语句的所有相关知识点,分门别类详细列出,并结合技巧说明。 1. 数据库操作 创建数据库 自然语言:创建一个名为“TestDB”的数据库。 CREATE DATABASE TestDB;技巧:识别**“创…...

图书管理系统(源码+数据库+报告)

基于SpringBoot的图书管理系统,系统包含两种角色:管理员、用户,系统分为前台和后台两大模块,主要功能如下。 前台: - 首页:展示系统推荐、热门图书等信息。 - 论坛:提供用户交流讨论的平台。 - 公告信息&a…...

python中lxml 库之 etree 使用详解

目录 一、 etree 介绍二、xpath 解析 html/xml1、第一步就是使用 etree 连接 html/xml 代码/文件。2、 xpath 表达式定位① xpath结合属性定位② xpath文本定位及获取③ xpath层级定位④ xpath索引定位⑤ xpath模糊匹配 一、 etree 介绍 lxml 库是 Python 中一个强大的 XML 处…...

vue3(十九)-基础入门之vue-nuxt反向代理

一、反向代理 1、下载 nuxtjs/proxy 使用 npm npm install nuxtjs/proxy 或使用 yarn yarn add nuxtjs/proxy 2、配置 nuxt.config.js 文件 export default {modules: [nuxtjs/axios,nuxtjs/proxy],axios: {baseURL: /,proxy: true},proxy: {/api/: {target: https://i.maoya…...

Unity3D 截图

使用 Unity3D 自带的截图接口,制作截图工具。 截图 有时候我们想对 Unity 的窗口进行截图,如果直接使用一些截图工具,很难截取到一张完整分辨率的图片(例如,我们想要截取一张 1920 * 1080 的图片)。 其实…...

【机器学习】近似分布的熵到底是p(x)lnq(x)还是q(x)lnq(x)?

【1】通信的定义 信息量(Information Content)是信息论中的一个核心概念,用于定量描述一个事件发生时所提供的“信息”的多少。它通常用随机变量 𝑥的概率分布来定义。事件 𝑥发生所携带的信息量由公式给出&#xff1…...

C语言:深入理解指针

一.内存和地址 我们知道计算机上CPU(中央处理器)在处理数据的时候,需要的数据是在内存中读取的,处理后的数据也会放回内存中,那我们买电脑的时候,电脑上内存是 8GB/16GB/32GB 等,那这些内存空间…...

Vue实训---4-使用Pinia实现menu菜单展示/隐藏

0.menu菜单展示/隐藏实现方法 Menu 菜单 | Element Plus中,当:collapse"isCollapse"其中isCollapse的值为true时菜单栏隐藏,当isCollapse的值为false时菜单栏显示。接下来使用pinia实现CommonAside.vue和CommonHeader.vue组件之间数据的共享&…...

Fakelocation Server服务器/专业版 Centos7

前言:需要Centos7系统 Fakelocation开源文件系统需求 Centos7 | Fakelocation | 任务一 更新Centos7 (安装下载不再赘述) sudo yum makecache fastsudo yum update -ysudo yum install -y kernelsudo reboot//如果遇到错误提示为 Another app is curre…...

网络安全,文明上网(4)掌握网络安全技术

前言 在数字化时代,个人信息和企业数据的安全变得尤为重要。为了有效保护这些宝贵资产,掌握一系列网络安全技术是关键。 核心技术及实施方式 1. 网络监控与过滤系统: 这些系统构成了网络防御体系的基石,它们负责监控网络通信&…...

Ettus USRP X410

总线连接器: 以太网 RF频率范围: 1 MHz 至 7.2 GHz GPSDO: 是 输出通道数量: 4 RF收发仪瞬时带宽: 400 MHz 输入通道数量: 4 FPGA: Zynq US RFSoC (ZU28DR) 1 MHz to 7.2 GHz,400 MHz带宽,GPS驯服OCXO,USRP软件无线电设备 Ettus USRP X410集…...

在SQLyog中导入和导出数据库

导入 假如我要导入一个xxx.sql,我就先创建一个叫做xxx的数据库。 然后右键点击导入、执行SQL脚本 选择要导入的数据库文件的位置,点击执行即可 注意: 导入之后记得刷新一下导出 选择你要导出的数据库 右键选择:备份/导出、…...

一文了解Spring提供的几种扩展能力

基于 spring bean 的扩展 1. BeanPostProcessor spring 提供的针对 bean 的初始化过程时提供的扩展能力,从方法名也很容易看出,提供的两个方法分别是为 bean 对象提供了初始化之前以及初始化之后的扩展能力。 package com.wyl.conf;import org.spring…...

VXLAN说明

1. 什么是 VXLAN ? VXLAN(Virtual Extensible LAN,虚拟扩展局域网)是一种网络虚拟化技术,旨在通过在现有的物理网络上实现虚拟网络扩展,从而克服传统 VLAN 的一些限制。 VXLAN 主要用于数据中心、云计算环…...

MyBatis基本使用

一、向SQL语句传参: 1.MyBatis日志输出配置: mybatis配置文件设计标签和顶层结构如下: 可以在mybatis的配置文件使用settings标签设置,输出运过程SQL日志,通过查看日志,可以判定#{}和${}的输出效果 settings设置项: logImpl指定 MyBatis 所用日志的具…...

Linux笔记---进程:进程切换与O(1)调度算法

1. 补充概念 1.1 并行与并发 竞争性:系统进程数目众多,而CPU资源只有少量,甚至只有1个,所以进程之间是具有竞争属性的。为了高效完成任务,更合理竞争相关资源,便具有了优先级。独立性:多进程运…...

Flink学习连载第二篇-使用flink编写WordCount(多种情况演示)

使用Flink编写代码,步骤非常固定,大概分为以下几步,只要牢牢抓住步骤,基本轻松拿下: 1. env-准备环境 2. source-加载数据 3. transformation-数据处理转换 4. sink-数据输出 5. execute-执行 DataStream API开发 //n…...

[AutoSar]BSW_Diagnostic_007 BootLoader 跳转及APP OR boot response 实现

目录 关键词平台说明背景一、Process Jump to Bootloader二、相关函数和配置2.1 Dcm_GetProgConditions()2.2 Dcm_SetProgConditions() 三、如何实现在APP 还是BOOT 中对10 02服务响应3.1 配置3.2 code 四、报文五、小结 关键词 嵌入式、C语言、autosar、OS、BSW、UDS、diagno…...

用 Python 写了一个天天酷跑(附源码)

Hello,大家好,给大家说一下,我要开始装逼了 这期写个天天酷跑玩一下叭! 制作一个完整的“天天酷跑”游戏涉及很多方面,包括图形渲染、物理引擎、用户输入处理、游戏逻辑等。由于Python是一种高级编程语言,…...

WebGL进阶(九)光线

理论基础: 点光源 符合向量定义,末减初。 平行光 环境光 效果: 点光源 平行光 环境光 源码: 点光源 // 顶点着色器程序let vertexstring attribute vec4 a_position; // 顶点位置属性uniform mat4 u_formMatrix; // 用于变换…...

Lucene(2):Springboot整合全文检索引擎TermInSetQuery应用实例附源码

前言 本章代码已分享至Gitee: https://gitee.com/lengcz/springbootlucene01 接上文。Lucene(1):Springboot整合全文检索引擎Lucene常规入门附源码 如何在指定范围内查询。从lucene 7 开始,filter 被弃用,导致无法进行调节过滤。 TermInSetQuery 指定…...

HarmonyOS(57) UI性能优化

性能优化是APP开发绕不过的话题,那么在HarmonyOS开发过程中怎么进行性能优化呢?今天就来总结下相关知识点。 UI性能优化 1、避免在组件的生命周期内执行高耗时操作2、合理使用ResourceManager3、优先使用Builder方法代替自定义组件4、参考资料 1、避免在…...

机器学习周志华学习笔记-第5章<神经网络>

机器学习周志华学习笔记-第5章<神经网络> 卷王&#xff0c;请看目录 5模型的评估与选择5.1 神经元模型5.2 感知机与多层网络5.3 BP(误逆差)神经网络算法 5.4常见的神经网络5.4.1 RBF网络&#xff08;Radial Basis Function Network&#xff0c;径向基函数网络&#xff0…...

SQL进阶技巧:如何进行数字范围统计?| 货场剩余货位的统计查询方法

目录 0 场景描述 1 剩余空位区间和剩余空位编号统计分析 2 查找已用货位区间 3 小结 0 场景描述 这是在做一个大型货场租赁系统时遇到的问题,在计算货场剩余存储空间时,不仅仅需要知道哪些货位是空闲的,还要能够判断出哪些货位之间是连续的。因为在新货物入场时,可…...

Xilinx IP核(3)XADC IP核

文章目录 1. XADC介绍2.输入要求3.输出4.XADC IP核使用5.传送门 1. XADC介绍 xadc在 所有的7系列器件上都有支持&#xff0c;通过将高质量模拟模块与可编程逻辑的灵活性相结合&#xff0c;可以为各种应用打造定制的模拟接口&#xff0c;XADC 包括双 12 位、每秒 1 兆样本 (MSP…...

现代大数据架构设计与实践:从数据存储到处理的全面解读

1. 引言 随着信息技术的不断发展,数据已经成为企业和组织最宝贵的资产之一。大数据的应用已经渗透到各个行业,无论是电商、金融,还是医疗、物流,如何有效管理、存储和处理海量的数据已经成为企业成功的关键之一。本文将深入探讨现代大数据架构的设计理念与技术实践,从数据…...

详细教程-Linux上安装单机版的Hadoop

1、上传Hadoop安装包至linux并解压 tar -zxvf hadoop-2.6.0-cdh5.15.2.tar.gz 安装包&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1u59OLTJctKmm9YVWr_F-Cg 提取码&#xff1a;0pfj 2、配置免密码登录 生成秘钥&#xff1a; ssh-keygen -t rsa -P 将秘钥写入认…...

前端项目支持tailwindcss写样式

安装 npm install -D tailwindcss npx tailwindcss init配置 tailwind.config.js //根据个人需求填写&#xff0c;比如vue简单配置 /** type {import(tailwindcss).Config} */ module.exports {darkMode: "class",corePlugins: {preflight: false},content: [&quo…...

工程师 - 智能家居方案介绍

1. 智能家居硬件方案概述 智能家居硬件方案是实现家庭自动化的重要组件&#xff0c;通过集成各种设备来提升生活的便利性、安全性和效率。这些方案通常结合了物联网技术&#xff0c;为用户提供智能化、自动化的生活体验。硬件方案的选择直接影响到智能家居系统的性能、兼容性、…...

H.264/H.265播放器EasyPlayer.js网页全终端安防视频流媒体播放器关于iOS不能系统全屏

在数字化时代&#xff0c;流媒体播放器已成为信息传播和娱乐消遣的主流载体。随着技术的进步&#xff0c;流媒体播放器的核心技术和发展趋势不断演变&#xff0c;影响着整个行业的发展方向。 EasyPlayer播放器属于一款高效、精炼、稳定且免费的流媒体播放器&#xff0c;可支持…...

2.langchain中的prompt模板 (FewShotPromptTemplate)

本教程将介绍如何使用 LangChain 库中的 PromptTemplate 和 FewShotPromptTemplate 来构建和运行提示&#xff08;prompt&#xff09;&#xff0c;并通过示例数据展示其应用。 安装依赖 首先&#xff0c;确保你已经安装了 langchain 和相关依赖&#xff1a; pip install lan…...

TCP/IP

1、浏览器输入网址后发生了什么 1&#xff09;应用层&#xff1a;浏览器解析ULR&#xff0c;生成发送给web服务器的请求信息&#xff0c;HTTP请求报文生成&#xff0c;委托给操作系统将消息发送给web服务器&#xff0c;发送之前需要查询服务器域名对应的IP地址&#xff08;需要…...

详细探索xinput1_3.dll:功能、问题与xinput1_3.dll丢失的解决方案

本文旨在深入探讨xinput1_3.dll这一动态链接库文件。首先介绍其在计算机系统中的功能和作用&#xff0c;特别是在游戏和输入设备交互方面的重要性。然后分析在使用过程中可能出现的诸如文件丢失、版本不兼容等问题&#xff0c;并提出相应的解决方案&#xff0c;包括重新安装相关…...

Spring:AOP切入点表达式

对于AOP中切入点表达式&#xff0c;我们总共会学习三个内容&#xff0c;分别是语法格式、通配符和书写技巧。 语法格式 首先我们先要明确两个概念: 切入点:要进行增强的方法切入点表达式:要进行增强的方法的描述方式 对于切入点的描述&#xff0c;我们其实是有两中方式的&a…...

STM32的中断(什么是外部中断和其他中断以及中断号是什么)

一、什么是EXTI 和NVIC EXTI&#xff08;External Interrupt/Event Controller&#xff09;EXTI 是外部中断/事件控制器&#xff0c;它负责处理外部信号变化&#xff0c;并将信号传递给中断控制器&#xff08;如 NVIC&#xff09;。主要负责以下功能&#xff1a; 外部事件检测…...

MySQL底层概述—1.InnoDB内存结构

大纲 1.InnoDB引擎架构 2.Buffer Pool 3.Page管理机制之Page页分类 4.Page管理机制之Page页管理 5.Change Buffer 6.Log Buffer 1.InnoDB引擎架构 (1)InnoDB引擎架构图 (2)InnoDB内存结构 (1)InnoDB引擎架构图 下面是InnoDB引擎架构图&#xff0c;主要分为内存结构和磁…...

Linux 下进程基本概念与状态

文章目录 一、进程的定义二、 描述进程-PCBtask_ struct内容分类 三、 进程状态 一、进程的定义 狭义定义&#xff1a;进程是正在运行的程序的实例&#xff08;an instance of a computer program that is being executed&#xff09;。广义定义&#xff1a;进程是一个具有一定…...

Go语言链接Redis数据库

1.使用go get命令安装go-redis/v8库&#xff1a; 我这里使用的vscode工具安装&#xff1a; go get github.com/go-redis/redis/v82.创建Redis客户端实例 使用以下Go代码连接到Redis服务器并执行命令&#xff1a; package mainimport ("context""fmt"&q…...

SQL 分页查询详解

在处理大型数据集时&#xff0c;分页查询是一种常见的技术&#xff0c;用于将数据分成多个小块&#xff0c;以便逐步加载和显示。这不仅可以提高应用的性能&#xff0c;还可以提升用户体验&#xff0c;避免一次性加载过多数据导致页面加载缓慢或资源消耗过大。本文将详细介绍 S…...

ACP科普:风险价值矩阵

风险价值矩阵&#xff08;Risk-Value Matrix&#xff09;是一种常用的工具&#xff0c;用于在项目管理中帮助团队识别、评估和优先处理风险。它通过将风险和价值两个因素进行结合&#xff0c;帮助决策者明确哪些风险需要优先关注和处理&#xff0c;从而有效地管理项目的不确定性…...

计算机网络socket编程(2)_UDP网络编程实现网络字典

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 计算机网络socket编程(2)_UDP网络编程实现网络字典 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记&#xff0c;欢迎大家在评论区交流讨…...

(Keil)MDK-ARM各种优化选项详细说明、实际应用及拓展内容

参考 MDK-ARM各种优化选项详细说明、实际应用及拓展内容 本文围绕MDK-ARM优化选项,以及相关拓展知识(微库、实际应用、调试)进行讲述,希望对你今后开发项目有所帮助。 1 总述 我们所指的优化,主要两方面: 1.代码大小(Size) 2.代码性能(运行时间) 在MDK-ARM中,优…...

mac2024 安装node和vue

以下是使用 Node.js 官方 .pkg 安装包 安装 Node.js 和 Vue CLI 的完整流程&#xff0c;包括如何重新设置 npm 的环境&#xff0c;以避免权限问题。 安装 Node.js 步骤 1.1&#xff1a;下载 Node.js 安装包 1. 打开 Node.js 官网。 2. 下载 LTS&#xff08;长期支持&#xf…...