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

看板Soft_Job作者 (阿ㄆㄧㄚˇ)時間6年前 (2019/09/27 21:54), 6年前編輯推噓17(1818)
留言27則, 22人參與, 6年前最新討論串2/4 (看更多)
※ 引述《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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.20.88 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1569592468.A.907.html

09/27 22:59, 6年前 , 1F
錄取了 明天來報到
09/27 22:59, 1F

09/27 23:02, 6年前 , 2F
可以加上用gdb 看core-dump 設watchdog 程式內的excepti
09/27 23:02, 2F

09/27 23:02, 6年前 , 3F
on處理的經驗
09/27 23:02, 3F

09/27 23:43, 6年前 , 4F
雖然很難啟齒,很多情我都把Error訊息貼到Google就解了
09/27 23:43, 4F

09/28 00:24, 6年前 , 5F
記憶體錯誤可以用valgrind 讓你多個名詞可以秀
09/28 00:24, 5F

09/28 00:36, 6年前 , 6F
安安想請問文中技巧都不會是正常的嗎
09/28 00:36, 6F

09/28 00:58, 6年前 , 7F
當你講完,台灣面試官會跟你謝謝再聯絡
09/28 00:58, 7F

09/28 01:39, 6年前 , 8F
這篇高手
09/28 01:39, 8F

09/28 02:03, 6年前 , 9F
09/28 02:03, 9F

09/28 08:49, 6年前 , 10F
這個人薪資應該要求很高 我們跳過好了
09/28 08:49, 10F

09/28 09:00, 6年前 , 11F
OverValue,掰掰
09/28 09:00, 11F

09/28 13:09, 6年前 , 12F
09/28 13:09, 12F

09/28 13:24, 6年前 , 13F
謝謝 學到新東西
09/28 13:24, 13F

09/28 14:39, 6年前 , 14F
除了 Valgrind 以外 GCC 和 Clang 還有 -fsanitize= 系列
09/28 14:39, 14F

09/28 14:41, 6年前 , 15F
參數可以開來用,strace、ktrace、dtrace 有時候也很有用
09/28 14:41, 15F

09/28 15:20, 6年前 , 16F
09/28 15:20, 16F

09/28 18:59, 6年前 , 17F
台灣沒幾家面試官底子硬的,大部分都是當你『工具』
09/28 18:59, 17F

09/28 22:31, 6年前 , 18F
大推
09/28 22:31, 18F

09/29 00:41, 6年前 , 19F
想請問以組語形式下斷點是什麼意思呢?這跟平常IDE設
09/29 00:41, 19F

09/29 00:41, 6年前 , 20F
斷點插在哪邊?謝謝
09/29 00:41, 20F
你沒有debug info的時候 你就沒有高階程式語言可讀 這時候你就只能從組合語言下手 要弄懂怎麼看暫存器跟callstack 除非真的很必要或很閒 不然是不會走到這步

09/29 10:14, 6年前 , 21F
超強
09/29 10:14, 21F
※ 編輯: EricTCartman (36.231.20.88 臺灣), 09/29/2019 11:10:44

09/29 14:48, 6年前 , 22F
09/29 14:48, 22F

09/29 17:05, 6年前 , 23F
Welcome aboard
09/29 17:05, 23F

09/29 18:01, 6年前 , 24F
09/29 18:01, 24F

09/29 21:20, 6年前 , 25F
集成測試
09/29 21:20, 25F

09/30 04:24, 6年前 , 26F
很用心 感謝分享
09/30 04:24, 26F

10/01 17:36, 6年前 , 27F
拜讀
10/01 17:36, 27F
文章代碼(AID): #1TZXIKa7 (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1TZXIKa7 (Soft_Job)