自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説

http://www.publickey1.jp/blog/12/_1040.html
http://www.publickey1.jp/blog/12/_1040_1.html
http://www.publickey1.jp/blog/12/_1040_2.html

それでもまだ10の26乗くらい残ります。そこで最後に泣く泣く「許容可能な絞り込み」として、同値分割などをしています。例えば、路線内の隣同士の駅は1つの代表駅にしてしまおうとか、自線内の乗り換えは1回までにしようとか。これでパターンを1000万件くらいに絞り込んでいます。この絞り込みは本当に割り切りで、実行可能な量のパターンにしていくと。

なるほど、ここまでやっているのか。

テスト対象となる実機用の運賃ソフトウェアと、検証用の運賃ソフトウェアは別のチーム、別のアルゴリズム、別のプログラミング言語で作ります。実機用はC++ですが、検証用はJavaで言語特有のバグをなくそうとしています。でも検証用のソフトウェアにはそんなに予算が掛けられず少人数で作っているので、実機用はどうやって作ったのか聞きたくなるのですが、そこを我慢して作る。

テストは100台くらいPCをレンタルして、がーっとやります。だいたい2週間から長いと3カ月くらい。このとき何に時間がかかるかといえば、間違った原因を探していくことですが、1000万パターンあると0.1%間違えても1万件とかになります。でも間違っているリストを見ると目黒ばっかり間違えていると、それで目黒のデータが間違っているというのが分かったりして。

クラウドは使わないのか。