測試-問題排查


前言

每周四是我們組開周會的時間,會對上一周的工作進行總結,也會對下一周的工作做一些計划。其中值班是一項比較看天的工作,也許你值班的那一周相安無事,也許會被無數人@查問題。總之就是值班是個苦差事。
我們值班有都要負責哪些東西呢?歸根到底就是影響我們測試進度的所有問題!!!
這里我們先進行一下歸類
按照部門:內部和外部
按照類型:業務和環境
這里只是初步的進行分類,但是這個分類缺失無用的,因為給你拋過來一個問題時你是很難第一時間就知道這是個什么問題。所有我們需要一個排查問題的方法論(即你的套路)。這里我分享的只是我的套路,不一定是對的,但是卻幫助我解決了許多問題。

方法論

我們以一個實際問題為例,退款touch頁面加載失敗。(我所負責的是國內機票出退改業務,這是業務量最大的入口,所以以這個為例)。

第一條:確認這是一個業務問題嗎?

遇到這個問題,我已經確定了這不是一個業務問題!因為頁面加載失敗沒有什么特殊的業務。但是比如一個按鈕的展示,你首先需要確定這個按鈕該不該出現在這個位置,並且有沒有權限展示,這里面就存在兩個業務問題。所以遇到這種問題,第一點是確定是否是業務問題?如果是請耐心解答業務問題,這里面更推薦將所有常見業務問題整理成相關wiki,直接扔出wiki,減少溝通成本!如果不是那就繼續排查。

第二條:排除beta環境搭建帶來的影響

是不是沒有連接到測試環境?可能這條不一定適用所有情況,但是因為我們的beta環境搭建,帶來了這個問題,所以必須先去check一下。
我們的app需要配置beta環境,我們的touch需要配置ng、squid代理、host配置等等。這些配置是否都訪問到了對應的服務上。

第三條:查看tomcat或node日志

到這里,你需要了解代碼,並且需要查看日志了。

ng

我們會使用ng作為反向代理服務器,所有需要檢查ng的配置,以及查看log中upstream的實際機器。

node

對於node日志,我們的代碼里會對所有的http接口的url 、入參、出參都打出來,你需要確定是哪個接口有問題,並且根據url,你可以通過ng的配置找到對應的服務,這里面會有轉發配置錯誤、service服務器5xx問題等情況。

tomcat

如果是tomcat異常,通過有四種情況:服務不在線;代碼問題;數據庫問題;數據問題
但是只有兩種解決思路,因為除了當前工程不在線,其余都需要真正看日志。

當前服務不在線

重啟服務,並且保證你的心跳機制能夠檢查到服務在線。

其他問題

這個時候會有異常信息,除非你的代碼里沒有打印異常棧,那就是一件比較操蛋的事情了。
通過異常棧可以排查到問題,這里你需要了解如何查看異常棧,本周五組內開會排查問題,還有許多同學定位問題慢,究其根本就是不會看異常棧的問題。
首先,你要關注這是哪個Exception,優雅的代碼就是你通過異常的名字就能知道這是個什么問題。
其次是cause by,它會告訴你是哪一行的問題,接着你可以按照調用關系去看下一行的代碼,問題就出現在這里。

總結

說到底,如何排查問題就是兩點:一是確定這是不是業務問題;二是按照你的調用關系逐級排查。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com