そいうことを言いたいわけじゃないんだがなあ
上でエビデンスの話が出たが
まさにswitch内で定義した状態の数だけパターンを取ればいいって単純化の話なんだよ
たとえばifで
if(a) x
if(b) y
と書くと2^2の4パターンだけど
この調子で増やしていくとどんな状態があるのか目視では見落としやすい

state swichなら以下の通りテストパターンと完全に一致する
state = a | b;
swich(state)
case a0b0: break;
case a0b1: break;
case a1b0: break;
case a1b1: break;
default: /*error*/ break;
}
つーかテストパターンを同時にを書いていく前提なら上で挙がってたコードは全部論外だろう