Chinese, Simplified 字幕

← 00-01 课程概述

埋め込みコードを取得する
6言語

Showing Revision 1 created 11/13/2012 by fensitele.

  1. 我叫安德烈亚斯.采勒。是一名德国萨兰德大学的研究员。
  2. 我致力于大型程序与其失效原因的研究
  3. 我曾在自动程序调试的工作中有过一些失败的经历,在程序历史挖掘的工作中也同样如此。
  4. 我曾在诸如微软,SAP与谷歌这样的公司工作过。
  5. 检查他们的程序漏洞,发现出错的原因,这些工作给予过我打击。
  6. 因为几乎没有可用的关于如何进行程序调试的教学材料。
  7. 因此今天,我将为你开始讲解“如何去调试程序”。
  8. 系统的,高效率的,以及在大部分情况下自动化的。请拭目以待。
  9. 欢迎来到Udacity的程序调试课程
  10. 该课程的目的是教习如何系统化的进行程序调试,
  11. 同时我们将会为你介绍一些自动调试工具。
  12. 我们将研究调试器是如何工作的。
  13. 特别是,通过一系列试验来逐渐完善
  14. 程序调试科学方法的假设。
  15. 直到我们分析出为何程序会出错。
  16. 首先我们将适用Python语言来构建一个交互的调试器。
  17. 下一节,我们将会介绍一款有史以来最强大的调试工具
  18. 那就是“断言”
  19. “断言”是程序中的一系列自动检查的声明,
  20. 声明程序状态是否仍然正确。
  21. 也就是说,在你程序执行中,计算机持续的监视
  22. 程序是否有错误产生。
  23. 这可以让你非常迅速有效的找到在那里首先出现了错误。
  24. 所以首先,我们会构建一个工具,让你能在程序执行中加入断言。
  25. 在第三节课中,我将为你展示一项名为“delta debugging”的技术。
  26. 该技术会自动的简化问题。
  27. 例如,有个900行语句的HTML文件,处理该文件的过程中会导致程序崩溃。
  28. 通过delta debugging,你能将出错原因归咎至八个字符。
  29. 当然这些都是自动化的。
  30. 在第四节,我会告诉你如何去找到一些具体的错误是由何产生的。
  31. 你将程序执行视为一系列状态。
  32. 我们会去探讨一些技巧,来帮助你
  33. 跟踪一个错误在整个程序执行过程中的路径。
  34. 因此首先,我们会构建一个工具,来自动分离这些有效的变动
  35. 在第五节,我们会着重关注错误的重复产生。
  36. 我们会检查你程序的所有不同的输入源,
  37. 然后讨论如何捕获与再现那些会肯定在此区域内
  38. 重复产生的错误。
  39. 此外,我们会讨论统计化调试方法,此方法收集该区域内的数据
  40. 来告诉你程序的哪部分最可能与出错相关联的。
  41. 在第六节,我们将会看到如何去做信息挖掘。
  42. 在错误数据库与变更数据库内进行信息挖掘,来发现
  43. 那些程序错误过去存在于程序的哪部分,并在那里积累。
  44. 以及会在程序的哪部分爆发。
  45. 当然这些全都是完全自动化技术
  46. 至今为止,你在程序调试过程中完全没有乐趣,因为这是相当糟糕的过程。
  47. 该课程的目的是尽量减少亲自进行程序调试给你带来的负担。
  48. 因为计算机会处理大部分的调试工作。
  49. 因此你能更多的去思考一些更具创造性的东西,而不是程序调试。