揭秘软件测试秘籍:测试用例设计方法大揭秘

news2025/1/11 14:48:45

在这里插入图片描述

文章目录

  • 引言
  • 一、等价类划分
    • 1.1 定义
    • 1.2 步骤
    • 1.3 等价类划分优点和缺点
  • 二、边界值分析法
    • 2.1 定义
    • 2.2 步骤
    • 2.3 边界值分析法的优点和缺点
  • 三、判定表法
    • 3.1 定义
    • 3.2 步骤
    • 3.3 判定表组成不分
    • 3.4 判定表的优点和缺点
  • 四、正交实验法
    • 4.1 定义
    • 4.2 步骤
    • 4.3 正交实验法的优点和缺点
  • 五、状态迁移
    • 5.1 定义
    • 5.2 步骤
    • 5.3 状态迁移法的优点和缺点
  • 六、场景设计法
    • 6.1 定义
    • 6.2 步骤
    • 6.3 场景设计法的优点和缺点
  • 七、错误推断法
    • 7.1 定义
    • 7.2 步骤
    • 7.3 错误推断法的优点和缺点
  • 八、因果图法
    • 8.1 定义
    • 8.2 步骤
    • 8.3 因果图法的优点和缺点
  • 总结

在这里插入图片描述

引言

在软件开发过程中,软件测试是确保软件质量、稳定性和安全性的关键环节。而测试用例设计则是软件测试的核心任务之一,它直接影响到测试的质量和效率。因此,掌握和运用好测试用例设计方法,对于软件测试人员来说至关重要。本文将详细分析几种常见的测试用例设计方法,以期帮助测试人员更好地进行软件测试工作。

在软件开发的浩渺海洋中,软件测试如同一座坚固的灯塔,指引着产品质量与用户体验的航向。而测试用例作为软件测试的基石,其设计方法的合理性和有效性直接关系到测试的全面性和结果的准确性。本文将深入探讨软件测试中常见的测试用例设计方法,为您揭开测试工作的神秘面纱。

在这里插入图片描述

一、等价类划分

1.1 定义

等价类划分是一种常用的测试用例设计技术,它基于将输入数据划分为等价类的概念。这种方法可以帮助测试人员减少测试用例的数量,同时确保覆盖所有可能的输入情况。

1.2 步骤

以下是等价类划分的基本步骤:

  1. 理解需求:首先,彻底理解软件的需求和功能。

  2. 确定输入域:识别出需要测试的输入域,这些可能是用户输入、系统参数或配置选项。

  3. 划分有效等价类:将输入域划分为一组有效的输入值,这些值被认为是等价的,即它们对程序的输出或行为有相同的影响。

  4. 划分无效等价类:同样地,将输入域划分为一组无效的输入值,这些值在逻辑上是不合理的或不符合要求的。

  5. 设计测试用例:为每个有效等价类和无效等价类设计至少一个测试用例。理想情况下,应该选择边界值作为测试用例的输入。

  6. 确保覆盖:确保所有的等价类都被至少一个测试用例覆盖到,以验证程序对不同输入的反应。

  7. 执行测试用例:运行设计的测试用例,并观察程序的响应是否符合预期。

  8. 分析结果:根据测试结果,分析程序的行为是否符合需求规格,以及是否存在缺陷。

  9. 调整测试用例:如果发现缺陷或需求变更,可能需要调整或增加测试用例以覆盖新的或未被充分测试的等价类。

1.3 等价类划分优点和缺点

等价类划分优点

  • 减少测试用例数量:通过覆盖等价类而不是单独的值,可以减少需要设计的测试用例数量。
  • 提高测试效率:通过集中测试相似的输入值,可以更快地发现潜在的问题。
  • 确保边界覆盖:通过特别关注边界值,可以更有效地发现边界条件错误。

等价类划分的缺点

  • 难以识别所有等价类:在某些情况下,确定所有可能的等价类可能很困难。
  • 可能忽略特殊情况:如果等价类划分不够细致,可能会忽略一些特殊情况。

