在本节中,我们将详细探讨以下与称为耐久性测试的特定测试技术相关的主题。
- 什么是耐久测试?
-
耐久性测试的目标
-
耐久性测试的属性
-
耐久性测试过程
-
耐久性测试示例
-
耐久性测试的优缺点。
1. 什么是耐久测试?
在软件测试中,我们有几种不同类型的测试,在分析任何软件或应用程序时都非常有效。
在这里,我们正在讨论另一种类型的软件测试,称为耐久性测试。
耐久性测试是我们在很长一段时间内测试系统在某些负载条件下的性能的测试。
耐久性测试是非功能性测试的重要组成部分之一。
通常,它也被称为浸泡测试和寿命测试。耐久性测试在性能运行周期的最后阶段完成。
注意:浸泡测试用于测试应用程序在环境中的行为,该环境长时间不支持。通常,浸泡测试是一种破坏性的测试;随后,我们已经知道服务器或域不支持。 |
为了评估被测组件在特定负载和时间下可能复制情况下的响应,我们过去实施了耐久性测试。
简而言之,我们可以说术语耐力用于定义某物的持久能力,进一步称为耐力、能力或耐性。
测量内存消耗以修复潜在故障并确定整个耐久性测试的性能质量。
为了增强软件应用程序的一致参数,我们可以在耐久性测试中记录性能。
为了找出系统中的任何内存泄漏,耐久性测试是有益的,它还有助于我们在更长的时间内测试系统的响应时间。
在耐久性测试期间,与其他类型的测试(如负载或压力测试)相比,根据给定的测试要求执行更长的时间,例如
15 小时、90 小时。
这使得耐久性测试与负载测试不同,负载测试通常在几个小时内结束。
2. 耐久性测试的目标 -
执行耐久性测试的主要目的是确认应用程序是否足够高效,可以处理增加的负载,而不会发生响应时间故障。
-
执行耐久性测试的目的是测试内存泄漏。
-
它通常通过使系统过载或减少特定系统资源并评估结果来执行。
-
耐久性测试的实施可确保系统响应时间在较长时间后继续相同或增强。
-
用于识别系统在持续使用下的性能。
-
为了完成未来的负载,我们需要了解有多少额外的资源(如磁盘容量、处理器容量、内存使用情况或网络带宽)是必不可少的。
-
它在最大时间限制内控制软件产品的健壮性和稳定性。
-
它侧重于内存的消耗。
-
在市场上发布任何产品之前,我们必须确保它有助于增强对软件或系统稳定性的信心。
3. 在耐力测试中测试什么?
在执行耐久性测试的过程中,我们将测试以下几个方面:
- 测试内存泄漏
-
测试响应时间
-
测试系统层之间的连接闭合
-
测试数据库连接关闭成功
测试内存泄漏
在实施耐久性测试时,会进行检查以验证特定软件或应用程序中的任何内存泄漏,这可能导致系统或操作系统故障。
测试响应时间
我们还可以检查测试响应时间。并且测试应用程序或系统的响应时间,因为应用程序作为系统无休止使用的输出变得不那么可操作。
测试系统层之间的连接闭合
在耐久性测试实施过程中,如果系统各层之间的连接没有有效关闭,则可能会使系统的某些或每个模块停止。
测试数据库连接关闭成功
如果在执行耐久性测试期间未成功关闭数据库连接,我们可能会以系统崩溃的方式获得输出。
4. 耐久性测试示例
让我们看一个耐力测试的例子,以便我们更好地理解特定主题。
在这里,我们将看到内存泄漏概念的示例,但我们将首先了解什么是内存泄漏?
内存泄漏:这是计算机科学中最常见的问题。发布由于开发人员编写的易受攻击的编程代码而不再使用的对象是一种细分。
在耐久性测试中,测试工程师将通过提供特定数量的负载来测试任何内存泄漏,从而在固定的时间内执行系统。
处理内存泄漏问题在编程语言的使用中完全不同。
因此,我们将看到任何银行的一个现实生活中的例子。
例:
- 假设封锁已经发生,银行将连续 7-8 天不工作。
-
在整个封锁期间,与其他标准工作日相比,网上银行活动将激增。
-
如果用户数量和操作数量激增,系统需要准备好处理此类负载。
5. 耐久性测试过程
耐久性测试过程分为以下步骤完成:
- 建立测试环境
-
创建测试计划
-
测试周期近似
-
风险分析
-
测试时间表
-
测试执行
-
测试周期闭合
让我们一一讨论,以便我们更好地理解:
步骤1:建立测试环境
耐久性测试过程的第一步是创建或建立测试环境。此步骤将发现执行耐久性测试需要软件、硬件、操作系统和数据库。
测试环境应在测试执行之前准备好,并且应与实际的实时系统适当分离。
包括创建团队以执行耐久性测试并移交组内的角色和职责。
步骤2:创建测试计划和测试场景
完成耐久性测试过程的第一步后,我们将进入下一步,创建测试计划和测试场景。
在这种情况下,应根据手动和自动化测试的必要性或两者的组合来设计、审查和执行用例。
应确定应用程序的断点,并应确认在整个耐久性测试期间将给应用程序施加多少负载。
步骤3:测试周期近似
完成步骤 1 和步骤 2 后,我们将进入耐久性测试的下一步,即测试周期近似。
每个测试阶段的时间和所需的测试周期数在测试周期近似步骤中进行评估。
它提供了完成测试阶段所需时间的近似值。应根据所包含的测试工程师的数量和测试周期数的必要性进行评估。
步骤4:风险分析
风险分析是耐久性测试过程中最关键的一步。在这里,我们将根据风险因素确定测试用例的优先级。
以下是测试工程师在耐久性测试期间最常遇到的一些问题和风险。
- 是否有任何尚未交付的外部干扰?
-
还有其他尚未确定的小问题吗?
-
性能测试是否会随着时间的推移而继续可靠?
步骤5:测试计划
在耐久性过程的下一步中,我们将完成进一步过程的预算、可交付成果和时间表。
步骤6:测试执行
设置测试计划后,我们将进入下一步,即测试执行。在这种情况下,测试用例会在环境准备就绪后立即实施,如果在整个阶段发现任何问题,也会记下它们。
开发人员将解决这些问题,并在修复后执行重新测试。
步骤7:测试周期闭合
耐久性测试的最后一步是测试周期结束。一旦测试周期符合测试过程的退出标准,它将被视为已关闭,并将安排已识别问题及其最终状态的报告。
6. 耐久性测试的优势
耐力测试的一些显着好处如下所述:
- 它有助于识别与内存泄漏相关的错误。
-
一旦执行较长时间,系统可能会面临与性能相关的问题。
-
耐久性测试还可以帮助我们发现这些问题并检查软件的稳健性。
-
在耐久性测试期间,可以轻松识别错误和故障,从而使开发团队和客户能够增强基础架构。
-
耐久性测试向开发团队和客户保证,系统将在更长的时间内有效实施,而无需任何维护,特别是在长周末。
-
执行耐久性测试的基本好处是降低维护成本,如果在整个测试周期中未发现与性能相关的特定问题,则维护成本可能会更高。
-
与另一种非功能测试类型(如性能测试)一样,耐久性测试也会导致客户满意度。
7. 耐久性测试的缺点
尽管执行耐久性测试有助于增强应用程序,但耐久性测试仍然存在一些缺点,下面将对此进行讨论:
- 这有点昂贵,因为它需要系统在测试执行期间无休止地运行,我们还将涉及合适的基础设施。
-
耐久性测试是一个耗时的过程。
-
为了执行耐久性测试,需要适当的计划,尤其是在确定测试运行需要完成的小时数时。
-
必须将耐久性测试环境与其他测试环境区分开来,因为它可能会导致应用程序故障或数据丢失。
-
无法执行手动耐久性测试;因此,我们将使用自动化工具来运行测试。
-
测试团队应该是专家,以便使用各种自动化工具。
8. 总结
在上面关于耐力测试的文章中,我们详细讨论了耐力测试的过程,耐力测试的一个例子,执行耐力测试的一些基本优点和缺点。
最后,我们可以说耐久性测试是非功能测试,是使用性能测试进行负载测试的一个子类别。
执行耐久性测试以检查系统在持续使用下的性能。在检测内存泄漏等问题方面,执行耐久性测试至关重要。这些问题可能是系统故障的原因,导致关键数据丢失。
耐久性测试使应用更加稳健,并使其能够在连续的重负荷下承受。我们应该防止手动执行耐久性测试,因为这是一个非常耗时的过程。这就是为什么它主要是自动化的。
用于耐久性测试的一些最常见的工具是Apache JMeter,LoadUI,LoadRunner,WebLoad,IBM
Rational Performance Tester等。
耐久性测试的时间取决于业务、项目和客户要求。它可能持续 10-15 小时或几天或一个月,有时甚至一年。
耐久性测试过程从建立隔离的测试环境、创建测试计划、估计测试周期持续时间、分析风险、准备测试计划、执行耐久性测试开始,最后关闭测试周期。
|