您的位置:首页 > 其它

Udacity调试课第五单元错误重现

2014-05-24 11:19 393 查看
定义

为什么需要重现

对运行过程进行观察,按需试验,才能将缺陷隔离出来。

只有能将错误重现,才能证明最终修复了这个漏洞。

分类

以下错误好像都来自物理学

波尔错误

  A repeatable bug; one that manifests reliably under a possibly unknown but well-defined set of conditions 来自物理学 一个可重复的错误。就是说状态未知,但可能出错的状态有限、每一种状态都有定义。

海森错误——海森伯格是名字,也是错误? 物理学的测不准定理。试图研究、隔离出来进行分析时,错误就消失或改变了行为。

蒙代尔错误Mandel 起因复杂隐晦,行为接近于随机

薛定谔错误 他的猫实验。这种错误很难显形,只能从代码中分析出来,或程序以非常规方式运行才可能发现这种不该出现的错误。

如何重现

条件 -- 输入数据

环境

重现错误的步骤

数据分类

静态数据

最简单,因为文件储存良好,受控。不过要注意数据的安全性,隐私数据不要被人看到了。 可以考虑扩展

文件调用的序列

结构化数据——比较复杂的数据结构

返回值

全局变量

调用函数(可能只要记录部分)

用户交互

捕捉-回放工具

时间

随机

操作环境

调度

物理条件

调试工具

统计相关

通过统计出错和不出错的执行情况,分析出哪些特征会影响到程序的执行。比如某个函数,某行代码,某个变量值

使用phi相关系数
成功失败总数
覆盖n11n10
未覆盖n01n00
总数
phi = n11 * n00 − n10 * n01/sqrt((n10 + n11) * (n01 + n00) * (n10 + n00) * (n01 + n11))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: