51Testing软件测试论坛
标题:
软件开发中的性能测试,看这一篇让你融会贯通
[打印本页]
作者:
lsekfe
时间:
2021-4-9 09:26
标题:
软件开发中的性能测试,看这一篇让你融会贯通
谈到
测试
很多开发人员以为是测试人员需要考虑的事情,其实不然针对一个良好的应用测试是需要研发人员,测试人员,
项目管理
人员,甚至公司高层需要关心的事情。因为这个涉及到交付的软件产品的质量问题。今天我们来聊聊
软件开发
中的
性能测试
和
压力测试
。
什么是性能测试
是针对目标应用或者目标系统的速度,吞吐量以及设备或者硬件的有效性的测试。说白了就是看应用或者系统是否达到了设计之初设定的那个预期。如果系统设计100分是满分的话,那么性能测试就是看这个应用或者系统是否达到了最基本的可用预期,也就是及格的分数60分。
如何进行性能测试
那么执行性能测试需要经历哪几个阶段呢?
第一,建立性能测试的目标
,例如我们希望该系统的在规定时间能够支持多少的并发数(5000/秒)。这个目标定义的依据又是什么呢,我们通常是通过系统运行的历史数据归纳总结获得的,如果是新建的系统,可以参考同行业其他系统在一定业务量情况下的标准。
第二,建立适合的测试环境
,这里我建议最理想的测试环境就是和生产环境一模一样的,不过这个一般是很难达到的,这需要动用大量的服务器资源。我们可以根据生产环境服务器资源的1/2,1/4,1/8 的配置来设置这个测试环境,测试的结果再按照2,4,8的倍数放大,当然这里需要考虑设备增多以后的通讯损耗问题,所以最后的结果需要打一个折扣。不过这样的预估和真实的生产环境已经向差不多了。
第三,定义测试
,这里我们需要进行以下几种测试。
耐久性测试:针对访问量不大,但是持续时间长的测试场景。例如:浏览商品的信息。
负载性测试:针对瞬时访问量大,但是持续时间不长的测试场景。例如:限时秒杀。
常用场景的测试:针对特殊场景的测试,例如:4g信号不佳的时候,会降级到3g信号,这个时候的用户访问。又如,在离线状态下的信息访问。
主要部件测试:针对核心功能的测试,例如:订单功能。
系统测试
:考虑整个系统闭环的测试。
以上这些测试,都需要根据具体的测试场景,写出
测试用例
以及需要的数据。这里的数据尽量使用生产环境的数据。
第四,执行测试
,这里有很多执行的方法。我们介绍一种常用的性价比较高的方法。针对目前的持续集成持续开发的模式,在每天发布之后可以进行一些负责测试,功能性的测试,有人工或者脚本完成。在发布的当天晚上,利用夜间到第二天的较长时间进行耐久性测试,由脚本完成。
第五,分析数据
,在执行测试之后我们会收集到一些数据,这些显然是我们关心的,例如:响应时间,
数据库
单位时间处理查询请求的个数。这里我们可以通过t-校验,因子分析,主效应图,方差分析等方法对这些信息进行分析,看是否达到了我们预期的设想。
第六,
记录
报告问题
,说白了就是发现问题需要找人解决问题。把分析的结果和我们的预期的结果进行对比如果产生了一定的偏差(例如:团队定义的偏差是5%),一但超过了这个偏差就需要记录一个问题,并且分配给对应的工程师进行解决。当然如果有的问题比较特殊需要团队进行审核决定。
第七,重复测试和分析
,这里比较清楚,发现问题解决问题然后再次验证问题,使整个测试过程形成一个闭环。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2