等价类划分是一种有效的测试设计方法,尤其适用于那些具有明确输入域和预期行为的测试场景。

二、边界值分析法

2.1 定义

边界值分析法是一种常用的软件测试用例设计技术,它专注于测试输入域的边界条件。这种方法基于一个假设:错误更有可能发生在输入域的边界上,而不是在域的中间。

2.2 步骤

以下是边界值分析法的基本步骤:

  1. 理解需求:首先,彻底理解软件的需求和功能。

  2. 确定输入域:识别出需要测试的输入域,这些可能是数值、字符串、日期等。

  3. 确定边界值:为每个输入域确定边界值。这些边界值通常包括:

    • 正常边界:输入域的最小值、最大值以及它们之间的值。
    • 异常边界:超出正常边界的值,这些值通常不被期望作为输入。
  4. 设计测试用例:为每个边界值设计测试用例。通常,测试用例应该包括:

    • 边界值本身(例如,如果输入域是1到100,测试用例应该包括1和100)。
    • 边界值的相邻值(例如,0和101)。
  5. 考虑等价类:在设计测试用例时,考虑等价类划分,以确保覆盖所有可能的输入情况。

  6. 执行测试用例:运行设计的测试用例,并观察程序的响应是否符合预期。

  7. 分析结果:根据测试结果,分析程序的行为是否符合需求规格,以及是否存在缺陷。

  8. 调整测试用例:如果发现缺陷或需求变更,可能需要调整或增加测试用例以覆盖新的或未被充分测试的边界值。

2.3 边界值分析法的优点和缺点

边界值分析法的优点

  • 发现边界错误:由于错误更有可能发生在边界上,这种方法有助于发现这些错误。
  • 提高测试覆盖率:通过测试边界值,可以提高测试覆盖率。
  • 减少测试用例数量:相对于测试所有可能的输入值,边界值分析可以减少所需的测试用例数量。

边界值分析法的缺点

  • 可能忽略非边界错误:专注于边界值可能会忽略一些非边界的错误。
  • 难以确定所有边界:在某些情况下,确定所有可能的边界值可能很困难。

边界值分析法是一种有效的测试设计方法,尤其适用于那些对输入值有明确限制的测试场景。通过结合等价类划分和其他测试设计技术,可以进一步提高测试的全面性和有效性。

在这里插入图片描述

三、判定表法

3.1 定义

判定表(Decision
Table)又称“决策表”,是一种系统化的方法,用于设计测试用例,特别是在处理复杂的业务逻辑和条件判断时。它通过表格形式展示条件和动作,帮助测试人员识别测试场景和可能的测试用例。

3.2 步骤

以下是使用判定表设计测试用例的基本步骤:

  1. 识别条件桩(Conditions):列出所有影响程序行为的条件或输入变量。

  2. 识别动作桩(Actions):确定程序在不同条件下应该执行的动作或输出。

  3. 创建判定表:构建一个表格,将条件桩作为列标题,动作桩作为行标题。

  4. 填充判定表:根据条件的组合填写表格,确定在每种情况下应该执行的动作。

  5. 简化判定表:如果可能,简化判定表以减少冗余的测试用例。这可以通过识别条件之间的逻辑关系来实现。

  6. 设计测试用例:根据判定表中的每个条件组合,设计相应的测试用例。

  7. 执行测试用例:运行测试用例并验证程序的行为是否符合判定表中定义的预期动作。

  8. 分析和调整:根据测试结果,分析程序的行为,如果发现问题,调整判定表和测试用例。

3.3 判定表组成不分

判定表通常包括以下几个部分:

  • 条件桩(Conditions):表格的列,列出所有可能影响程序行为的条件。
  • 动作桩(Actions):表格的行,列出在特定条件下程序应该执行的所有可能动作。
  • 规则(Rules):表格的单元格,表示在特定条件组合下应该执行的动作。
  • 条件项(Condition stubs):列出所有可能的条件值。
  • 动作项(Action stubs):列出所有可能的动作值。

3.4 判定表的优点和缺点

