什么是软件测试中的耐力测试? (附示例)

耐力测试

耐力测试 是一种非功能性软件测试,在相当长的时间内以高负载测试软件,以评估软件应用程序在持续使用下的行为。耐久性测试的主要目的是确保应用程序有足够的能力处理延长的负载,而不会降低响应时间。

这种类型的测试是在性能运行周期的最后阶段进行的。耐久性测试是一个漫长的过程,有时甚至持续一年。这可能包括施加外部负载,例如互联网流量或用户操作。这使得耐久性测试不同于 负载测试,通常会在几个小时左右结束。

耐力意味着容量,换句话说,您可以将耐力测试称为容量测试。

耐力测试的目标

  • 耐久性测试的主要目标是检查内存泄漏。
  • 了解系统在持续使用的情况下的表现。
  • 确保经过长时间测试后,系统响应时间保持与测试开始时相同或更好。
  • 确定给定系统将支持并满足性能目标的用户数量和/或交易数量。
  • 为了管理未来的负载,我们需要了解需要多少额外资源(如处理器容量、磁盘容量、内存使用情况或网络带宽)来支持未来的使用。
  • 耐久性测试通常通过使系统超载或减少某些系统资源并评估后果来完成。
  • 执行此操作是为了确保在相对“正常”的使用期后不会出现缺陷或内存泄漏。

耐力测试中需要监测什么

耐力测试

在耐力测试中,要测试以下事项。
  • 测试内存泄漏– 检查应用程序中是否存在内存泄漏,这可能会导致系统或操作系统崩溃
  • 测试系统各层之间的连接闭合 – 如果系统各层之间的连接未成功关闭,可能会导致系统的部分或全部模块停滞。
  • 测试数据库连接关闭成功– 如果数据库连接没有关闭成功,可能会导致系统崩溃
  • 测试响应时间 – 对系统响应时间进行测试,因为随着系统使用时间的延长,应用程序的效率会降低。

如何进行耐力测试

以下是耐力测试的基本测试方法
  • 测试环境 – 确定耐久性测试所需的硬件、软件、操作系统,分配团队内的角色和职责等。在执行测试之前,环境应该准备好。您还需要估计常见的数据库生产规模和年度增长。这是必需的,因此您需要测试您的应用程序在一年、两年或五年后会如何响应。
  • 创建测试计划、场景 – 根据测试性质(手动、自动化或两者结合), 测试用例 应该规划设计、评审和执行。系统压力测试、断点测试等也应成为测试计划的一部分。系统压力测试决定了应用程序中的断点。
  • 测试评估 – 提供完成测试阶段需要多长时间的估计。应根据涉及的测试人员数量和所需的测试周期数进行分析。
  • 风险分析 - 分析风险并采取适当的预防措施。根据风险因素对测试用例进行优先排序,并确定测试人员在耐久性测试期间可能遇到的以下风险和问题。
  • 随着时间的推移,性能是否会保持一致?
  • 还存在其他尚未发现的小问题吗?
  • 是否存在未解决的外部干扰?
  • 考试安排 – 确定预算、在规定时间内交付的成果。 耐力测试 在一段连续的时间内对系统/应用程序应用巨大但自然的交易负载安排。

耐久性测试示例

压力测试 将测试系统推向极限, 耐力测试 将应用程序推向极限 随着时间的推移。例如,最复杂的问题——内存泄漏、数据库服务器利用率和系统无响应——发生在软件运行时间较长时。如果您跳过耐久性测试,那么在部署之前检测到此类缺陷的机会就很低。

耐久性测试工具

耐久性测试的优势

  • 它有助于确定系统在负载下能够处理多少工作负载。
  • 提供准确的数据,客户可以使用这些数据来验证或增强他们的基础设施需求。
  • 识别系统长时间高水平运行后可能出现的性能问题
  • 典型问题在较小规模的目标性能测试中被识别,这意味着它能确保即使在很短的时间内负载巨大的情况下应用程序仍然可用。
  • 耐久性测试还用于检查长时间执行后性能是否下降

耐久性测试的缺点

  • 通常很难定义值得施加多大的压力。
  • 耐力测试可能会导致应用程序和/或网络故障,如果发生以下情况,可能会导致严重中断: 测试环境 并不孤立。
  • 系统压力过大可能会导致永久性数据丢失或损坏。
  • 压力消除后,资源利用率仍然很高。
  • 某些应用程序组件无法响应。
  • 最终用户观察到未处理的异常。

总结

  • In 软件工程,耐力测试是负载测试的一个子集。
  • 耐久性测试是一个漫长的过程,有时甚至持续一年
  • 检查是为了验证
  • 测试内存泄漏
  • 测试响应时间
  • 测试数据库连接等。