最初发表在"异口同声"笔记上.
一个前作注解诊断出三个生产特征,它们通过每个专用单元的测试,并且完全没有执行,为什么一个单元的测试结构上看不到这个缺口.
那张纸条回答了我已经知道的 三起案子 因为我已经被他们绊倒了 它没有回答一旦你找到三个重要的问题:你如何找到其余的——没有人注意到的那些?
这就是搜索:实际上有效的工具, 它发现的跨越了7个项目, 第四个失败形状 前注的两个修正完全没有到达, 因为第四个形状的代码从来不是被打破的东西。
询问,在任何细节之前的争论之前,这里是询问的形状,这样你就可以在一分钟内在自己的桌子上运行类似的东西: 如果这回接近100%,本注可能根本不适用于你的代码库,而这是一个真实的结果,而不是复制失败.
记住这一点 其余部分 下方的每一个发现 都来自这样的查询的下游 而不是读取代码和猜测的下游 Grep 不是探测器 我的第一个本能,也是前注的修补指向的, 就是对失败形状的grep —— 一个默认值, 一个不流行的论点, 一个呼叫站点缺少一个关键词。
在某一个下午,它产生了假正反两种情况。
更尖锐的错失:一个写作路径的字面格莱普没有找到一个声明,事实上,这个声明是活的,并且做我所寻找的写作。
Grep符合我期望的虫子形状,而不是代码实际的形状.
在下面的检查中幸存下来的一切都来自向一个数据库询问一个问题,而不是向一个贝壳询问一个字符串是如何被拼出.
起作用的问题是:在所有现存的行中,有多少列填满了?
在舰队的一个协调数据库中,一个表格载有177行.
有七个人居住。
那一栏不是化妆品:下游有三道门常数直接读出——0.30分为丢弃阈值;0.40分为吸收唯一阈值;0.20分为可核查的空心协商一致底板——所有这三道门常数都有效地评价了他们见过的绝大多数行的缺席情况.
同一舰队的第二个查询发现有101个查询通过议会的询问-路径,其中95个坐着,没有结果再被重新注入呼叫者.
Grep本来需要知道错误的名字才能找到任何一个号码.
伯爵只需要一行一行 单位是栏 最清楚的证据是,这一类的bug 活在一列级别,而不是特征或文件级别,坐落在一列七排的桌子上.
每行都有——所有7个,没有例外。
在这7行中,从2行到52行,从0.50行到0.90行不等,目前正常移动。
同台同台,同七行:一轴活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活 降级阈值,只有超过4个记录的跑道的起火,是永远无法达到的,因为它所依赖的跑道计数器从未增加过。
这足以愚弄一个谨慎的评论家.
一个负责这个确切案件的鉴定人 冒出候选人来调查, 它被否决: 缺陷属于死轴, 教训概括过这个表格——不要问"这个特征是否有效",因为一个特征可以活到一半.
问,栏一行,哪个在实际移动.
根由一度被隔离到右栏,有6行:执行会板功能期望其召取者递出一个分类账对象,编码库中所有三个真正的呼叫站点都未通过一个来构建会板.
通过它恢复了运行计数器,作为一种副作用,恢复了出于同样原因默不作声地惰性的降级检查.
固定后测量:零降级