Re: [请益] 面试官问怎么Debug,怎样Debug/测试才对

楼主: kkc0828 (慢跑后卫)   2019-10-02 02:39:35
如何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 路径太长导致讯号衰减,而造成
读取错误。........天杀的。
作者: mozume (米虫)   2019-10-02 08:55:00
血泪推
作者: jammy50605 (小刀)   2019-10-02 09:01:00
八成都跟特殊字符有关XD
作者: MeeToo (迷途)   2019-10-02 09:17:00
最后找到原因的原因的原因也太勤奋
作者: NonAir (宣)   2019-10-02 09:46:00
最后的kernel panic我也遇到过...搞超久才发现这问题
作者: jass970991 (半糖绿假面超人)   2019-10-02 16:31:00
最后那个东西是三小
作者: newhandfun (新手方)   2019-10-02 20:06:00
赞同,之前同事的app才遇到闪退问题。结果是因为已经关掉的activity的物件内存没释放造成的,而不是单一功能错误
作者: leolarrel (真.粽子无双)   2019-10-08 13:37:00
血泪推+1,fw们,多少坑是别人挖给我们跳的?

Links booklink

Contact Us: admin [ a t ] ucptt.com