疑難問題排查方法總結

2022-06-30 18:36:16 字數 2339 閱讀 6637

復現問題是對乙個測試人員最基本的能力要求,通過復現問題,總結一套適用的問題復現方法,有利於提高測試人員發現問題,解決問題的能力。

常用的定位問題方法:埋點法,流程圖法,log日誌方法,抓包法,alert彈窗法,排除法,debug包驗證法,模擬法等

方法介紹埋點法。是在邏輯層面增加資料埋點,通過客戶端上傳服務端資料,分析服務端收集上來的資料定位問題原因,評估影響範圍和修復價值的一種定位問題方法。

埋點法不是單純的在可能有問題的邏輯點進行資料埋點,而是必須熟悉功能邏輯處理細節。若不熟悉功能邏輯細節,即邏輯流程,埋點法不適合。

埋點法適用於復現率低,不影響上線,優先順序不高,影響範圍大小不定的問題排查。

具體事例

例項一鎖屏通知在裝置未鎖屏的情況下異常彈出問題復現率:

偶現。且未收到線上大範圍使用者反饋。

排查思路:

1、鎖屏通知彈出的限制條件有哪些;

2、鎖屏通知從獲取資料到展示通知整個邏輯流程;

3、可能出現的原因有哪些;

4、實踐排查;

排查經過:

1、鎖屏或者未鎖屏,呼叫的系統api,且同樣的手機並未必現,因此排除是客戶端對於某些android系統鎖屏與未鎖屏的狀態獲取有誤的情況;

2、通過打log的方式,且找了線上的應用包,找了三四款機型驗證,如果是客戶端自身的邏輯出現問題,那麼就不可能是個別機型出現這樣的問題,應該所有的機型都會存在問題,因此通過log邏輯驗證,發現並沒有問題;

3、對於某些同類產品的排查,則是通過**層以及對通知service服務註冊細節進行梳理,經過排查也與此種場景無關;

4、最後,梳理鎖屏通知的實現流程,發現在滿足鎖屏通知各項條件之後,客戶端通過廣播的方式通知客戶端展現鎖屏通知,那麼問題來了,如果廣播延遲通知,那麼鎖屏通知會不會就出現異常展現;

針對這個疑問,進行場景復現,果然在一定的時候會偶現,但是概率不高,為了查清這樣的影響範圍,我查詢了線上的使用者反饋,發現反饋的人很少,後經過思考,決定通過埋點的方式進行排查。

排查結果:

通過線上資料反饋,在解鎖之後,此時通過廣播的方式告知顯示通知,但是廣播受不同的裝置影響存在一定的滯後性,因此導致部分使用者出現了該問題。 

例項二資訊詳情頁概率性的不顯示新聞標題問題復現率:

偶現。且未收到線上大範圍使用者反饋。

排查思路:

1、資訊詳情頁title的資料**;

2、前端是如何處理傳回來的資料來源,處理流程是怎麼樣的;

3、title中是否存在對特殊字元處理不當的情況;

4、實踐排查;

排查經過:

1、通過對詳情頁title為空的邏輯進行整理,總結出title為空的原因有兩點,服務端返回的title為空,前端解析資料出現問題,導致title為空;

2、服務端返回的資料title為空,嘗試手動復現,經過半個小時的努力,並未復現,且費時費力,該方案作廢;

3、通過自動化的校驗,編寫獲取資訊詳情頁資料的指令碼,對返回的title資訊做校驗,檢視是否存在問題,通過2個多小時的資料獲取處理,並未發現異常,該方案作廢;

4、懷疑是服務端返回的第三方資料來源有問題,後經過對比,發現並未存在異常,且返回的資料雜亂,編碼格式複雜,資料分析花費了好多時間;

5、經過以上排查,暫未發現服務端返回資料的異常,但是也不能排除服務端的問題,擱置;

6、對前端title處理邏輯進行排查,檢視title為空的資料是否有共性,通過檢視懷疑是前端對於特殊字元的編碼格式出現問題,後經過資料排查,並未發現異常。

7、經過以上的問題跟進,一無所獲,但是我們能肯定的是,要麼是前端邏輯處理問題,要麼就是搜尋側返回的資料問題。前端處理title為空的邏輯是直接讀取搜尋側返回的title資料,然後對資料進行解析,由於讀取資料是乙個開源的公共方法,因此問題出現的可能性不大;

因此,在解析資料之後埋點,當解析出來的title資料為空的情況下,傳送異常pingback,將前端讀取和解析的結果一併發送到服務端資料組,然後對上傳的資料進行分析。

排查結果:

最後通過埋點法發現是由於服務端返回的資料資源中概率性沒有title欄位,因此導致前端讀取到的是空,進而頁面不展現title資訊。

總結通過以上案例實踐,在使用埋點法跟進問題時,重中之重是要了解問題所屬功能的邏輯實現,埋點不意味著盲無目的,而是有理有據,所以大家在運用埋點法時,可以和流程圖法並用。

MS SQL Server 疑難問題

有一表a id date name 1 2007 01 01 ccc 1 2007 01 01 ddd 1 2007 01 01 vv 1 2007 02 01 ttttt 2 2007 01 01 gg 3 2007 01 02 ccc 3 2007 01 01 ccc 4 2007 01 04 ...

python疑難問題

python的列表之間有關係嗎?group queue for in range 2 各組的子佇列 queue queue 組佇列,控制組與組之間的執行順序,因為每個組的專案要一起執行 group queue 6 5 for i in range len group queue print queu...

C 疑難問題 const static

關鍵字const 指定用其宣告的內容保持不變 1.標識變數 代替 define來宣告常量 const doble pi 3.14159 2.標識方法 標識類方法,可以防止方法修改類中不可變的資料成員 class.h class a class.cpp int getvalue const 3.con...