バグから学ぶ: Gus Mueller

人気の画像編集ソフト「Acorn」の制作者であるGus Muellerは、23年間にわたってMacのコーディング作業に携わっているため、ミスをしてしまう機会もたくさんありました。今回は、彼が最も記憶に残っているという失敗について伺いました。それは、2003年にリリースされた高機能なジャーナリングAppである「VoodooPad」を開発している時のことでした。

失敗

「『VoodooPad』がまだベータ版であった当時、テスターの1人が私にドキュメントを送ってきました。そのドキュメントを開くと必ずAppが固まってしまい、応答がなくなると言うのです。さらに悪いことに、私がなんとかしてドキュメントを開いた時には、ファイルが空だったです。単語も、スペースも、画像も、何もありませんでした。ドキュメントのタイトルは『納税情報』だったので、私は『なんてことだ。データがぜんぶ消えてしまった』と思ったことを覚えています。

最終的には、Appがクラッシュする原因を突き止めることができました。それはというのも、初歩的なミスが原因で、『VoodooPad』は完全に空白のドキュメントを処理することができなかったのです。しかし私は、ファイルが空だったのはAppがデータを消してしまって、それで納税情報がなくなっているのだと思っていました。

なので、私は『ドキュメントとデータが完全に失われてしまい、本当にすみません。バックアップをお持ちであればよいのですが』と彼にメールを送りました。

すると、彼の返事はこうでした。『ああ、まだそのドキュメントには何も記入してなかったんだよ』

あれほど安心した瞬間はありませんでしたね」

斜面の上で、大きな文字とコーディングの記号を追いかけている男性のイラスト

教訓

「私はこの経験から、自動回帰テストを検討するようになりました。バグを修正することがありますが、その修正により、他のどこかで動作が少し変更されます。これは、たくさんある小さなバグを追跡して修正している時に、特に問題になります。『Acorn』の開発時には、私はこの問題を何度も経験しました。

バグが見つかった時は、私は報告されたバグごとに、バグを再現するためのテストスクリプトを作成しています。そしてバグを修正した後、私は再度、以前に修正した何百ものバグのテストスクリプトを実行して、過去に修正したバグが再発しないことを確認しています。

このため、私の新しい開発には長い時間がかかりますが、これが『Acorn』成功の秘密の1つでもあるのです。「どうしたら1人で画像編集ソフトを開発できるのか?」とよく聞かれますが、その答えは徹底した回帰テストにあるのです」

元々はMac App Storeで公開