7.6 调试


  • 调试是在测试发现错误之后排除错误的过程。调试也称为纠错,是在测试发现错误之后确定错误的位置加以排除的过程。
  • 在进行调试工作之前,首先要发现存在着某种错误的迹象。随后的调试过程通常分为两步:
    1. 确定问题的性质并且找到该错误在软件总所处的位置;
    2. 修正这一错误。
  • 测试和调试往往是紧密联系在一起的。
  • 目前调试它在很大程度上仍然是一项技巧。软件工程师在评估测试结果时,往往仅面对着软件错误的症状,而软件错误的外部表现和它的内在原因之间可能并没有明显的联系。调试就是把症状和原因联系起来。
  • 调试的目的和任务
    1. 软件测试的目的是为找出软件中存在的错误,即通过测试来发现错误,而调试的目的是为了解决存在的错误,即对错误定位、分析并找出原因改正错误,因此调试也称为纠错。
    2. 软件调试是一项具有很强技巧性的工作,软件测试结束以后,测试人员在分析结果时,只能看到程序错误的外部表现,而错误的内部原因与错误的外部表现没有明显的关系, 要确定发生错误的内在原因和位置是一件很不容易的事情。
    3. 调试是一个通过外部表现找出原因的思维分析过程。调试工作同人的心理因素和技术因素都有关系,需要很强的脑力劳动和丰富的实践经验。调试相对测试来讲,缺乏系统的理论研究。
  • 常用调试技术
    1. 简单的调试技术
      • 使计算机将存储器的全部内容,通过打印机打印出来。 然后通过逐个数据进行查找,从中寻找确定错误位置;
      • 在程序特定部位插入打印语句,其方法的优点是显示程序的动态过程,比较容易检查源程序的有关信息;
      • 使用自动调试工具来分析程序的动态行为,纠正错误。
    2. 消去原因法
      • 通过思考,分析列出发生错误的所有可能原因,逐个排除,最后找出真正的原因。试探法、折半查找法、归纳法和演绎法都属于消去原因法。
    3. 归纳法:是从特殊到一般,即从个别现象推断出一般性结论的思维方法。人们从一些线索(错误迹象,征兆)入手,寻找分析它们之间的联系,导出错误原因的假设,然后再证明或否定这个假设。常常可以确定错误的位置并纠正。归纳法纠错流程如图:
      ![[Pasted image 20230625214652.png]]
    4. 演绎法:从一般到特殊,是一种从一般原理或前提出发,运用排除和推理过程做出结论。演绎法首先列出所有可能的原因和假设,然后排除一个又一个不可能的原因,直到最后剩下一个真正的原因为止。 演绎法纠错流程如图:
      ![[Pasted image 20230625214727.png]]
    5. 分析:归纳法和演绎法用得比较多。另外,对于小程序一般常用回溯法来纠错比较有效。这种方法从发现错误征兆的地方开始,人工地往回追溯源程序代码,直到找到错误的原因为止。但是,如果回溯的路径数目变得很大,回溯会变得比较困难,以致无法管理。
  • 软件测试和软件调试的区别
    1. 软件调试:发现所编写软件中的错误,确定错误的位置并加以排除,使之能由计算机或相关软件正确理解与执行的方法与过程。
    2. 在进行调试工作以前,首先要发现存在着某种错误的迹象。随后的调试过程通常分为两步:
      • 确定问题的性质并且找到该错误在软件中所处的位置;
      • 修正这一错误。

文章作者: Chipfron
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Chipfron !
  目录