????????想要修復bug,首先面臨找到bug原因的難題,好比一根針掉到地上,怎么找到這根針躏惋?這個問題就交給各國大媽去解決了
????????中國大媽會根據針掉落的方向,落地點等嚷辅,去確定查找范圍簿姨,然后目測去尋找到針
????????德國大媽會把地板劃分成mxn格,然后一格一格遍歷尋找簸搞,最后目測尋找到針
? ? ? ? 美國大媽會找一塊大的磁鐵扁位,先以落地點為圓心畫一個圓圈找針,再擴張圓圈范圍尋找
? ? ? ? 趁俊。域仇。。由于各國大媽太多寺擂,就不一一列舉了
? ? ? ? 其實殉簸,上面幾種方法都可行,有的效率高沽讹,有的沒有遺漏般卑,有的技巧高但對設備要求高,而這些都不是究竟爽雄,無論哪種方法蝠检,事先計劃查找的路徑,查找中記錄查過的模塊挚瘟,才是最重要的叹谁。
? ? ? ? 定位bug時,bug的定位方法是無窮盡的,經驗確實可以解決曾遇到過的問題,但也不究竟,首先肯定是現象層面,顯發(fā)bug現象,而背后也必然隱藏著一個根本原因,首先要對系統(tǒng)有一個深刻的理解,把系統(tǒng)分解成幾個部分,了解它們之間是如何耦合,數據是沿什么樣的路徑流動,有哪些控制信號等,然后假設bug在其中哪個部分,歷史上,猜想法,使得許多偉大發(fā)明誕生,也可以遍歷所有模塊,但都得找到證據.
? ? ? ? 軟件測試中,常會遇到定位bug的問題,首先是判斷bug是屬于前端還是后臺的,所以要理解前端和后臺的耦合與數據流動原理.前端一般是html,css,javascript等編寫的UI界面,后臺是開發(fā)寫的邏輯代碼,前端是通過后臺的api接口,給服務器發(fā)送一個html請求,然后得到響應數據,接著在渲染到界面上,就 成了我們所看到的界面變化,明白這個過程,就可以找到api接口url和參數,可以找開發(fā)要,也可以fiddle抓包獲取,然后將觸發(fā)bug的數據通過jrmte,向后臺發(fā)送http請求,直接傳輸數據到后臺,查看返回的數據是否符合需求,如果不符合,bug就在后臺,反之在前臺,可以看前臺發(fā)送請求的參數是否與輸入的數據一致,來驗證前臺.
? ? ? ? 確認bug在后臺后,就要找具體的原因,這時候可以在后臺查看日志,但對編程基礎要求很高,還可以通過分析數據庫表結構關系來尋找Bug原因.
? ??????