BUG的定位與分析思路


一般來說bug大多數存在於3個模塊:

1、前台界面,包括界面的顯示,兼容性,數據提交的判斷,頁面的跳轉等等,這些bug基本都是一眼可見的,不太需要定位,當然也不排除一些特殊情況,本身數據傳過來的時候就有問題,所以顯示會出問題的情況(這個后面會說到)。

2、后台程序,包括前台調用的接口,中間層緩存和轉發數據,定時任務腳本異步處理數據,程序之間的相互調用等等,而這些bug往往都是不可見的,有可能在功能上體現,也有可能隱藏的深處不易發現,這時候就要通過一些輔助工具以及人工的判斷去定位了。

3、數據庫,包括表中缺少字段,字段定義錯誤,字段長度限制,數據重復等等,這些bug需要通過數據庫工具以及一些基本的數據庫查詢語句來定位,當然前提是要對每個表,每個字段甚至每一個值代表什么意思有一定的了解(一些常用的重要的表,字段,值就可以了)。

排除一些顯而易見以及可以直接判斷的bug,很多不容易判斷的bug該如何定位呢?

這就需要借助一些工具來一個個排除了,也許還是會覺得雨里霧里,那么就舉一個常見的例子來講解:

比如在提交正常的表單發生了錯誤導致提交失敗,那么如何從定位呢?

1、首先要打開抓包工具,然后提交正常的表單,看是調用后台接口的時候傳的參數是否和之前填寫的一致,比如表單填的是數字,而接口需要傳的是字符串,那么就是前台傳的問題,如果一致說明不是前台問題,繼續往下查。

2、需要一方面繼續看抓包的數據,接口返回的錯誤是什么,如果能明確看到錯誤原因的消息,也就定位到問題,如果不能看到則要繼續連接測試服務器查看日志,看是程序處理到哪一步有問題,

3、如果從程序的角度發現沒問題,那繼續往下查,看是否連接的數據庫不對,亦或是超過數據庫字段限制的長度等等。就這樣追尋着程序執行的軌跡一步一步去排查,最終基本都能定位到問題。

******************************************

比有一個提現余額的功能,實際提現金額到賬了,但余額卻沒有扣除。首先要對提現功能做一個拆解

1、前台發起提現申請

2、后台接受申請后凍結提現金額

3、定時任務處理提現(調用第三方支付轉賬接口)

4、接受到轉賬成功回調

5、將余額減去提現凍結的金額

6、前台余額展示提現后的余額

因為實際提現金額到賬了,那么基本可以排除3和1了,然后通過猜想覺得最有可能出問題的是4,就是沒有收到轉賬成功的回調,可以查看后台日志是否收到回調。如果沒收到回調,那么基本就是回調地址不對或者網絡超時等錯誤,問題就定位到了。

如果收到回調了,那么最有可能的就是余額未扣除提現凍結金額,那么就是2和5,對於2來說可以查數據庫是否提現金額被凍結。

如果未凍結那就是步驟2出錯了,如果凍結了,繼續查5余額是否扣除了提現凍結金額(這個可能需要開發配合查程序邏輯了)。

如果5也沒有問題,那么剩下的可能性只有6了,再對6進行驗證。如果還沒問題可能就是其他異常導致的,需要更深入去思考有沒有遺漏的點或者數據庫上的特殊性導致的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM