程序员进行软件调试,可以使用以下方法:
程序员应当善于利用版本控制系统。当某个版本的软件出现问题时,程序员可以回退到上一个版本,看这个版本是否出现同样的问题。如果这个版本会出现问题,就继续回退到上个版本;如果这个版本没有出现这个问题,程序员可以根据版本控制系统所记录的变更过程,分析导致缺陷出现的原因,这样就可以快速定位和解决问题。
二分法可以使得程序员更快地定位问题。 假设软件在处理一组输入数据时出现了问题,程序员可以通过二分法来快速找出导致软件出现问题的数据:先将这组数据切分一半,看看错误是否在那里出现。如果是,就继续切分……直到找到那个引发问题的数据。
程序员进行调试时必须清楚程序所处的状态,甚至程序或数据结构的变化过程。而这些不能只通过调试器查看堆栈跟踪信息来弄清楚。程序员可以通过输出日志,把程序的诊断消息,打印到屏幕或文件中,便于查找/跟踪信息。通过使用文本处理工具或Shell命令来处理日志文件,就可以很容易地识别出,有问题的打开操作发生在哪里。
橡皮鸭法是一个非常简单但特别有用的方法,它通过向其他人(也可以是一只橡皮鸭)来一步一步地解释代码用来做什么,无需反馈,程序员往往就能获得灵感,发现代码中存在的问题。
如果程序员一时之间难以确定缺陷的具体位置,那么他可以使用排除法来逐个排除可能出现问题的那部分代码,直至最后找到缺陷位置。
程序员可以根据自己调试的经验,猜测缺陷可能出现的位置,然后去验证自己的猜测是否正确。 这正是: 软件调试有方法,不要眉胡一把抓 参考书目:程序员修炼之道—通向务实的最高境界,作者:David Thomas,Andrew Hunt,出版社:电子工业出版社 |
|