软件调试过程中,一旦发现问题,开发人员就要着手去解决。常见的做法就是通过对程序运行进行时时跟踪,或者在程序里加进许多打印语句,收集软件出错的大量信息,分析原因,再给出解决方案。

除了这种比较基础的处理之外,还有更加高端一点两种方法:原因排除法、回溯法。

其中原因排除法是通过归纳和演绎与错误出现有关的数据,分析得出的错误原因,再给出解决方案。

回溯法是从发现错误的地方开始,人工地向后追溯源代码,直到发现错误原因的地方,再给出解决方案。

这些方法无不费时费力。更简单高效的方法是记录问题解决日志。

简单地说,记录问题解决日志,就是将软件生命周期内每次发现和解决的问题都记录下来,形成一个问题数据库,当软件再次出现问题时,查询这个数据库,直接获取解决方案。如果出现的是一个全新的问题,那再采用前面的3种方法解决它,再把这个问题及其解决方案存储到这个数据库中。

记录问题解决日志一般要记录的内容包括:

  • 问题发生日期
  • 问题简述
  • 解决方案详细描述
  • 引用链接(对解决方案中采用的方法、参考资料等更详细内容的链接)
  • 检索关键字(便于问题和解决方案的检索)
  • 运行环境(包括软硬件环境,它与问题及解决方案是不可分割的)
  • 决策原因(决策采用此种解决方案的原因)

这样一来,软件问题的解决是不是超级简单?只要你打上个关键字,解决方案马上就会出现在你面前。

当然,这样快捷的解决问题的手段也不是那么唾手可得的,它需要开发人员不断地积累这个问题数据库。同时,它也需要注意以下几个问题:

1. 记录过程要保持轻量级

记录问题及其解决方案要遵循这样一个原则:

记录问题的时间不应超过解决问题的时间。

这个原则有两个含义:一是对于一些常识性的错误,开发人员一看就秒懂的问题,是没有记录的必要,因为有记录的时间,问题都已经解决完了;二是打造工具和流程,简化记录的过程,减少记录问题的时间。

2. 问题数据要保持持续更新

每当有新的问题出现,在解决该问题之后,都要将它补充进问题数据库中。只有这样持续更新,让这个问题数据库日益壮大,解决问题的效率才会越来越高。

3. 全员共享

这种问题数据库不仅对于一个项目组共享,而是要全员共享。因为记录的问题不仅对同一个软件同一个问题适用,对于其它软件其它问题也可能会有极大的参考价值。

4. 贵在坚持

记录问题解决日志,应当是组织长期建设的内容,应当作为每一位开发人员都要完成的任务之一。开发人员只想解决问题不想留下解决问题记录的陋习必须要纠正过来。这项任务不仅对组织有益处,对个人也同样有益处——如果不记录下来,谁能遇到一个1年前解决的问题就能马上想到解决方案?

总之,记录问题解决日志,是一种简单易行的提高软件调试效率的方法。所以,为什么不马上行动起来呢?

调试纠错不用慌,问题记录来帮忙

软件调试过程中,一旦发现问题,开发人员就要着手去解决。常见的做法就是通过对程序运行进行时时跟踪,或者在程序里加进许多打印语句,收集软件出错的大量信息,分析原因,再给出解决方案。

除了这种比较基础的处理之外,还有更加高端一点两种方法:原因排除法、回溯法。

其中原因排除法是通过归纳和演绎与错误出现有关的数据,分析得出的错误原因,再给出解决方案。

回溯法是从发现错误的地方开始,人工地向后追溯源代码,直到发现错误原因的地方,再给出解决方案。

这些方法无不费时费力。更简单高效的方法是记录问题解决日志。

简单地说,记录问题解决日志,就是将软件生命周期内每次发现和解决的问题都记录下来,形成一个问题数据库,当软件再次出现问题时,查询这个数据库,直接获取解决方案。如果出现的是一个全新的问题,那再采用前面的3种方法解决它,再把这个问题及其解决方案存储到这个数据库中。

记录问题解决日志一般要记录的内容包括:

  • 问题发生日期
  • 问题简述
  • 解决方案详细描述
  • 引用链接(对解决方案中采用的方法、参考资料等更详细内容的链接)
  • 检索关键字(便于问题和解决方案的检索)
  • 运行环境(包括软硬件环境,它与问题及解决方案是不可分割的)
  • 决策原因(决策采用此种解决方案的原因)

这样一来,软件问题的解决是不是超级简单?只要你打上个关键字,解决方案马上就会出现在你面前。

当然,这样快捷的解决问题的手段也不是那么唾手可得的,它需要开发人员不断地积累这个问题数据库。同时,它也需要注意以下几个问题:

1. 记录过程要保持轻量级

记录问题及其解决方案要遵循这样一个原则:

记录问题的时间不应超过解决问题的时间。

这个原则有两个含义:一是对于一些常识性的错误,开发人员一看就秒懂的问题,是没有记录的必要,因为有记录的时间,问题都已经解决完了;二是打造工具和流程,简化记录的过程,减少记录问题的时间。

2. 问题数据要保持持续更新

每当有新的问题出现,在解决该问题之后,都要将它补充进问题数据库中。只有这样持续更新,让这个问题数据库日益壮大,解决问题的效率才会越来越高。

3. 全员共享

这种问题数据库不仅对于一个项目组共享,而是要全员共享。因为记录的问题不仅对同一个软件同一个问题适用,对于其它软件其它问题也可能会有极大的参考价值。

4. 贵在坚持

记录问题解决日志,应当是组织长期建设的内容,应当作为每一位开发人员都要完成的任务之一。开发人员只想解决问题不想留下解决问题记录的陋习必须要纠正过来。这项任务不仅对组织有益处,对个人也同样有益处——如果不记录下来,谁能遇到一个1年前解决的问题就能马上想到解决方案?

总之,记录问题解决日志,是一种简单易行的提高软件调试效率的方法。所以,为什么不马上行动起来呢?

调试纠错不用慌,问题记录来帮忙