Re: [請益] 面試官問怎麼Debug,怎樣Debug/測試才對

看板Soft_Job作者 (慢跑後衛)時間4年前 (2019/10/02 02:39), 編輯推噓6(603)
留言9則, 7人參與, 4年前最新討論串4/4 (看更多)
如何debug.... 上面有蠻多文章看來是蠻認真的RD會做的事情,但是忽略了一些在真實世界會碰到 的狀況,而且會因為這樣撞的滿頭包。 首先,要定義什麼叫做bug,通常是由其他人經由某種文件格式,回報這個軟題的 行為跟預期不同。 例如說某個人哀號:C1設定下去之後螢幕變成黑色的,但是應該要是紅色! 第一步驟是,確認這個回報的問提是否是合乎軟體規格的,很可能是這個人誤會了 軟體的規格,或者是拿了錯誤的規格版本。例如v3.2.7之後天殺的PM改了C1的行為... 如果確定這個回報的資料是正確的,第二部就是複製這個錯誤。 ..... 這又是天殺的難關,大部分好重現或者容易碰到的問題早就在初期解掉了,會交給你 這個菜鳥通常是不好重現。例如說使用者會說他連續操作這個app 30分鐘,出現了一 次這個bug.... 所以此時你的工作是去複製這個問題,通常在回報文件裡面有一大堆不相干的步驟, 或者是步驟少的可憐。總之要靠經驗去複製這個問題,而且讓這個問題越簡單越好。 通常啦,我說通常。反覆操作才會出現的問題跟 Memory Leak有關,有機率發生的問題 通常是跟其他元件交互作用而產生的,例如 race condition。 但是也碰過很多環境相關的問題,例如說使用者註冊的區碼是JP的話會出發問題,用 台哥大的網路因為dns解析錯誤導致拿不到某個xml而定義爛掉,某個該死的使用者 在名稱當中放了一個該死精美的全形空白。。。。。。。。 總之有了簡單而容易重現的步驟之後,才能夠進入到下一個階段。通常在研究重製步驟 會讓你深刻知道,怎樣會發生問題而怎樣不會發生問題。藉此可以大幅縮小嫌疑犯的 範圍。經由反覆 a/b testing,加上前面文章提到的 debugging技巧,很快能夠抓到兇手 。 嗯,我碰過天殺的kernel panic 是因為 file system curruption,原因是 bootloader 載入到 memory 就是爛的,原因是因為 Flash 的 CLK 路徑太長導致訊號衰減,而造成 讀取錯誤。........天殺的。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.48.120 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1569955177.A.3C6.html

10/02 08:55, 4年前 , 1F
血淚推
10/02 08:55, 1F

10/02 09:01, 4年前 , 2F
八成都跟特殊字元有關XD
10/02 09:01, 2F

10/02 09:17, 4年前 , 3F
最後找到原因的原因的原因也太勤奮
10/02 09:17, 3F

10/02 09:46, 4年前 , 4F
最後的kernel panic我也遇到過...搞超久才發現這問題
10/02 09:46, 4F

10/02 16:31, 4年前 , 5F
最後那個東西是三小
10/02 16:31, 5F

10/02 20:06, 4年前 , 6F
贊同,之前同事的app才遇到閃退問題。
10/02 20:06, 6F

10/02 20:06, 4年前 , 7F
結果是因為已經關掉的activity的物件記憶體沒釋放造成
10/02 20:06, 7F

10/02 20:06, 4年前 , 8F
的,而不是單一功能錯誤
10/02 20:06, 8F

10/08 13:37, 4年前 , 9F
血淚推+1,fw們,多少坑是別人挖給我們跳的?
10/08 13:37, 9F
文章代碼(AID): #1TavrfF6 (Soft_Job)
文章代碼(AID): #1TavrfF6 (Soft_Job)