結局は根性

happyさんがコメントくれてたので、happy向け、というか、むしろhappyさんは見たくない話かもしんない、そんな話。
 
自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(Publickey)

自動改札機では、切符を入れてから出てくるまで0.6秒。これはだいたい人が歩く速度を基準にしているらしいのですが、この時間の中でいろいろやっています。
切符を入れるとモーターの下が速くて上が遅いといった仕組みで複数の切符を分けて整列させ、裏表反転。昔は裏で入れると裏のまま出てきたのですが、これだと上下両方に読み取り機が必要だったり、裏だと取り忘れが多かったそうで、いまは裏表反転機があって、どう入れても表で出てきます。
磁気面にリードとライトをしたあとベリファイしています。この読み取って書き込むそのあいだに運賃計算をしています。
重ね合わせ機構は取り忘れないように複数の切符を重ねるのですが、三枚でもいけます。
搬送機はよくできていまして、でもIC化されるとなくなっていくので、ぜひ今のうちに見ておいてください。

あー、こういうメカ物の技術ノウハウの保全も必要だよねぇ。

そもそも関東の全部の運賃パターンを計算してみると10の40乗通りくらい。これを計算する運賃計算ソフトウェアの正しさを確認するためには、なんとかしてテストしなければいけないので運賃検証システムを作りました。
(中略)
目指しているのは見落としのないテスト。従来のテストよりも網羅性を高めた見落としのないものを作りましょうと。そして大規模なテストをしましょうと。
まずは網羅性の話からします。
網羅性のあるテストを作るには、運賃に関わるいろんなことを知っていなければなりません。しかし、思いつくパターンだけやっていても網羅性のあるものを作るのは無理です。
属人性をなくして、網羅性のあるテストパターンを作るために2つのステップを踏んでいます。

すげぇ! 全網羅のテストパターンを弾き出すのは、確かに基本なんだけど、この組み合わせ爆発状態の中でやるのは、気が狂ってるとしか思えない!
でも、非効率で愚直な手段が、最も効率的なこともあるから、世の中、難しい。
 
ただ、これ読んでて、最後のラインは「気合」の一言、結局は人間力勝負と言うのが、やっぱりと言うか、なんて言うか、うん(笑)。