作者EricTCartman (阿ㄆㄧㄚˇ)
看板Soft_Job
标题Re: [请益] 面试官问怎麽Debug,怎样Debug/测试才对
时间Fri Sep 27 21:54:24 2019
※ 引述《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://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1569592468.A.907.html
1F:推 yamakazi: 录取了 明天来报到 09/27 22:59
2F:→ yamakazi: 可以加上用gdb 看core-dump 设watchdog 程式内的excepti 09/27 23:02
3F:→ yamakazi: on处理的经验 09/27 23:02
4F:→ supermmi: 虽然很难启齿,很多情我都把Error讯息贴到Google就解了 09/27 23:43
5F:→ freef1y3: 记忆体错误可以用valgrind 让你多个名词可以秀 09/28 00:24
6F:推 fju4012: 安安想请问文中技巧都不会是正常的吗 09/28 00:36
7F:推 maxqq: 当你讲完,台湾面试官会跟你谢谢再联络 09/28 00:58
8F:推 starforest: 这篇高手 09/28 01:39
9F:推 Murasaki0110: 强 09/28 02:03
10F:推 kusoduck: 这个人薪资应该要求很高 我们跳过好了 09/28 08:49
11F:推 jack0204: OverValue,掰掰 09/28 09:00
12F:推 DLHZ: 推 09/28 13:09
13F:推 black209: 谢谢 学到新东西 09/28 13:24
14F:→ lantw44: 除了 Valgrind 以外 GCC 和 Clang 还有 -fsanitize= 系列 09/28 14:39
15F:→ lantw44: 参数可以开来用,strace、ktrace、dtrace 有时候也很有用 09/28 14:41
16F:推 k3nt: 棒 09/28 15:20
17F:→ maxqq: 台湾没几家面试官底子硬的,大部分都是当你『工具』 09/28 18:59
18F:推 groza: 大推 09/28 22:31
19F:推 innocentguy: 想请问以组语形式下断点是什麽意思呢?这跟平常IDE设 09/29 00:41
20F:→ innocentguy: 断点插在哪边?谢谢 09/29 00:41
你没有debug info的时候 你就没有高阶程式语言可读
这时候你就只能从组合语言下手 要弄懂怎麽看暂存器跟callstack
除非真的很必要或很闲 不然是不会走到这步
21F:推 toothlesses: 超强 09/29 10:14
※ 编辑: EricTCartman (36.231.20.88 台湾), 09/29/2019 11:10:44
22F:推 sharku: 推 09/29 14:48
23F:推 chi972121: Welcome aboard 09/29 17:05
24F:推 asg269: 推 09/29 18:01
25F:嘘 remmurds: 集成测试 09/29 21:20
26F:推 richer6605: 很用心 感谢分享 09/30 04:24
27F:推 hellomotogg: 拜读 10/01 17:36