Bug 回忆录:Gus Mueller

热门图片编辑 App《Acorn》的制作者 Gus Mueller 拥有长达 23 年的 Mac 编程经验,其中自然也不乏犯错的经历。在这里,他为我们讲述了最难忘的一次错误——2003 年发布的高级日志 App《VoodooPad》中的一个 bug。

错误复盘

“《VoodooPad》进行 beta 测试时,一名测试用户给我发来了一个文档。只要他一打开这个文档,App 就会崩溃。更可怕的是,当我终于想办法打开这个文档后,却发现它是完全空白的——没有文字,没有图片,连空格都没有。那个文档的文件名是‘税务信息’,我想‘这下完了,信息全没了。’

我后来终于发现了崩溃的原因:一个非常初级的错误导致《VoodooPad》不能处理完全空白的文档。但在发现原因之前,我一直以为文档中真的有税务信息内容,只是被 App 删除了。

我给那个用户写邮件说:‘太抱歉了,你的文档和信息都没了,希望你有备份。’

结果他回复说:‘噢,那里面本来就什么都没有。’

这真是让我长长地松了一口气。”

一幅插画:一个男人在斜坡上追逐着巨大的字母与代码术语。

经验分享

“这次经验让我开始研究自动回归测试。有时我会修复一个 bug,但是这种修复行为本身又会对其他地方造成轻微的影响。如果你要追踪修复许多小 bug,就很可能出问题了。我在开发《Acorn》的时候就遇到了这种情况。

每次发现 bug,我都会写一份测试脚本来重现它。然后,修复这个 bug 之后,我会运行之前所有 bug 的数百份脚本,确保它们都不出问题。

因为这种工作方式,每次制作新版本 App 都需要很长时间,但它正是《Acorn》成功的秘诀之一。人们总问我‘你怎么做到一个人开发一款图片编辑 App 的?’答案就是,回归测试一定要做好。”

原发表于 Mac App Store。