大家好,我是阿萨。今天学习稳定性测试。
一 :什么是稳定性测试?
稳定性测试是一种非功能性软件测试,用于测量软件应用程序在很长一段时间内持续运行的效率和能力。稳定性测试的目的是通过执行其全部测试用例,检查软件应用程序在正常使用的任何时间点是否崩溃或故障。
稳定性测试用于检查已开发产品超出正常操作能力的效率,找到一个临界值。对产品在高负载下的错误处理、软件可靠性、鲁棒性和可伸缩性的关注,比检查正常情况下的系统行为更有意义。
稳定性测试评估稳定性问题。该测试主要是为了最大限度地对软件组件施加压力。这是一种非功能性技术。
稳定性测试也被称为负载或耐力测试。
二:系统未进行稳定性测试的风险
对于一个正在测试的应用程序,如果引入了大量用户,并且应用程序必须运行几个月而不重新启动,那么很可能会出现一些问题:
1. 系统变慢
2. 系统出现功能问题
3. 系统显示有线行为
4. 系统完全崩溃
在软件工程中,稳定性测试通常涉及使用大量用户(虚拟)测试系统,并测量性能参数,以验证系统是否能够支持预期的负载。
三: 为什么要进行稳定性测试
这种测试帮助用户理解系统在现实情况下的工作方式。
因此,稳定性测试的好处有:
1. 对被测试系统的稳定性提供信心。
2. 确保系统能够处理大型程序。
3. 监视系统的有效性。
4. 测试系统在压力下的稳定性。
它在产品开发中扮演着重要的角色,因为它被用来确定在测试的软件产品在发布之前的局限性,或者在产品正式运行或生产之前需要进一步改进的领域。
稳定性测试技术的一个非常常见的例子是
网上购物门户:稳定性测试将检查网站在如下场景下如何运行时:
在高峰时间输入的数据量
在特定时间的点击数
同时页面加载问题
系统的行为
系统的响应性和其他许多特性都属于稳定性测试
另一个例子:CPU测试是性能测试技术下的一种常用的稳定性测试形式。该测试检查处理器稳定性,并在处理器工作负载增加时监视其性能。
四:如何进行稳定性测试
为了确定测试的范围和目标,我们必须确保应用程序服务器在负载测试执行期间不会崩溃。
为了确定业务问题,根据最终用户的角度验证系统性能和负载。
1.分配不同的职责和角色,如创建测试计划,测试用例设计,测试用例评审,测试执行等。
2.确保测试在规定的时间内交付。
3. 确保适当的负载测试工具和经验丰富的团队在场。
4.测试所涉及的风险和成本。根据CPU利用率和内存决定每次执行的成本。
5. 确定缺陷跟踪和报告,以及它们与需求的适当映射。
CPU性能稳定性测试用例:
验证系统的上限值。
系统如何崩溃或恢复。
每个请求完成的事务总数。
事务响应是保持稳定还是随时间增加。
系统在高负载下的表现。
在重载作用下的响应和行为。
五:稳定性测试测试报告
在测试执行期间收集和度量一些统计信息;分析这些数字以生成报告并确定可能的性能问题。
在测试中收集的统计数据示例如下:
1.事务响应时间:测试期间执行事务所需的平均时间。此统计信息将评估服务器的性能是否在为系统定义的可接受的最小和最大事务性能时间周期内。该信息将评估web服务器处理请求和发送到应用服务器所花费的时间,在大多数情况下,应用服务器将向数据库服务器发出请求。
2.每秒命中次数:用户在服务器上的命中次数。这些统计数据有助于确定用户产生的负载数量,相对于点击数而言。
3. 吞吐量:测试期间Web服务器上的吞吐量,以字节为单位。吞吐量是指用户在任何给定时间从服务器接收到的数据量。这个统计数据有助于评估用户产生的负载量。
4.每秒事务数:这是测试期间执行的已完成事务(成功和失败)的总数。此统计信息有助于检查系统上的实际事务负载。
5. CPU:测试期间使用的CPU百分比。
6.内存:测试期间的内存使用情况。
7. 磁盘:测试期间使用的磁盘空间的利用率。
六: 稳定性测试基础知识
稳定性测试属于性能测试——一种用于检查软件的一些质量属性,如稳定性、可靠性和可用性的技术。
该测试用于确定系统或子系统在特定工作负载下的执行速度。
性能测试有很多种类型,稳定性测试是其中的一种。
压力测试:这是一种测试类型,它检查系统的鲁棒性超出系统的能力。
峰值冲击测试:它用于通过立即增加系统的负载来检查系统的行为。目标是检查系统在哪个点上会有性能问题,或者它会通过。
可伸缩性测试:用于检查系统的能力。系统将如何有效地应对不断增长的需求,大小和体积的变化。
批量测试:这是一种非功能测试技术,在这种技术中,被测试软件要承受大量的数据,并相应地检查和验证系统的行为。
负载或稳定性测试:(已经在上面讨论过)
结论:
稳定性测试是一个通过施加最大负载来测试应用程序行为的非功能性过程。执行它是为了找出系统在给定环境中的可伸缩性。