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

作者: EricTCartman (阿ㄆㄧㄚˇ)   2019-09-27 21:54:24
※ 引述《jas1123kimo (傑森)》之銘言:
: 2. 要怎麼Debug及測試
: 因為小弟我之前都在學校,寫的程式不會這麼龐大?
: Debug就是設定很多的Pritf看運作的參數
: 或者丟各種測資,而且要每個Function都要跑到
: 但每次這樣回答完
: 面試官都露出應該還有其他的方法的臉看著我。
: 請問還可以怎樣測試或Debug呢
1. 測試
單元測試 集成測試 重點應該是要能自動化
測資從正常數值開始抓 接著抓極端值
對於可邏輯產生的數值 也會自動化產生測資
會考慮輸入記憶體配置失敗 或外部資源無效時的案例
如果是performance-critical的區段 還會加上時間測量
測試時會將bug的情況作為test case追加
講完要反問一下面試官 你們覆蓋率幾%
2. Debug
首要工作是是要確立重現的流程
並且將重現bug的流程做到最精簡
原因:過於繁複的重現步驟表示涉及的程式碼越多 則越難找到bug的出處
對於我不熟悉的專案,我會從操作步驟的UI層開始追蹤
且如果是資料的錯誤,我會利用watcher監看資料實體是在哪個時機點被改變
如果是偶發的錯誤,我會利用conditional breakpoint增進debug的效率
莫名的資源無效或記憶體錯誤 我會檢查有無多執行續或重複釋放、destruction
等可能的行為
如果是第三方library或dll的bug,我會先閱讀文件確認使用方式無誤,如還是
無法發現問題則會到官方的bug tracker查詢有無類似情況。若以上均無解且與
該公司無合作關係或狀況急迫,我會以組合語言的形式下斷點並觀察memory變化
試圖出可能的原因,並從input或使用方式解決此問題
解釋完自己如何進行debug
如果之前面試官說公司測試覆蓋率不高或根本答非所問打太極的話
記得要反問面試官 貴公司修正bug後
如何確保不會產生其他bug 以及如何落實code reivew
作者: yamakazi (大安吳彥祖)   2019-09-27 22:59:00
錄取了 明天來報到可以加上用gdb 看core-dump 設watchdog 程式內的exception處理的經驗
作者: supermmi (陳敏憲)   2019-09-27 23:43:00
雖然很難啟齒,很多情我都把Error訊息貼到Google就解了
作者: freef1y3 ( )   2019-09-28 00:24:00
記憶體錯誤可以用valgrind 讓你多個名詞可以秀
作者: fju4012 (Steven)   2019-09-28 00:36:00
安安想請問文中技巧都不會是正常的嗎
作者: maxqq (max)   2019-09-28 00:58:00
當你講完,台灣面試官會跟你謝謝再聯絡
作者: starforest (æ³¢~)   2019-09-28 01:39:00
這篇高手
作者: Murasaki0110 (麥當勞歡樂送)   2019-09-28 02:03:00
作者: kusoduck (搞怪鴨)   2019-09-28 08:49:00
這個人薪資應該要求很高 我們跳過好了
作者: jack0204 (Jarbar王朝)   2019-09-28 09:00:00
OverValue,掰掰
作者: DLHZ ( )   2019-09-28 13:09:00
作者: black209 (black209)   2019-09-28 13:24:00
謝謝 學到新東西
作者: lantw44 (#######################)   2019-09-28 14:39:00
除了 Valgrind 以外 GCC 和 Clang 還有 -fsanitize= 系列參數可以開來用,strace、ktrace、dtrace 有時候也很有用
作者: k3nt (k3nt)   2019-09-28 15:20:00
作者: maxqq (max)   2019-09-28 18:59:00
台灣沒幾家面試官底子硬的,大部分都是當你『工具』
作者: groza (狗煞)   2019-09-28 22:31:00
大推
作者: innocentguy (崩潰a蛇蛇)   2019-09-29 00:41:00
想請問以組語形式下斷點是什麼意思呢?這跟平常IDE設斷點插在哪邊?謝謝
作者: toothlesses (toothless)   2019-09-29 10:14:00
超強
作者: sharku (明珠求瑕)   2019-09-29 14:48:00
作者: chi972121 (沈默之語)   2019-09-29 17:05:00
Welcome aboard
作者: asg269   2019-09-29 18:01:00
作者: remmurds (Stronghold)   2019-09-29 21:20:00
集成測試
作者: richer6605 (Rhapsody)   2019-09-30 04:24:00
很用心 感謝分享
作者: hellomotogg (你好機車)   2019-10-01 17:36:00
拜讀

Links booklink

Contact Us: admin [ a t ] ucptt.com