正しく動いているのにバグがあるという話

システムを開発していると、タイトルのような奇妙な出来事がおきます。

そして、それは往々にして厄介な問題です。

どういうことかというと、バグっているおかげで見た目上は正しく動いていたと言うケースです。

例えば、Aという処理の後にBというバリデーションを行っているとします。

Aという処理がバグっており、Aの処理の後にBが実行されていなかったとします。

そして、Bもバグっていたとします。

Bは実行されないため、バグは顕在化しません。

しかし、Aのバグを取り除いた瞬間にBのバグが顕在化します。

開発者からすれば、Aのバグが解消されて一安心!と思った瞬間にこれまで正しく動いていた箇所が動かなくなるのです。