自动化测试之稳定性测试的设计

目录

前言

压力Stress

随机Randomness

并发Concurrency

交互Interaction

时间Time

总结:


前言

稳定性测试是自动化测试领域最为核心的内容之一。稳定性测试设计应该考虑哪些方面?如何在有限的样本上最大化测试产出?笔者结合自动化的一些经验和理解,总结了稳定性测试设计最核心的五个要素:压力、随机、并发、交互以及时间。何解, 一起看一下。

压力Stress

英文中,稳定性叫做Stability;而压力称为Stress。在测试领域,很多人将稳定性测试等价为压力测试。其实不然。稳定性的一个最重要实现途径是通过压力的方式,但是压力不是测试稳定性的唯一方式。压力的内涵是重复地做同样的事情,通过长时间、多轮次的执行,以期达到让功能break或者系统crash的目标。在现实中,这往往是一个比较有效、可行的方式。

但是,压力测试的一个最主要问题是:把一个简单功能重复1000遍和把1000个简单功能轮流执行一遍的效果可能大不相同。前者不一定能够发现问题,但是后者却很有可能发现问题。为什么呢?这就涉及到到下面几个要素。

             

 

随机Randomness

在稳定性测试中,如果按部就班地一条条case执行下来,也许并不会有太好的产出。因为你的事件序列是固定的、可预测的,没有太多“意外”。

设想一下,在A地和B地之间有若干条路径,但是你每次都走同一条路,那么你可能对这条路上的肯洼不平了如指掌,但是对于其他路径上的情况你却一无所知。

想要探明A到B之间所有的坑,理想的情况是,你可以遍历A和B之间的每一条通路。但是现实情况是,你并不知道到底有多少条路径的存在,而且要完全遍历它们也十分困难。因此,增加一些随机性就很有必要。随机能够让你在有限的时间和空间内构造出尽可能多的组合,从而创造更多的“意外”发现。

并发Concurrency

真实世界往往是复杂多变的,比如你在刷微信的时候可能会进来一个电话,你在接听电话的时候又可能发生了网络变化,等等。这类并发大多是不可能预先知道的,可称之为“中断”,它是测试对象和周围环境之间的并发;但在真实用户场景中,还存在大量自然而然的并发场景,比如边听歌便上网,边打游戏边接听电话等等。这是测试对象内部不同功能模块之间的并发。

并发为什么有助于发现稳定性的问题?首先因为它是真实世界中大量存在的场景;其次,因为它涉及到系统资源的争抢和协同,所以系统内部状态较单一场景会复杂许多,从而也更加能够触发问题。

并发的场景数目可以是两个或者更多。越多的并发其状态就会越复杂。

             

 

交互Interaction

交互和并发还不完全一样。并发一般是多个独立的功能或者状态同时运行。但是交互则是指完成同一个操作涉及到多个子系统之间的协同工作。

比如,你打开支付宝刷脸,那么你就要涉及到相机的调用;你把手机通过WIFI投射到电视上打游戏,那么就涉及到GPU、WIFI、Display等多个部分的协同与交互。在设计自动化时,考虑子系统交互,将能够极大提升测试产出。

时间Time

一般来说,在考虑了以上四个要素(压力、随机、并发、交互)之后,基本就能够发现很多稳定性的问题了。如果上面几个都注意到了,却还是无法发现问题,那么可能就是你执行的时间不够长。

时间是一个很重要的因素,却也是最容易被忽略的因素。随着时间的增长,设备的状态也会发生更多的变化,比如存储空间越来越小,系统越来越慢,在这些情况下,设备也更加容易出现问题。

频繁更改测试执行策略的唯一后果就是,每一种策略的执行时间都被压缩了,都没有被充分执行。所以,做好前四点,然后静待花开就好。

综上,一个好的稳定性测试,必须要充分考虑这五个要素的影响:适当的压力 + 充分的随机性 + 针对性的并发和交互 + 足够的时长,那么就能够较好地覆盖产品在稳定性方面的质量需求。

总结:

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

   

                                                 

本次测试采取负载测试、并发测试、可靠性测试。测试方案采取模拟真实用户使用场景,模拟指定人数在一定时间点击界面产生的请求数。 在并发10(单位个/s)、20、40、80、160、500、1000、2000的基准下,调整用户数(虚拟用户用一个线程,下统称线程数)、点击准备时间(用户点击时间模拟时间,下称Ramp-up单位秒)和用户点击次数(下称循环),例如10个用户,每个用户每5秒点击1次,则线程数为10,Ramp-up为5,循环数为1。详细测试策略请看2.1。 对登录、数据新增(用户)、编辑(用户)、获取(用户)和删除(用户)进行负载测试,获得其稳定负载值。 对全站使用策略100-100-1-1进行并发测试,挑选用户服务所有接口。基础数据服务中挑选和用户服务关联的功能接口5个,组织结构接口4个,和用户服务无关的行政区3个接口。具体接口请查看附件1。 对全站进行可靠性测试,根据以上测试接口,选择稳定的并发数后持续测试-模拟时长8+小时。 稳定性测试是通过运行状态和资源指标的2个方面来分析及评估系统的稳定性,请求记录项响应的时间平均值、最小值、最大值、标准偏差、异常(百分比)、吞吐量、接收、发送、平均字节数,服务器资源指标CPU、Memory,在此额外添加记录数据库数据。通过调试测试策略、分析实验数据得出相关系统稳定性的结论,从而达到平台能力验证、规划能力、性能调优、缺陷发现等目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值