處理bug的一些經驗總結
遇到bug並解決了,詳細把bug表現描述出來,並把解決經過寫出來,做成筆記,就算以後不翻看,這樣至少會加深你對類似bug的印象,下回就會知道類似的問題如何解決;
程式執行緩慢,首先應該檢查資料結構是否合理,然後檢查遍歷這個資料結構的遍歷語句是否寫複雜了,能不能把遍歷降低;
遇到bug可以與周圍的同事或朋友進行探討,別人的思路可能會給你幫助,也可能別人曾經遇到過類似的問題。
第一條最重要,善於記錄問題和解決問題方案。
個人的一些bug解決經驗以及測試方面的分析:
輸入的內容,是否有最短或最長資料限制;
可能會產生多個數據的,儘量試試非常多的資料進行測試;
寫遍歷的時候,特別是多重遍歷,考慮是否會產生無限的遍歷計算(非常大的計算量);
做資料庫刪除的時候,考慮資料刪除條件是否完全正確,修改和查詢同樣如是;
存入資料的時候,驗證資料格式,以及考慮換行或特殊字元會造成前端json解析錯誤,此處不僅僅是指html層面的程式碼或JavaScript的程式碼造成注入漏洞;
更改了程式之後,儘量考慮周到有哪些地方會受到影響,最好是在寫註釋的時候註明有哪些地方會產生呼叫資料操作的時候一定要驗明許可權,驗證當前使用者是否有許可權做修改,包括當前資料是否屬於當前使用者等;
對一個數據操作之前,不要憑著想法,覺得是對的,一定要用程式驗明是否存在,並對驗明的結果進行使用者提示或者是報錯處理;此處分為使用者存資料到資料庫之前驗證,另一個就是取資料並進行操作的時候進行驗證,特別是沒有規定使用者必填,但是在顯示或者操作時候卻需要用到的資料,一定要驗明;
浮點數的計算丟失精度的問題,這個做稍微複雜的專案會遇到,此處把參加計算的資料都進行浮點型格式化並把得到的結果按需求四捨五入或其他方式取值,這種做法一般不會造成精度丟失;
兩個數參與除法運算,必須檢查除數是否會存在為0的情況,這種業務邏輯一般可能涉及到計算使用者好評率,計算使用者平均評星的情況,雖然這個除數不能為0是小學的知識點,但是開發過程中可能會漏掉監測,造成程式運算錯誤。