判定表的优点

  • 系统化方法:提供了一种系统化的方法来处理复杂的逻辑和条件。
  • 易于理解和沟通:表格形式清晰,便于团队成员理解和沟通。
  • 减少遗漏:有助于确保所有条件组合都被考虑到。
  • 易于维护:当需求变更时,判定表可以快速更新以反映新的逻辑。

判定表的缺点

  • 可能过于复杂:对于非常简单的逻辑,使用判定表可能过于复杂。
  • 创建和维护成本:对于大型系统,创建和维护判定表可能需要较多的时间和资源。

判定表是一种强大的工具,尤其适用于需要处理多个条件和动作的复杂测试场景。通过结合其他测试设计技术,如等价类划分和边界值分析,可以进一步提高测试的全面性和有效性。

四、正交实验法

4.1 定义

正交实验法是一种用于设计测试用例的统计方法,它可以帮助测试人员在有限的测试资源下,系统地覆盖多个测试因素(变量)的所有组合。这种方法基于正交数组,可以有效地减少需要测试的组合数量,同时确保测试的全面性。

4.2 步骤

以下是使用正交实验法设计测试用例的基本步骤:

  1. 确定测试因素:识别出影响软件行为的所有关键因素或变量。

  2. 确定测试因素的水平:为每个测试因素确定不同的取值或状态,这些取值称为水平。

  3. 选择正交数组:根据测试因素的数量和水平,选择合适的正交数组。正交数组是一种特殊的矩阵,可以确保每个因素的水平在测试中被均匀地覆盖。

  4. 构建测试矩阵:使用选定的正交数组作为模板,构建测试矩阵。测试矩阵的每一行代表一个测试用例,每一列代表一个测试因素。

  5. 填充测试矩阵:根据测试因素和水平,填充测试矩阵,确保每个因素的每个水平在测试矩阵中出现相同次数。

  6. 设计测试用例:根据测试矩阵,设计具体的测试用例。

  7. 执行测试用例:运行设计的测试用例,观察软件的行为,并记录测试结果。

  8. 分析和调整:根据测试结果,分析软件的行为是否符合预期,并根据需要调整测试用例。

4.3 正交实验法的优点和缺点

正交实验法的优点包括:

  • 减少测试用例数量:通过使用正交数组,可以减少需要测试的组合数量,从而节省时间和资源。
  • 全面覆盖:确保所有测试因素的水平都被均匀地覆盖,提高测试的全面性。
  • 易于分析:正交实验法提供了一种结构化的方法来分析测试结果,便于识别问题和缺陷。

正交实验法的缺点包括:

  • 复杂性:对于初学者来说,理解和应用正交实验法可能有一定的复杂性。
  • 适用性限制:正交实验法更适用于有多个测试因素和水平的情况,对于只有少数几个因素的简单测试场景可能不太适用。

正交实验法是一种有效的测试设计方法,尤其适用于需要考虑多个测试因素和它们的交互效应的复杂测试场景。通过结合其他测试设计技术,如等价类划分、边界值分析和判定表,可以进一步提高测试的全面性和有效性。

在这里插入图片描述

五、状态迁移

5.1 定义

状态迁移测试是一种基于软件系统状态和状态之间转换的测试方法。它特别适用于那些具有明显状态和状态转换逻辑的系统,例如嵌入式系统、工作流管理系统或具有复杂用户界面的应用程序。

5.2 步骤

以下是使用状态迁移法设计测试用例的基本步骤:

  1. 识别状态:确定软件系统的所有可能状态。这些状态应该能够全面描述系统的配置和行为。

  2. 定义状态属性:为每个状态定义其属性,这些属性描述了状态的特征和条件。

  3. 识别状态转换:确定状态之间的所有可能转换。这包括正常路径的转换和异常或错误情况下的转换。

  4. 定义转换条件:为每个状态转换定义触发条件,即什么事件或操作会导致状态的转换。

  5. 创建状态转换图:使用状态转换图来可视化状态和转换条件。这有助于理解系统的行为和设计测试用例。

  6. 设计测试用例:基于状态和状态转换,设计测试用例以验证:

    • 状态转换是否按预期发生。
    • 系统在每个状态下的行为是否正确。
    • 系统对非法或异常状态转换的处理。
  7. 考虑边界和异常情况:确保测试用例包括边界条件和异常路径,以测试系统的健壮性。

  8. 执行测试用例:运行测试用例,观察系统的实际行为是否与预期一致。

  9. 分析结果:根据测试执行结果,分析系统的行为,识别任何不符合预期的行为或缺陷。

  10. 调整和优化:根据测试结果,调整测试用例或系统设计,以提高测试覆盖率和系统质量。

5.3 状态迁移法的优点和缺点

状态迁移测试的优点包括:

  • 全面性:确保测试覆盖了系统的所有状态和状态转换。
  • 易于理解:状态转换图提供了系统行为的直观表示,便于理解和沟通。
  • 有助于发现缺陷:通过测试状态转换,可以发现状态管理逻辑中的错误。

状态迁移测试的缺点包括:

  • 复杂性:对于状态众多且转换复杂的系统,设计测试用例可能比较困难。
  • 资源消耗:在某些情况下,可能需要大量的测试用例来覆盖所有状态和转换。

状态迁移测试是一种强大的方法,尤其适用于那些状态和行为紧密相关的系统。通过结合其他测试设计技术,可以进一步提高测试的全面性和有效性。

六、场景设计法

6.1 定义

场景设计法(Scenario-Based Design)是一种以用户故事或使用场景为中心的测试用例设计方法。这种方法侧重于模拟真实用户的行为和交互,以确保软件在实际使用中的表现符合预期。

6.2 步骤

以下是使用场景设计法设计测试用例的基本步骤:

  1. 收集需求:从需求文档、用户访谈、市场调研等渠道收集软件的使用场景。

  2. 定义用户角色:确定不同的用户角色,每个角色可能有不同的需求和使用场景。

  3. 创建场景:基于用户角色和需求,创建具体的使用场景。这些场景应该描述用户如何与软件交互,以及他们期望的结果。

  4. 细化场景步骤:将每个场景细化为一系列具体的步骤或操作。

  5. 确定预期结果:为每个场景确定预期的结果或行为。

  6. 设计测试用例:根据场景和预期结果设计测试用例。每个测试用例应该包括场景描述、测试步骤、预期结果和实际结果。

  7. 考虑异常和边界情况:确保测试用例包括异常流程和边界条件的测试。

  8. 执行测试用例:按照设计的测试用例执行测试,并记录实际结果。

  9. 分析和调整:分析测试结果,如果发现问题,调整测试用例或软件设计。

  10. 迭代和优化:根据反馈和测试结果,不断迭代和优化场景和测试用例。

6.3 场景设计法的优点和缺点

场景设计法的优点包括:

  • 用户中心:以用户的实际使用场景为中心,更贴近用户需求。
  • 易于理解:场景描述直观易懂,便于团队成员理解和沟通。
  • 发现用户体验问题:有助于发现可能影响用户体验的问题。

场景设计法的缺点包括:

  • 可能忽略技术细节:过分关注用户场景可能忽略一些技术细节和边界条件。
  • 测试用例数量:如果场景过多,可能导致测试用例数量庞大。

场景设计法是一种有效的测试设计方法,尤其适用于那些用户体验至关重要的软件产品。通过结合其他测试设计技术,如等价类划分、边界值分析和状态迁移测试,可以进一步提高测试的全面性和有效性。
在这里插入图片描述

七、错误推断法

7.1 定义

错误推断法(Error Guessing Approach 或 Error Assumption
Approach)是一种基于经验和直觉的测试用例设计方法。这种方法假设在软件设计和实现过程中可能存在某些类型的错误,然后设计测试用例来发现这些错误。

7.2 步骤

