作者kkc0828 (慢跑後卫)
看板Soft_Job
标题Re: [请益] 面试官问怎麽Debug,怎样Debug/测试才对
时间Wed Oct 2 02:39:35 2019
如何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://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1569955177.A.3C6.html
1F:推 mozume: 血泪推 10/02 08:55
2F:推 jammy50605: 八成都跟特殊字元有关XD 10/02 09:01
3F:推 MeeToo: 最後找到原因的原因的原因也太勤奋 10/02 09:17
4F:推 NonAir: 最後的kernel panic我也遇到过...搞超久才发现这问题 10/02 09:46
5F:推 jass970991: 最後那个东西是三小 10/02 16:31
6F:推 newhandfun: 赞同,之前同事的app才遇到闪退问题。 10/02 20:06
7F:→ newhandfun: 结果是因为已经关掉的activity的物件记忆体没释放造成 10/02 20:06
8F:→ newhandfun: 的,而不是单一功能错误 10/02 20:06
9F:→ leolarrel: 血泪推+1,fw们,多少坑是别人挖给我们跳的? 10/08 13:37