软件测试中的耐久性测试是什么意思?
耐力测试
耐久性测试是一种非功能性的软件测试方法,在这种方法中,软件会在长时间的重负载下进行评估,以确定软件程序在重复使用下的性能。耐久性测试的主要目标是验证该程序可以在不降低反应时间的情况下长时间管理高负载。
这种研究方法是在输出运行时间结束时进行的。耐力测试是一种耗时的方法,可能需要长达一年的时间。可以使用外部负载,例如Internet流量或用户行为。这将耐久性测试与负载测试区分开来,负载测试通常持续数小时。
耐力意味着能力,但耐力测试也可以称为容量测试。
您将在本教程中阅读以下内容-
什么是耐力测试?
耐力测试目标
在耐力测试期间要寻找什么
耐力测试程序耐力测试示例
耐力测试工具
耐力测试的好处
耐力测试的缺点
耐力测试目标
耐久性测试的主要目标是检测是否有任何数据丢失或内存泄漏。
看看机器在长期使用中是如何工作的。
验证设备反应时间在较长时间后与程序开始时相同或更高。
确定给定设备在满足输出目标的同时可以处理的用户和交互数量。
为了平衡未来的压力,我们首先要确定未来需要多少额外的资源(例如处理空间、磁盘容量、内存利用率或网络带宽)来服务用户。
耐久性监控通常通过使机器负担过重或减少特定系统资源并比较结果来执行。
执行它是为了确保在被认为是相对“自然”的使用周期之后不存在故障或内存泄漏。
在耐力测试期间要寻找什么
在耐久性测试期间评估以下项目。
测试内存泄漏:执行检查以确定程序中是否存在任何可能导致系统或操作系统崩溃的内存泄漏。
测试系统层之间的连接关闭:如果系统层之间的连接没有成功关闭,系统的任何或所有模块都可能会停止。
测试数据库连接关闭成功:如果数据库连接没有成功关闭,设备将失败。
测试响应时间:当程序由于重复使用而变得不那么有效时,会检查设备的系统响应时间。
耐久性测试程序
以下是耐力测试的基本测试策略-
测试环境:识别耐力测试所需的硬件、软件和操作系统,以及在团队内委派任务和职责。在运行测试之前,应准备好气氛。您还必须估计典型数据库的大小及其每年的增长。因此,您必须测试您的应用程序在一年、两年或五年后的反应。
开发测试计划场景:测试用例的准备、审查和实施应根据研究目的进行设计——手动、自动或两者结合。压力检查、断点测试等都可以包含在评估程序中。应用程序的断点是通过对设备进行压力测试来确定的。
测试时间的估计:提供对完成测试过程所需的时间的估计。应考虑参与的测试人员数量和所需的测试阶段数量。
风险分析:评估风险并适当应对预防措施。根据风险因素对测试用例进行分类,以及识别测试人员在耐久性测试过程中可能遇到的风险和问题。
随着时间的推移,成功水平能否保持稳定?
还有其他小问题有待发现吗?
是否有任何未解决的外部干扰?
测试计划:在时间限制下建立预算和可交付成果。耐久性测试涉及在很长一段时间内对系统/应用程序应用一个大而正常的交互负载结构。
耐久性测试示例
尽管压力测试将被测设备推向其突破点,但随着时间的推移,耐久性测试将应用推向其突破点。例如,随着程序运行时间的延长,最复杂的问题——内存泄漏、数据库服务器使用和机器无响应——就会出现。如果您错过了耐力检查,那么在部署之前发现这些缺陷的可能性很小。
耐力测试工具
网络加载
加载完成
ApacheJMeter
加载程序
应用程序
加载界面
开放式STA
Rational性能测试器
耐力测试的好处
它有助于决定负载下的系统将承担多少工作。
为客户提供可靠的数据,他们可以使用这些数据来验证或改进他们的基础设施需求。
识别当机器长时间以高水平运行时可能出现的性能问题。
在较小的定制效率检查中发现了常见的问题,确保即使在有限的时间内承受高负载,应用程序也能保持可用。
耐力测试还用于确定在长时间执行期间是否存在任何输出损失。
耐力测试的缺点
总是很难确定适当增加多少张力。
耐久性测试可能导致设备和/或网络故障,如果不分离测试环境,可能会造成严重损坏。
机器过度使用将导致永久性数据丢失或损坏。
负担消除后,资源利用率仍然很高。
程序的任何组件都无法做出反应。
最终用户注意到未初始化的异常。
概括
耐久性测试是软件工程中负载测试的一个分支。
耐久性监测是一种耗时的方法,可能需要长达一年的时间。
执行验证检查以确认-
测试期间内存泄漏
完成测试所需的时间
测试数据库关系,等等。