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