生產環境出現問題,測試人如何做工作復盤?

很多時候我們能把大部分的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,以及是否由于外部系統數據流或組件不兼容等問題導致的。

處理問題的流程是否合理也是需要考慮的。有時候明明需要回滾版本卻沒有做,有時候又回滾了不必要的版本。在這方面需要權衡成本和方案的合理性,畢竟有時候版本很緊急,回滾會延遲進度,對業務來說并不是理想的結果。

如何避免類似問題再次發生也是問題復盤的核心環節。我們需要檢查監控是否完善,是否由于監控告警不及時或信息不完善而影響了整體救火進度。同時,在系統架構上是否可以進行性能相關的優化,建立起對系統的保護措施,例如過載保護、服務降級、數據解耦等。

問題的復盤對于團隊救火能力的提升是最有效果的,同時建立起相關文檔,加強團隊對業務以及系統的了解程度。

總結: 線上問題跟進是測試工程師的一項重要的職責,也是測試工程師的一門重要的能力,除了發現在研發測試階段的問題,我們需要去解決線上的問題,為業務系統保駕護航,對于測試工程師來說責無旁貸。

提升自己代碼能力,測試工具使用能力,寫用例能力的同時,也要提升自己應對問題處理的能力,豐滿自己在各個質量保證環節的能力,這樣才能成為一名優秀的測試工程師。

最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/news/167434.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/167434.shtml
英文地址,請注明出處:http://en.pswp.cn/news/167434.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

XG916Ⅱ輪式裝載機后驅動橋設計機械設計CAD

wx供重浩:創享日記 對話框發送:裝載機 獲取完整論文報告工程源文件 本次設計內容為XG916Ⅱ裝載機后驅動橋設計,大致上分為主傳動的設計,差速器的設計,半軸的設計,最終傳動的設計四大部分。其中主傳動錐齒輪…

【多線程】Thread類的使用

目錄 1.概述 2.Thread的常見構造方法 3.Thread的幾個常見屬性 4.啟動一個線程-start() 5.中斷一個線程 5.1通過共享的標記來進行溝通 5.2 調用 interrupt() 方法來通知 6.等待一個進程 7.獲取當前線程引用 8.線程的狀態 8.1所有狀態 8.2線程狀態和轉移的意義 1.概述 …

Relabel與Metic Relabel

Prometheus支持多種方式的自動發現目標(targets),以下是一些常見的自動發現方式: 靜態配置:您可以在Prometheus配置文件中直接列出要監測的目標。這種方式適用于目標相對穩定的情況下,例如固定的服務器或設…

HCIA-RS基礎:動態路由協議基礎

摘要:本文介紹動態路由協議的基本概念,為后續動態路由協議原理課程提供基礎和引入。主要講解常見的動態路由協議、動態路由協議的分類,以及路由協議的功能和自治系統的概念。文章旨在優化標題吸引力,并通過詳細的內容夯實讀者對動…

自求導的方法實現線性回歸算法

線性回歸是一種常用的回歸算法,用于建立輸入變量和連續輸出變量之間的關系。傳統的線性回歸算法通常依賴于繁瑣的數學推導和梯度計算。但是,隨著深度學習的興起,自求導的方法逐漸成為實現線性回歸算法的有效途徑。本文將介紹如何使用自求導的…

視頻網站適合租用服務器嗎?

視頻網站適合租用服務器嗎? 談到服務器租用,在服務器租用市場中,通常比較常見的用戶群體有電商、外貿和視頻等網站。在這里相信很多用戶都有疑問:租用的服務器適不適合用來建立視頻網站呢?接下來我們一起來看看吧~ 首…

VMware安裝windows操作系統

一、下載鏡像包 地址:鏡像包地址。 找到需要的版本下載鏡像包。 二、安裝 打開VMware新建虛擬機,選擇用鏡像文件。將下載的鏡像包加載進去即可。

python opencv 邊緣檢測(sobel、沙爾算子、拉普拉斯算子、Canny)

python opencv 邊緣檢測(sobel、沙爾算子、拉普拉斯算子、Canny) 這次實驗,我們分別使用opencv 的 sobel算子、沙爾算子、拉普拉斯算子三種算子取進行邊緣檢測,然后后面又使用了Canny算法進行邊緣檢測。 直接看代碼,代…

論文導讀 | 10月專題內容精選:人的預測

編者按 本次論文導讀,編者選擇了10月份OR和MS上與"人的預測"有關的三篇文章,分別涉及群體智慧的提取,個體序列預測的評估,以及決策者對風險的扭曲感知在分布式魯棒優化中的應用。其中,從基于"生成式可能…

