自動テストに期待することはいくつかありますが、「失敗することで、テスト対象の動きが予期せず変わったことをプログラマーに教えてくれる」という役割は特に重要です。 この観点における期待外れの自動テストは2つ考えられます。失敗すべきでないときに失敗するテストと、失敗すべきときに失敗しないテストです。 失敗すべきでないときに失敗してしまうことを「偽陽性」(false positive)と言います。失敗すべきときに失敗してくれないことを「偽陰性」(false negative)と言います。今回はこの2つを整理します。 4象限で整理する 偽陽性と偽陰性は4象限で整理すると理解しやすくなります。プロダクトコードの正しさ、自動テストの実行結果(成功/失敗)という2つの軸で整理すると、表1ができあがります。 表1 偽陽性と偽陰性 偽陽性とは、プロダクトコードが正しいにもかかわらずテストが失敗してしまう