生产环境出现问题,测试人如何做工作复盘?

很多时候我们能把大部分的Bug或一些部署等问题在业务上线之前就解决了,但由于某些因素,线上问题还是时而出现,影响业务生产甚至是公司效益。

避免线上问题的发生以及线上问题及时处理是测试人员的一项重要职责,如何快速地处理,最大限度地降低影响范围,后续如何避免此类问题的发生,是我们需要复盘的重点内容。

图片

一 为什么要复盘?

在发布上线后,对测试过程进行复盘,总结遇到的问题,对当时的解决方案进行探讨。通过复盘,从而达到指导后续工作,减少重复踩坑。并在可以在个人复盘完成后,在部门内进行信息共享。每个人负责的项目虽然不同,但是测试思想确有共通之处。通过复盘分享,可以有效提升团队整体测试经验。

从质量保障的角度来说,针对线上问题进行复盘可以发现工作中的不足并持续改进,不断提高线上的交付质量。

从团队管理的角度来说,针对线上问题进行复盘也可以发现团队短板并针对性的补齐技术体系,提高团队效率。

从业务目标的角度来说,技术团队作为成本中心,也需要不断提高自身的交付产出质量,来支撑业务目标更好的达成。

图片

二 故障复盘的步骤

故障复盘的实施步骤通常包含以下步骤:

理解故障的技术背景

梳理故障的整体情况

识别故障的直接/间接影响

梳理故障时间线

识别和分析故障触发条件和关键环节

层层下钻故障根因

分析解决方案

归纳推演出后续的跟进措施

总结经验教训

复盘的意义:

1.不是为了逃避现实,也不是为了炫耀,而是能真正解决某些问题。

2.检验完成的结果,回溯过程,总结利弊得失,做好资源沉淀。

3.为后续工作积累经验,提升个人能力。

4.作为跟领导汇报的材料用,方便未来查询。

GRAI复盘法:

G(Goal)回顾目标:回顾最初情景,列出当时的目标。

R(Rult)对比结果:列出目标完成情况,将结果和目标进行比较。

A(Analysis)分析过程:用今天的眼光和能力审视昨天的做法,学到对未来有用的信息。

I(Insight)总结规律:总结提炼出适用于类似情况的规律,合理进行模块整理。

图片

三 问题跟进前提

进行一切线上问题跟进的活动是基于测试人员本身对业务系统的熟悉程度,业务系统,也就是指业务和系统,除了业务之外,需要测试人员对业务所在的整体系统架构具备一定的熟悉程度,这里从上到下分应用层,软件层,系统层来分析。

图片

1、应用层

在应用层,我们主要关注的是我们能直接接触到的内容。首先,我们需要了解自己负责的业务系统在整体业务系统中的位置。除了了解业务系统内部的情况,我们还需要了解外部系统如何调用我们的业务系统,以及我们的业务系统如何调用外部系统。

同时,我们也需要清楚最基本的关键要素:量。这包括了业务系统的访问量,比如日访问量等。此外,我们还需要熟悉核心接口或核心功能的最大并发量,以应对突然的高流量以及网络攻击等问题。

2、软件层

在软件层,我们主要涉及到数据、配置和相关组件。数据通常指的是数据库,了解数据库的部署情况可以帮助我们解决数据读写等问题。同时,对于基础组件如nginx,涉及到负载均衡和跨域访问等业务配置,了解这些信息可以帮助我们定位问题。此外,对于缓存的合理使用情况的分析也有助于我们分析持久化和数据库使用方面的问题。还有一些相关的事项,比如JDK版本、JVM的启动参数等等,也需要了解。

3、系统层

在系统层面,与硬件相关的内容更多。这包括业务系统的部署方式,是在单台机器上还是分布式部署,具体所在的机房和网络段,以及部署时使用的是物理机还是docker等虚拟化技术。同时,还需要了解部署机器的硬件信息,比如内存大小、CPU数量和磁盘类型大小等。