Django框架之csrf跨站請求

目錄 一、csrf跨站請求偽造詳解 二、csrf跨域請求偽造 【1】正常服務端 【2】釣魚服務端 三、csrf校驗 【介紹】 form表單中進行csrf校驗: 【1】form表單如何校驗 【2】ajax如何校驗 四、csrf相關裝飾器 【1】csrf_protect裝飾器: 【…

使用VUE3實現簡單顏色盤,吸管組件,useEyeDropper和<input type=“color“ />的使用

1.使用vueuse中的useEyeDropper來實現滴管的功能和使用input中的type"color"屬性來實現顏色盤 效果&#xff1a; 圖標觸發吸管 input觸發顏色盤 組件代碼部分 &#xff1a;<dropper> ---- vueuse使用 <template><div class"sRGBHexWrap fbc…

【Python百寶箱】第三維度的魔法:探索Python游戲世界

Python在游戲開發中的魔力 前言 游戲開發一直是計算機科學中最引人入勝和具有挑戰性的領域之一。隨著技術的不斷進步&#xff0c;開發者們尋找著更快、更靈活的工具來實現他們的創意。在這個探索的過程中&#xff0c;Python以其簡潔、易學和強大的特性成為了游戲開發的熱門選…

C#每天復習一個重要小知識day4:枚舉的概念/申明/使用

目錄 1.枚舉的概念&#xff1a; 2.申明枚舉和申明枚舉變量&#xff1a; 申明枚舉語法&#xff1a; 申明枚舉變量語法&#xff1a; 1.枚舉的概念&#xff1a; 枚舉是什么&#xff1f;枚舉是一個比較特別的存在&#xff0c;它是一個命名的整形常量的集合&#xff0c;一般用它…

Flume采集Kafka并把數據sink到OSS

安裝環境 Java環境, 略 (Flume依賴Java)Flume下載, 略Scala環境, 略 (Kafka依賴Scala)Kafak下載, 略Hadoop下載, 略 (不需要啟動, 寫OSS依賴) 配置Hadoop 下載JindoSDK(連接OSS依賴), 下載地址Github 解壓后配置環境變量 export JINDOSDK_HOME/usr/lib/jindosdk-x.x.x expo…

AWS CLI和EKSCTL的客戶端設置

文章目錄 小結過程安裝AWS CLI安裝EKSCTL在兩個Kubernetes Cluster之間切換 參考 小結 在Linux環境中對AWS CLI和EKSCTL的客戶端進行了設置。 過程 安裝AWS CLI 使用以下指令安裝&#xff1a; curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip"…

Qt實現繪制自定義形狀

先創建一個繼承自QWidget的控件&#xff1a; class MyPainterWidget:public QWidget 重寫各種鼠標方法&#xff1a; protected:void paintEvent(QPaintEvent *) override;void mousePressEvent(QMouseEvent *e) override; //按下void mouseMoveEvent(QMouseEvent *e) …

Xposed hook失敗的原因

最近對Xposed的比較感興趣&#xff0c;于是照著網上的給的例子做了一個Xposed模塊&#xff0c;但是在安卓模擬器上死活不生效&#xff0c;最后研究發現了兩個問題導致&#xff1a; 1、XposedBridgeAPI-89.jar 需要放到項目的lib目錄下&#xff0c;而不是libs目錄 2、XposedBr…

HEVC-SCC rgb file input

關鍵字 csc allocateCSCBuffer&#xff08;&#xff09;-> m_apcPicYuvCSC xCheckRDCostIntraCSC():更簡單&#xff0c; enum ACTRDTestTypes { ACT_TWO_CLR 0, //two color space ACT_TRAN_CLR 1, //transformed color space ACT_ORG_CL…

補充:如何提高selenium的運行速度?

已經通讀該專欄文章的同學,或許對UI自動化測試有了一定的掌握,細心的同學肯定會發現一個問題,當用例量達到一定程度時,對于整體用例的執行速度肯定不會很滿意。除了應用多線程運行用例的方式加快速度,有沒有其他的方法呢? 今天告訴大家,方法是有的!也是本人新學的。即…

[PyTorch][chapter 66][強化學習-值函數近似]

前言 現實強化學習任務面臨的狀態空間往往是連續的,無窮多個。 這里主要針對這種連續的狀態空間處理。后面DQN 也是這種處理思路。 目錄&#xff1a; 1&#xff1a; 原理 2&#xff1a; 梯度更新 3&#xff1a; target 和 預測值 4 流程 一 原理 強化學習最重要的是得到 …