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

news2024/11/25 14:47:01

目录

前言

压力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

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

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

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

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

总结:

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

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

   

                                                 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/667969.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vivado 下 呼吸灯实验

目录 Vivado 下 呼吸灯实验 1、实验简介 2、实验环境 3、实验任务 4、硬件设计 5、程序设计 5.1、呼吸灯代码如下: 5.2、添加约束文件 .xdc 5.3、下载验证 Vivado 下 呼吸灯实验 呼吸灯最早由苹果公司发明并应用于笔记本睡眠提示上,其一经展出&…

2023年6月GESP能力等级认证C++二级真题

2023-06 GESP二级真题 题数:27 分数:100 测试时长:90min 一、单选题(每题 2 分,共 30 分) 1. 高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的可执…

电商数仓(用户行为采集平台)数据仓库概念、用户行为日志、业务数据、模拟数据、用户行为数据采集模块、日志采集Flume

1、数据仓库概念 数据仓库( Data Warehouse ),是为企业制定决策,提供数据支持的。可以帮助企业,改进业务流程、提高产品质量等。 数据仓库的输入数据通常包括:业务数据、用户行为数据和爬虫数据等。 业务数…

Linux信号概念、认识、处理动作 ( 2 ) -【Linux通信架构系列 】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 期待你的关注哦!!! 现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the…

适合嵌入式开发的GUI(嵌入式学习)

嵌入式开发的GUI如何选择? 常见的嵌入式GUI开发方法轻量级GUI库优缺点 基于Web技术优缺点 Qt框架优缺点 原生开发优缺点 嵌入式系统的限制 常见的嵌入式GUI开发方法 嵌入式开发中的GUI(图形用户界面)是指在嵌入式系统中实现图形化的用户界面…

Unity核心7——2D动画

一、序列帧动画 (一)什么是序列帧动画 ​ 我们最常见的序列帧动画就是我们看的日本动画片,以固定时间间隔按序列切换图片,就是序列帧动画的本质 ​ 当固定时间间隔足够短时,我们肉眼就会认为图片是连续动态的&#…

Pandas数据处理与分析教程:从基础到实战

文章目录 前言什么是Pandas?Pandas的安装和导入数据结构Series(案例1:创建Series)DataFrame(案例2:创建DataFrame) 数据读取和写入从CSV文件中读取数据(案例3:读取CSV文件…

一起学SF框架系列6.2-模块core-Environment

Environment是集成在容器中的抽象接口,它对应用程序环境的两个关键方面进行建模:配置文件(profiles)和属性(properties)。 配置文件(profiles) 配置文件为核心容器中提供了一种机制…

Redis7---单线程和多线程(一)

目录 一、几个面试题 1.Redis的单线程部分 1.2 Redis所谓的“单线程” 1.3 Redis演进变化 1.3.1 Redis 3.x 单线程时代性能很快的原因 1.3.2 Redis 4.0 之前一直采用单线程的主要原因有三个 2. Redis单线程为什么加了多线程特性 3.Redis 6/7的多线程特性和IO多路复用入…

【系统架构】第二章-计算机系统基础知识(一)

计算机硬件 1、处理器:CISC(复杂指令集)、RISC(精简指令集) 2、存储器:按照与处理器的物理距离:片上缓存、片外缓存、主存、外存 3、总线:按照总线在计算机中的位置划分&#xff1a…

大厂流出2023年最新软件测试面试题【全】

1.B/S架构和C/S架构区别 B/S 只需要有操作系统和浏览器就行,可以实现跨平台,客户端零维护,维护成本低,但是个性化能力低,响应速度较慢C/S响应速度快,安全性强,一般应用于局域网中,因…

格雷码转换电路

目录 格雷码转换电路 1、简介 1.2、格雷码转化为二进制码原理如下: 1.3、二进制码转化为格雷码原理如下: 2、实验任务 3、程序设计 3.1、格雷码转换二进制 3.2、二进制转换格雷码 4、仿真测试 5、仿真验证 格雷码转换电路 格雷码,…

推荐一款能够节省办公空间的显示器!

作为一名高校科研人员,课题组师生日常科研工作必备电子设备的维护及更新对于科研进度有着极大影响作用。近日购买了最新一代的戴尔显示器E2424HS。 以下是我的一些真实使用体验: 01 外观高端大气 拆箱前,在检查外包装没有任何破损后&#…

城市道路工程设计技术措施

为在城市道路工程建设中正确执行国家和行业有关法律、标准、规范和规程,提高工程建设质量,特制定《城市道路工程设计技术规程》(2011年版)专门编的。  本办法主要依据国家和行业有关法规、标准、规范和规程等,参照地…

Spring 是什么框架?

对于一门技术,我们需要从为什么要学、学什么以及怎么学这三个方向入手来学习。那在说Spring这三点之前,我们先看Spring之前要学什么。 Java基础、Java语法进阶、MySQL基础操作、MySQL数据库设计和多表操作、JDBC、Maven基础、MyBatis、HMLCSS、JavaScrip…

字节跳动做了3年软件测试,五月无情被辞,想给划水的兄弟提个醒

前言 先简单交代一下背景吧,某不知名 985 的本硕,20 年毕业加入字节,以“人员优化”的名义无情被裁员,之后跳槽到了有赞,一直从事软件测试的工作。之前没有实习经历,算是5年的工作经验吧。 这5年之间完成…

全网最全,Web测试点详细整理(测试场景举例+常见问题分析)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Web测试检查表 功…

go环境安装配置(windows)

下载go 安装包 官网: https://go.dev/dl/ go语言中文网: https://studygolang.com/dl 下载压缩包,解压 环境变量配置 GOROOT 配置你解压的目录 在Path中追加一条 %GOROOT%\bin 这里go对比JAVA还多了一个配置: GOPATH 配置go以…

原生微信小程序基础-分包加载自定义组件项目全流程

小程序基础-分包加载&&自定义组件 小程序分包加载 小程序分包加载-为什么要分包加载 微信平台对小程序单个包的代码体积限制为 2M,超过 2M 的情况下可以采用分包来解决即使小程序代码体积没有超过 2M 时也可以拆分成多个包来实现按需加载配置文件能忽略的…

远程控制电脑软件全方位测评,远程控制工具哪家强

*本文内容以及测试数据来自“B站” 作者:小李student 先问大家一个问题,你心目中最好的远控软件是哪个? 今天我要测评几个有意思的远控软件,他们分别是todesk 、向日葵、RayLink、parsec、其实我还测试了微软自带的远程控制,但…