要做好线上问题跟进,就得对自己所负责的业务系统了如指掌,只有知己知彼,才能百战百胜。

图片

四 问题跟进策略

对于问题跟进的策略,可以分为四个环节,包括影响范围评估、快速恢复、定位方法和问题复盘,接下来具体介绍这四个环节的内容。

策略1:影响范围评估

在跟进问题时,首要步骤是评估问题的影响范围,根据评估结果来设计应对策略和救火方案。评估过程中,首先要确定问题的类型,例如功能、性能或硬件方面的故障。例如,突然的大流量和大并发可能导致资源不足,造成许多待处理请求;内存故障可能导致资源效率下降等等。

对于功能上的故障,可以确定功能的重要性和优先级。对于核心功能的故障,需要尽快制定救火策略,减少影响范围,并确保敏感功能和信息的安全稳定。根据问题的影响范围采取相应措施。如果是面向用户的功能,应尽量避免问题功能与用户接触;如果是与上下游业务相关的功能,应及时通知相关业务方采取规避措施。

在评估和制定救火策略时,必须迅速行动,因为问题的影响范围和程度会随时间扩大。建立良好的告警反馈体系至关重要,通过线上监控、客服反馈等手段实时了解问题情况,以有效降低时间带来的影响。

策略2:快速恢复

在评估问题的影响范围后,需要快速响应并恢复系统。一般情况下,问题的定位速度可分为快速定位和无法快速定位两种情况。

对于可以快速定位问题的情况,如果是由业务功能导致的问题,通常会采取修复补丁的方式。但对于无法立即回收或发布版本的客户端应用程序(如移动应用),可以通过后台配置功能降级或关闭来处理。此外,一些问题可以通过调整配置参数来规避,也可以采取这种方式减小线上问题的影响范围。

当无法快速定位问题时,就需要果断行动,首要原则是将问题的影响范围降到最低。可以通过回滚版本来规避问题,这是最有效且首选的方法,回滚版本可以切断问题发生的原因,并保证最初的稳定业务。

当然,对于负载过高导致的问题,回滚版本并不能解决。这时通常采用重启的策略,重新启动后继续观察资源情况,通常是由于新版本的问题导致资源死锁等情况,所以有必要时回滚版本和重启策略可以同时使用。

如果问题涉及硬件方面,一般可以通过扩容来解决,例如增加硬盘、增加内存等,先提供足够的资源,然后再考虑性能优化方案。

对于已进行功能配置的情况,可以先关闭。

或降级功能,然后在测试环境中继续定位和解决问题,最后再发布修复版本。

策略3:定位方法

在处理线上问题时,降低影响范围后的下一步是定位问题的原因。无论是功能问题、性能问题还是环境问题,日志是重要的定位工具。因此,通常要求业务日志要准确记录,并及时告警错误。然而,也不能将所有内容都记录在日志中,只有精确的业务日志才能为业务系统的稳定运行提供有效依据。通过排查日志信息来定位问题的原因是最有效的方法。

功能问题通常可以在测试环境中重新出现,尽量模拟线上的情况,包括数据和配置,这样问题再次发生的概率就会增加,便于更容易地定位。

对于资源性能问题,可以通过监控告警日志和一些常用命令来获取信息,然后采取相应的解决措施。

一旦定位到问题,就要迅速制定修复和上线方案,确保业务系统在稳定状态下继续运行。

策略4:问题复盘

经过上述过程的执行,我们还需要进行总结,也就是问题复盘。我们都不希望问题再次发生,因此通过复盘来总结经验,可以提升大家规避问题和处理线上问题的能力。

在问题复盘中,我们可以分析问题的原因,是由人为因素导致的还是系统Bug,是遗漏的Bug还是新引入的Bug,以及是否由于外部系统数据流或组件不兼容等问题导致的。

