发现bug
1、随机输入;边界值(0、null)
2、检查不应该发生的动作,减弱假设
3、创造错误条件(改代码、数据库)
4、相信用户
更多的时间、事实往往证明,他们所报告的确是实际发生的情况。
5、工具
以减小输入的代价,以及批量覆盖测试
6、事件顺序、时间引起的故障
解决bug
1、核实细节、夯实假设
2、日志记录
调试问题,尤其线上、历史问题的时候
3、最近的变化
4、测试修复
修复前运行代码,确认是有bug
5、讨论
帮助我最多的调试技术是与同事讨论问题。
通常情况下,只是和同事说明问题,就会让我意识到问题的症结。此外,即使他们不是很熟悉有问题的代码,他们也往往能提出一些好点子。与同事讨论在处理最难的bug时特别有效。
(why?可能是因为口头讲述的过程中,我们站在外面把问题重过一遍;又或者两个人的思想碰撞,局外人的不同视角。)