以下是使用错误推断法设计测试用例的基本步骤:

  1. 经验总结:基于以往的测试经验和开发团队的常见错误模式,总结可能的错误类型。

  2. 确定错误假设:根据经验总结,为软件系统确定可能的错误假设或错误模式。

  3. 设计测试用例:针对每个错误假设,设计测试用例来验证软件是否能够抵抗这些错误。

  4. 考虑边界和异常情况:确保测试用例包括边界条件和异常情况,因为这些情况下更容易发现错误。

  5. 执行测试用例:运行设计好的测试用例,观察软件的行为是否符合预期。

  6. 分析结果:根据测试结果,分析软件的行为,识别任何不符合预期的行为或缺陷。

  7. 调整测试用例:如果发现问题或新的潜在错误,调整或增加测试用例以覆盖这些错误。

  8. 迭代测试:测试是一个迭代过程,根据每次测试的结果,不断优化测试用例和测试策略。

7.3 错误推断法的优点和缺点

错误推断法的优点包括:

  • 基于经验:利用测试人员的经验来预测可能的错误,提高测试的针对性。
  • 发现潜在问题:有助于发现那些可能被传统测试方法忽略的问题。
  • 灵活应用:可以根据不同的项目和团队经验灵活应用。

错误推断法的缺点包括:

  • 依赖个人经验:过度依赖测试人员的经验,可能遗漏一些未被考虑到的错误类型。
  • 可能不全面:如果错误假设不全面,可能会忽略一些测试场景。

错误推断法是一种补充性的测试设计方法,它可以与传统的测试方法(如等价类划分、边界值分析等)结合使用,以提高测试的全面性和发现问题的效率。通过结合使用多种测试设计方法,可以更有效地确保软件质量。

八、因果图法

8.1 定义

因果图法(Cause-Effect
Graphing)是一种测试用例设计技术,它基于图形化表示输入条件(原因)和预期结果(效果)之间的关系。这种方法特别适用于复杂的条件语句和决策逻辑,帮助测试人员理解程序逻辑并设计出有效的测试用例。

8.2 步骤

以下是使用因果图法设计测试用例的基本步骤:

  1. 识别原因和效果:确定软件系统中的所有输入条件(原因)和预期的输出或系统行为(效果)。

  2. 列出原因和效果:将所有原因和效果列出来,确保没有遗漏。

  3. 构建因果图:使用图形化的方式表示原因和效果之间的关系。通常,原因用方框表示,效果用圆形表示,它们之间的关系用箭头连接。

  4. 确定组合:分析原因之间的组合,确定哪些原因的组合会导致特定的效果。

  5. 设计测试用例:基于因果图中的原因和效果组合,设计测试用例。每个测试用例应该包括一组特定的输入条件和预期的输出结果。

  6. 考虑边界和异常情况:确保测试用例包括边界条件和异常情况的测试,以验证程序的健壮性。

  7. 执行测试用例:运行设计的测试用例,观察程序的实际行为是否与预期效果一致。

  8. 分析结果:根据测试执行结果,分析程序的行为,识别任何不符合预期的行为或缺陷。

  9. 调整和优化:根据测试结果,调整测试用例或程序逻辑,以提高测试覆盖率和系统质量。

8.3 因果图法的优点和缺点

因果图法的优点包括:

  • 图形化表示:提供了一种直观的方式来理解和分析复杂的逻辑关系。
  • 减少测试用例数量:通过识别原因和效果之间的组合,可以减少需要设计的测试用例数量。
  • 易于发现逻辑错误:有助于发现条件语句和决策逻辑中的错误。

因果图法的缺点包括:

  • 复杂性:对于非常复杂的系统,构建和理解因果图可能比较困难。
  • 可能忽略细节:在某些情况下,可能忽略一些细节或特殊情况。

因果图法是一种有效的测试设计方法,尤其适用于那些具有复杂逻辑和多个条件语句的系统。通过结合其他测试设计技术,如等价类划分、边界值分析和场景设计法,可以进一步提高测试的全面性和有效性。

在这里插入图片描述

总结

测试用例设计是软件测试中至关重要的一环。常见的测试用例设计方法,测试人员可以设计出更全面、更有效的测试用例,从而提高软件测试的质量和效率。当然,在实际应用中,测试人员还需要根据具体的项目需求和测试环境,灵活选择和应用这些方法,以达到最佳的测试效果。