处理问题的流程是否合理也是需要考虑的。有时候明明需要回滚版本却没有做,有时候又回滚了不必要的版本。在这方面需要权衡成本和方案的合理性,毕竟有时候版本很紧急,回滚会延迟进度,对业务来说并不是理想的结果。

如何避免类似问题再次发生也是问题复盘的核心环节。我们需要检查监控是否完善,是否由于监控告警不及时或信息不完善而影响了整体救火进度。同时,在系统架构上是否可以进行性能相关的优化,建立起对系统的保护措施,例如过载保护、服务降级、数据解耦等。

问题的复盘对于团队救火能力的提升是最有效果的,同时建立起相关文档,加强团队对业务以及系统的了解程度。

总结: 线上问题跟进是测试工程师的一项重要的职责,也是测试工程师的一门重要的能力,除了发现在研发测试阶段的问题,我们需要去解决线上的问题,为业务系统保驾护航,对于测试工程师来说责无旁贷。

提升自己代码能力,测试工具使用能力,写用例能力的同时,也要提升自己应对问题处理的能力,丰满自己在各个质量保证环节的能力,这样才能成为一名优秀的测试工程师。

总结:

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

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Pycharm 启动 Django项目 —— python篇

1、打开你的工程,在菜单栏里找到Run-->Edit Configurations 2、在打开的对话框里边选择Python,点击号 3.选择Python 4.出现了一个新的项Unnamed,你可以把它改名叫debug,好听一点 5.脚本选择你网站的manage.py,脚本参…

UDP-Hunter:针对各种UDP服务的网络安全评估工具

关于UDP-Hunter UDP-Hunter是一款功能强大的UDP服务安全评估工具,该工具可以覆盖IPv4和IPv6协议。 UDP扫描一直是一项缓慢而痛苦的工作,如果你打算在UDP的基础上添加IPv6支持,那么可选的工具就会非常有限。UDP-Hunter是一个基于Python的开源…

车辆数据的提取、定位和融合 精确车辆定位(其三.一 共十二篇)随机复合

第一篇: System Introduction 第二篇:State of the Art 第三篇:localization 第四篇:Submapping and temporal weighting 第五篇:Mapping of Point-shaped landmark data 第六篇:Clustering of landma…

2024.6.25力扣刷题记录-周赛403

目录 一、3194. 最小元素和最大元素的最小平均值 二、3195. 包含所有 1 的最小矩形面积 I 三、3196. 最大化子数组的总成本 四、3197. 包含所有 1 的最小矩形面积 II 博主在比赛时只过了前两题。剩下跟着灵神做,来自视频: 【状态机 DP【力扣周赛 403…

策略模式-通过枚举newInstance替代工厂

策略模式-使用枚举newInstance 前言一、枚举类:MarkCheckDataTypeEnum二、抽象类:AbstractMarkChecker三、检查类:MarkPeopleChecker四、demo演示总结 前言 很久没写文章了~~ 吐槽下:入职新公司后,基本在搬砖&#xf…

CppInsights: 学习C++模版的神器

CppInsights:深入理解C代码的利器 C是一门强大而复杂的编程语言,其复杂性主要体现在语言的多层次抽象和丰富的语法特性上。尽管这些特性使得C能够高效地处理复杂的任务,但也给开发者带来了理解和调试代码的巨大挑战。CppInsights正是在这一背…

RabbitMQ(消息队列)

