Udacity公开课:软件调试(优酷旁听)

Udacity公开课:CS259软件调试

课程概览

目标
如何系统化的调试
使用自动化调试工具
使用一系列试验,进行程序科学调试假设验证

大纲

  1. 调试如何工作?
  2. 断言实验
  3. delta 自动化调试方法
  4. 程序 bug 如何产生
  5. 重复错误如何发生,统计调试错误源
  6. 信息挖掘 :bug 数据库和变更数据库

第一节

序言:深夜调试

  • 程序员手工调试的弊端:注意力有限,不集中;花费更多时间以致减少了和陪伴家人的时间;
  • 软件工作量占比:测试和调试经常在 50% ~ 75%
  • 调试的困难:无法估计

启程

  • 处理 HTML 输出文本(tag 模式与有限状态机);
  • 简单例子foo:两种状态(tag、text);
  • 第一个漏洞,foo:三种状态(tag、text 和 quote)
  • 第二个漏洞,”foo“;
  • 任意输出变量值调试:时间杀手!任意变更代码调试:混乱杀手!
  • 《代码大全》- 历史:魔鬼调试指南;
  • 修复调试;糊弄单元调试案例;
  • 程序变量的状态 -> defect 感染点 -> 感染点传染 -> 错误;引发感染的情形 -> 调试/测试的 cases
  • 解决:科学假设 -> 预测 -> 试验 -> 渐进式改进假设 —> 理论
  • 假设I:简单测试,输入”foo” -> “bar” -> “”;(因果链)

进度:Udacity公开课:CS259软件调试:01-29 你好断言

未完待续