软件测试中的测试用例设计方法多种多样,每种方法都有其独特的优点和适用场景。在实际工作中,我们需要根据项目的具体情况和需求,灵活运用这些方法,设计出全面、有效的测试用例,为软件的质量保驾护航。同时,我们也需要不断学习和探索新的测试技术和方法,以适应不断变化的软件开发环境。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1820259.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文研读|以真实图像为参考依据的AIGC检测

前言:这篇文章介绍几篇AIGC检测的相关工作,其中前几篇文章是以真实图像的特征作为标准进行检测,最后一篇文章就当拓展一下知识边界吧~ 目录 Detecting Generated Images by Real Images Only (202311 arXiv)Let Real Images be as…

WebGL渲染引擎优化方向 -- 内存管理的优化

作者:caven chen 对此系列感兴趣还可以看前文: WebGL渲染引擎优化方向 -- 加载性能优化 WebGL渲染引擎优化方向——渲染帧率的优化 前言 WebGL 是一种强大的图形渲染技术,可以在浏览器中快速渲染复杂的 3D 场景。但是,由于 W…

MySQL与PostgreSQL关键对比三(索引类型)

目录 索引类型 B-tree 索引 Hash 索引 Full-text 索引 GiST 索引 GIN 索引 BRIN 索引 索引创建示例 MySQL PostgreSQL 结论 以下SQL语句的执行如果需要开发工具支持,可以尝试使用SQLynx或Navicat来执行。 MySQL和PostgreSQL在索引方面有许多相似之处&am…

【kubernetes】k8s中包管理工具-----Helm 超详细解读

目录 一、Helm 1.1什么是 Helm 1.2Helm 有三个重要的概念 1.2.1Chart 1.2.2Repository(仓库) 1.2.3Release 1.3Helm3 与 Helm2 的区别 二、Helm 部署 2.1安装 helm 2.2命令补全 2.3使用 helm 安装 Chart 2.3.1添加常用的 chart 仓库 2.3.2…

vue 和 js写屏幕自适应

实现屏幕自适应的方式有很多种,可以通过插件本身提供的方法,可以通过flex布局等,今天我们来写写通过js实现屏幕自适应。 以下是在vue中实现的屏幕自适应 首先在data中定义一下屏幕的默认大小和缩放比例 然后在mounted中获取窗口的内置宽高&a…

使用 Vue 和 Ant Design 实现抽屉效果的模块折叠功能

功能描述: 有两个模块,点击上面模块的收起按钮时,上面的模块可以折叠,下面的模块随之扩展 代码实现: 我们在 Vue 组件中定义两个模块的布局和状态管理: const scrollTableY ref(560); // 表格初始高度…

Excel中如何用公式列出包含特定文本的所有单元格?

如下图,希望用公式得到“以分布式开始”的G列数据。 一、高版本公式 FILTER(E2:E9,LEFT(E2:E9,3)"分布式") 用LEFT函数提取数据的左侧3个字符,是“分布式”的就是以它开始的数据了,用FILTER函数筛选出来即可。 二、低版本公式 如…

【智能算法应用】基于A星算法求解六边形栅格地图路径规划

目录 1.算法原理2.结果展示3.参考文献4.代码获取 1.算法原理 精准导航:用A*算法优化栅格地图的路径规划【附Matlab代码】 六边形栅格地图 分析一下地图: 六边形栅格地图上移动可以看做6领域运动,偶数列与奇数列移动方式有所差异&#xff0…

【FreeRTOS】内存管理

目录 1 为什么要自己实现内存管理2 FreeRTOS的5中内存管理方法2.1 Heap_12.2 Heap_22.3 Heap_32.4 Heap_4 2.5 Heap_53 Heap相关的函数3.1 pvPortMalloc/vPortFree3.2 xPortGetFreeHeapSize 3.3 xPortGetMinimumEverFreeHeapSize3.4 malloc失败的钩子函数 参考《FreeRTOS入门与…

