防御式编程
测试:单元测试 单个函数
集成测试,那整个程序放到一起测试
测试是一件有挑战新的事、
测试套件 不大 要足够大以确保结果正确
对于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备份旧代码