软件测试中的稳定性测试

稳定性测试

稳定性测试是一种非功能性软件测试,用于测量软件应用程序在长时间内持续运行的效率和能力。稳定性测试的目的是通过行使其全部使用范围来检查软件应用程序是否在任何时间点崩溃或故障转移到正常使用状态。

稳定性测试是为了检查开发的产品超出正常操作能力的效率,通常是到断点。比起检查正常情况下的系统行为,重载下产品的错误处理、软件可靠性、健壮性和可扩展性更有意义。

稳定性测试评估稳定性问题。这项测试主要是为了证明它是一种非功能性的技术。

Stability Testing image
Stability Testing image

稳定性测试也称为负载测试或持久性测试。

在本教程中,将了解-

  • 什么是稳定性测试?
  • 被测系统未经过稳定性测试时出现的问题
  • 为什么稳定性测试
  • 如何做好稳定性测试
  • CPU性能稳定性测试用例
  • 稳定性测试的测试报告

被测系统未经过稳定性测试时出现的问题

对于被测应用程序,其中引入了大量用户,并且应用程序必须运行数月而无需重启,则可能会出现许多问题:

可以面对可能的错误,

  • 系统变慢了
  • 系统遇到功能问题
  • 系统显示有线行为
  • 系统完全崩溃了

在软件工程中,稳定性测试通常涉及对大量用户(虚拟)执行系统,并测量性能参数以验证系统是否能够支持预期的负载。

稳定性测试的原因

这种测试有助于用户了解系统在真实情况下的工作方式。 因此,稳定性测试允许检查,

  • 对被测系统的稳定性充满信心。
  • 确保系统可以处理大型程序。
  • 监控系统的有效性。
  • 测试系统在压力下的稳定性。

它在产品开发中扮演着重要的角色,因为它用于在软件产品发布之前确定正在测试的软件产品的局限性,或者在产品上线或发布前确定需要进一步改进的地方。

稳定性测试技术的一个非常常见的示例是

在线购物网站稳定性测试将检查网站在以下情况下的表现-

  • 高峰时间输入的数据量很大
  • 特定时间的点击数
  • 同时发出页面加载问题
  • 系统的行为
  • 系统的响应性以及更多的内容将接受稳定性测试

另一个例子

CPU测试是性能测试技术下的一种流行的稳定性测试形式。此测试检查处理器稳定性,并在处理器工作负载增加时监视其性能。

如何做好稳定性测试

  • 要确定测试的范围和目标,必须确保应用程序 Server(s) 在负载测试执行期间不会崩溃。
  • 要确定业务问题,根据最终用户角度验证系统性能和负载。
  • 分配不同的职责和角色,如创建测试计划、测试用例设计、测试用例评审、测试执行等。
  • 确保在规定的时间内完成测试交付
  • 为了确保有合适的负载测试工具和经验,团队也在场。
  • 测量测试所涉及的风险和成本。根据CPU利用率和内存确定每次执行的成本。
  • 缺陷跟踪和报告,并与需求进行适当的映射。

CPU性能稳定性测试用例

要验证系统的上限,执行以下操作。

  • 系统如何崩溃或恢复。
  • 每个请求完成的事务总数。
  • 事务响应是保持稳定还是随时间增加。
  • 系统在重载下的行为方式。
  • 在重载下的反应和行为。

稳定性测试的测试报告

在测试执行期间收集和测量几个统计信息;分析这些数字以生成报告并识别可能的性能问题。

在测试下收集的统计数据示例如下:

  • 事务响应时间:测试期间执行事务的平均时间。此统计信息将评估服务器的性能是否在为系统定义的可接受的最小和最大事务性能。

此信息将评估Web服务器处理求并发送到应用程序服务器时间,在大多数情况下,应用程序服务器将向数据库服务器发出求。

  • 每秒点击次数:用户在服务器上进行的点击次数。此统计数据有利于确定用户相对于命中数量生成的负载数量。
  • 吞吐量:测试期间Web服务器上的吞吐量,以字节为单位。此统计信息有助于评估用户生成的负载量。
  • 每秒事务数:这些是测试期间执行的已完成事务(包括成功事务和失败事务)的总数。此统计信息有助于检查系统上的实际事务负载。
  • CPU:测试期间花费的CPU利用率百分比。
  • 内存:测试期间的内存使用情况。
  • 磁盘:测试期间花费的磁盘空间利用率。

稳定性测试属于性能测试–执行该技术是为了检查软件的一些质量属性,如稳定性、可靠性和可用性,用于确定系统或子系统在特定工作负载下的执行速度。

性能测试有多种类型,稳定性测试就是其中之一。

  • 压力测试:它是一种测试类型,用于检查超出系统容量的系统的健壮性。
  • 尖峰测试:用于通过即时增加系统负载来检查系统行为。目标是检查系统在哪个点上会出现性能问题,或者会通过。
  • 可伸缩性测试:用于检查系统的能力。该系统在不断增长的需求、大小和体积变化时的效率如何。
  • 容量测试:这是一种非功能性测试技术,被测软件会受到海量数据的影响,并相应地检查和验证系统的行为。
  • 负载或稳定性测试

一些用于性能测试的工具如下所示-

  • WebLOAD
  • LoadRunner
  • Apache JMeter
  • NeoLoad
  • CloudTest
  • Loadstorm
  • LoadUI
  • WAPT
  • LoadImpact
  • Loadster
  • Httperf
  • OpenSTA
  • Performance Tester
  • Testing Anywhere

结论

稳定性测试是通过应用最大负载来测试应用程序行为的非功能性过程。它的执行是为了找出系统在给定环境下的可伸缩性。

IT赶路人

专注IT知识分享