CleanMyMac是否有必要购买?2024年6.18有什么优惠活动?

CleanMyMac X是专业的Mac应用卸载,清理优化,软件管理更新工具,兔八哥爱分享获取cleanmymac激活码更安全,让你的Mac电脑焕然一新 CleanMyMacX是一款强大的Mac清理和优化工具,针对系统垃圾、恶意软件和隐私保护提供解决方案。重度用户因其高效性能和全面功能可能需要…

Python学习从0开始——Kaggle时间序列002

Python学习从0开始——Kaggle时间序列002 一、作为特征的时间序列1.串行依赖周期 2.滞后序列和滞后图滞后图选择滞后 3.示例 二、混合模型1.介绍2.组件和残差3.残差混合预测4.设计混合模型5.使用 三、使用机器学习进行预测1.定义预测任务2.为预测准备数据3.多步骤预测策略3.1 M…

unidbg讲解V1

前言 unidbg是什么? unidbg是一个Java项目,可以帮助我们去模拟一个安卓或IOS设备,用于去执行so文件中的算法,从而不需要再去逆向他内部的算法。最终会产出一个jar包,可以被python进行调用。 如何使用unidbg? 下载github上开源的项目:https://github.com/zhkl0228/un…

Java基础面试重点-3

41. 简述线程生命周期(状态) 其它参考《多线程重点》中的说法。三种阻塞: 等待阻塞: 运行的线程执行o.wait()方法(该线程已经持有锁),JVM会把该线程放入等待队列中。同步阻塞: 运行的线程在获取对象的同步…

Kafka高频面试题整理

文章目录 1、什么是Kafka?2、kafka基本概念3、工作流程4、Kafka的数据模型与消息存储机制1)索引文件2)数据文件 5、ACKS 机制6、生产者重试机制:7、kafka是pull还是push8、kafka高性能高吞吐的原因1)磁盘顺序读写:保证了消息的堆积2)零拷贝机…

YOLOv9改进策略 | 损失函数篇 | 利用SlideLoss助力YOLOv9有效涨点(附代码 + 完整修改方式)

一、本文介绍 本文给大家带来的是分类损失 SlideLoss损失函数,我们之前看那的那些IoU都是边界框回归损失,和本文的修改内容并不冲突,所以大家可以知道损失函数分为两种一种是分类损失另一种是边界框回归损失,上一篇文章里面我们总…

SIGMOD 2024会议现场第二弹:中国论文接收量断崖式领先,引领全球数据创新潮流

今天是 ACM SIGMOD Conference(ACM Special Interest Group on Management of Data Conference),即国际数据管理大会举办的第五天!在这个充满活力的学术盛会上,全球顶尖学者、行业专家和学生热情汇聚,共享数…

Java项目:111 基于SpringBoot的在线家具商城设计与实现

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本系统有管理员和用户两个角色,包括前台商城平台及后台管理系统。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订…

警惕!这本SCIE正在被​“On Hold”!

【欧亚科睿学术】 近期,经小编查询,一本近乎百分百录用率、且生信友好的“毕业神刊”——JOURNAL OF BIOLOGICAL REGULATORS AND HOMEOSTATIC AGENTS被科睿唯安打上了“On Hold”标识。 图片来源:科睿唯安(2024年6月13日查&#…

UML类图之间的关系与对应的代码关系

UML类图之间的关系与对应的代码关系 1. 依赖关系1.1 图解1.2代码实现 2. 关联关系2.1图解2.2代码实现 3. 聚合关系3.1图解3.2代码实现 4. 组合关系4.1图解4.2代码实现 5. 泛化关系5.1图解5.2代码实现 6. 实现关系6.1图解6.2代码实现 在UML中,共有四种关系&#xff1…

第 3 章:Spring Framework 中的 AOP

第 3 章:Spring Framework 中的 AOP 讲完了 IoC,我们再来聊聊 Spring Framework 中的另一个重要内容——面向切面编程,即 AOP。它是框架中众多功能的基础,例如声明式事务就是依靠 AOP 来实现的。此外,Spring 还为我们…