RabbitMQ 它是消息中间件,是在消息的传输过程中保存消息的容器,实现应用程序和应用程序之间通信的中间产品。目前主流消息队列通讯协议是AMQP(二进制传输,支持多种语言)、JMS(HTTP传输,只支持J…

【PyQt5】一文向您详细介绍 setSpacing() 的作用

【PyQt5】一文向您详细介绍 setSpacing() 的作用 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓 博主简介:985高校的普通本硕&am…

南昌服务器托管让数据存储更安全

南昌,作为长江中游地区的重要中心城市,近年来经济发展迅速,产业结构不断优化。随着大数据、云计算、人工智能等新一代信息技术的快速发展,南昌的信息化建设步伐不断加快,为企业提供了良好的发展环境。在这样的背景下&a…

LabVIEW技术交流-控件的禁用属性与Mouse Up事件的一个坑

问题来源 我们平时对控件Mouse Up事件触发使用场景不多,可能在按钮控件上会偶尔用到。在一些场景中,我们用按钮的Mouse Up触发事件,但是又希望在某些限制条件下,按钮会被禁用而不能触发事件。 可是当我们禁用按钮时,它…

P2实验室装修标准都有哪些

P2实验室(也称为生物安全二级实验室,BSL-2实验室)的装修标准需要满足一系列的设计和施工要求,以确保实验室的安全性和功能性。因此,P2实验室装修标准不仅要满足一般实验室的要求,还需符合生物安全的特殊规定…

穿越千年的智慧之光——唐宋时期的节能“黑科技”省油灯

唐宋时期,中国古代科技达到了一个高峰,许多创新发明不仅在当时引领潮流,甚至在今天看来也充满了智慧的光辉。其中,一项名为“省油灯”的发明,便是当时节能减排的杰出代表,连著名诗人陆游都为之倾倒&#xf…

123.网络游戏逆向分析与漏洞攻防-邮件系统数据分析-收邮件功能的完善与优化

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果,代码看不懂是正常的,只要会抄就行,抄着抄着就能懂了 内容…

最强开源模型来了!一文详解 Stable Diffusion 3 Medium 特点及用法

前言 最强开源模型来了!一文详解 Stable Diffusion 3 Medium 特点及用法(附模型资源包) 大家好,我是AI绘画小33~ 备受期待的 Stable Diffusion 3(以下简称 “SD3”)终于向公众开放了,作为 S…

大厂薪资福利篇第四弹:字节跳动

欢迎来到绝命Coding! 今天继续更新大家最关心的 大厂薪资福利系列! 往期分享: 福利开水喝不完?大厂薪资福利篇!美团 职场文化发源地?大厂薪资福利篇!阿里巴巴 给这么多!还能带宠物上…

用英文介绍纽约:NEW YORK, USA‘s MEGACITY

NEW YORK, USA’s MEGACITY | America’s Largest City Link: https://www.youtube.com/watch?vdzjQ-akB3BI&listPLmSQiOQJmbZ7TU39cyx7gizM9i8nOuZXy&index24 The story of New York City, America’s megalopolis. Summary Paragraph 1: The Historical Developm…

站在巨人的肩膀上 C语言理解和简单练习(包含指针前的简单内容)

1.格式化的输入/输出 1.1printf函数 printf函数你需要了解的就是转换说明,转换说明的作用是将内存中的二进制转换成你所需要的格式入%d就是将内存中存储的变量的二进制转化为十进制并打印出来,同时我们可以在%X的转换说明对精度和最小字段宽度的指定&a…

第 133 场 LeetCode 双周赛题解

A 使所有元素都可以被 3 整除的最少操作数 遍历 n u m s nums nums &#xff0c;每有一个不被 3 3 3 整除的数&#xff0c;则操作数加 1 1 1 class Solution {public:int minimumOperations(vector<int>& nums) {int res 0;for (auto x : nums)if (x % 3 ! 0)res…

基于JSP的在线教育资源管理系统

开头语&#xff1a; 你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果你对在线教育资源管理系统感兴趣或者有相关需求&#xff0c;欢迎在文末找到我的联系方式。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术 工具&#xff1a;IDE、N…

excel表格加密:电脑文件加密的5个方法介绍【新手篇】

为了防止数据泄露&#xff0c;编辑好表格文件后一般都会加上密码。敏感数据的泄露会导致严重的商业损失和声誉损害。Excel表格加密方法有很多&#xff0c;包括金舟文件夹加密大师、金舟ZIP解压缩、工作簿密码设置等方法。 下面分享5个excel表格加密方法&#xff0c;希望能够帮到…