什么叫压力测试(StressTesting)

什么叫压⼒测试(StressTesting)
什么叫压⼒测试(Stress Testing)
在测试两个字前⾯加上⼀个限定词,就变成了很多测试。例如:压⼒测试、负载测试、性能测试、功能测试等等。但究竟什么是压⼒测试,初学者往往望⽂⽣义,都能说上⼀两句。是啊,谁还不懂“压⼒”是什么意思?谁还没经历过压⼒?然⽽,压⼒测试的真正含义和⽬的,它和其它测试(特别是负载测试)的区别,不是所有的软件⼯程师都是掌握的。
按照Ron Patton在其《Software Testing》⼀书中的定义,压⼒测试是⼀种破坏性测试,它故意让软件在⽐较少的资源环境下运⾏,如低内存、⼩硬盘、慢CPU上运⾏,考验程序直⾄程序⽆法运⾏,从⽽发现软件缺陷。⽤⼀句形象的话来⽐喻,就是让软件在饥饿状态上运⾏。
下⾯有⼀个例⼦。
⼀般地,软件应⽣成运⾏⽇志,当系统出现故障时能根据⽇志快速诊断出问题所在,或⽤于操作的责任追踪和审计,这些⽇志⽂件可能记录在本地磁盘上,⼯程师如想到要这⼀步,即系统运⾏情况要记录在⽇志⾥,那么他就⽐完成学校⽼师作业进了⼀步。⽇志⽂件随着时间的推移不断膨胀,总有⼀天当前磁盘不够⽤了,⽆法记录新的⽇志,软件设计者要想办法解决这个问题,解决这个问题有两个办法:⼀是
提⽰⽤户系统⽆法记录新的⽇志,让⽤户判断有不要中断系统运⾏;⼆是按照字母顺序,将⽇志记录到下⼀个磁盘,如D盘或E盘或F盘,如此等等。软件⼯程师如能想到这⼀步,那么他⼜进了⼀步。如果将后续的D、E、F等所有的盘都⽤完了,再提醒⽤户,或直接终⽌系统运⾏。
上述逻辑可⽤下⾯的伪程序表⽰:
1      If disk C has enough available space then
2                Write Log to C;
3      Else
自动点火器4                If D disk exists then
5                          If D has enough available space then
6                                  Write log to D;
7                          Else
电解臭氧发生器8                                  If E disk exist then
9                                            If E has enough available space then
10                                                    Write Log to E;
11                                          Else
12                                                    Prompt user: not available disk space for log;
13                                          End if
14                                Else
15                                          Prompt user: not available disk space for log;
16                                End if
17                        End if
18              End if
19    End if
焊割机在上⾯的例⼦中,如果对其进⾏压⼒测试,就是选⽤⼀台很⼩配置的机器,各磁盘的剩余空间都很⼩。在这种情况下运⾏系统,很快机器上的所有磁盘空间都能被占满,最后程序被迫终⽌。
微孔抛光镜面加工
这就是压⼒测试的⼀个典型例⼦,将程序施加“压⼒”,将其逼到没法运⾏的地步。如果你选⽤的机器C盘⾜够⼤,在你整个测试活动过程中,C盘不会本占满,则执⾏到的语句只有1、2和19三⾏,如果你选⽤的机器,其C、D、E三个磁盘都很⼩,则⽇志很快就会占满这⼏个磁盘,则1-19的所有语句都能本执⾏。可以看出,有⽆压⼒测试,对程序语句和逻辑分⽀的覆盖是不⼀样的。英姿带
inu-006
很多⼈误将负载测试和压⼒测试混为⼀谈,认为给程序的负载⼤,程序经受的压⼒就⼤。其实不然,负载测试考验的是系统的吞吐量,假如⼀个⽹站号称能经受100万个⽤户同时访问,那么就想⽅设法模拟出100万个⽤户对⽹站发起连接,观察服务器能否正常作出反应。⼀般地,负载测试是给被测的系统“喂饱”,看看它能否吞下去,系统为了能吞下⼤的输⼊,常常在内部机制上下⼯夫,或者扩⼤服务器的配置。
负载测试是尽量增加对系统的访问,⽽压⼒测试是尽量使系统在资源稀缺的环境下运⾏。⼆者区别很⼤。但不排斥两个技术同时使⽤。

本文发布于:2024-09-23 09:19:29,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/223660.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:测试   系统   负载   程序   软件
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议