MIT公开课之测试与调试感想

防御式编程

测试:单元测试 单个函数 

      集成测试,那整个程序放到一起测试

      测试是一件有挑战新的事、

测试套件 不大 要足够大以确保结果正确

对于debug的误解:

1.他自己出现的,是你的错误

2.Debug会繁殖

3.测试不是为了消除一个bug而是整个项目没错误

4.调bug就想打地鼠。一个后面也许更多

5.最好的调试工具:打印语句 ,阅读

6.系统性 找dug,减少所搜空间,local in 一定范围

7.想当然的去找不行

怎样做

1.怎样做到系统性:调试开始,阅读程序文本,问自己为什么产生这个结果,问这个问题是否输入么一类,一次搞定一类,而不是一次一个。

2怎样调试研究既有数据集结果,另一个是程序文本,形成一种假设,让他与所有程序一致,设计并开始一个可重复的实验:必须有可能推翻假设,最好有中间结果,我们必须知道什么是最后的正确答案。预料结果,避免随机性,以及时间问题的影响,

3找出能找到bug的最简单输入,二分查找,每次砍掉一半的数据

4输出中间值,自己预测得到的值

5要有耐心,平静缓慢的缩小范围,胃不是来去匆匆

错误分类

1参数传递的错误

2拼写错误

3初始化错误

4对象 和 值 

5别名问题

6副作用

其他小建议

1记录你尝试过的数据

2重新思考你的假设

3当调试别人的代码时,调试代码,别管注释

4调试卡壳,谦虚问人 解释你的程序是干什么的

5出去走走,再回来看

6代码不能一直增长

7确保你的代码能够恢复原貌

8备份旧代码

 

转载请注明出处:http://blog.csdn.net/u010484477     O(∩_∩)O谢谢

你可能感兴趣的:(积累)