首都圏の自動改札機の運賃計算ソフトウェアのテスト戦略
非常に高い信頼性が求められ、入力、出力ともに組合せが多く、機械的に結果を照合できる。そして、コストもなんとか確保できる。鉄道の自動改札機の運賃計算で同じ仕様から別チームで2つのプログラムを開発して、それぞれの結果を照合しているそうです。Tech-onの記事(10の40乗通りの運賃パターンにどう対応する?---オムロンの自動改札機用組み込みソフト)として掲載されています。
2つのチームで、異なる方針で実装すれば、両方のプログラムで誤った結果を出力する可能性は減りますし、記事のような極めて大量の入力、出力の組合せがある場合には、確認が自動化できることによるメリットが大きそうです。
ただし、改札機の実機ではCPU、メモリ等のリソースが限定的であるため、極めて大量の入力データを限られた時間で検証することが難しくなります。そこで、エミュレータの上でも動く実機プログラムと実装方針が異なるプログラムをPC等の比較的リソースに制約が少ない検証用プログラムとして動作させて結果を突き合わせるそうです。
鉄道会社どうしの乗り入れが多い首都圏において、定期区間との組合せにより、経路は10の40乗になるそうです。実際には、現実には起こりにくいパターンを除外して数を減らすそうですが、相当な数といえます。
どういうパターンを除外するか、結果を突き合わせた後どういう確認をするか、新駅設置や新線敷設に伴うテストをどうするか等、疑問はつきません。鉄道が好きな方であれば、東京メトロの大手町、九段下の改札外乗換え、目黒・白金高輪間、西船橋・中野間の相互乗り入れ区間の運賃等、気になることも多いと思います。
その詳細をソフトウェア品質シンポジウム2012で聞けます。9/13(木)に東洋大学で100分のセッションです。講演者はオムロンソーシアルソリューションズ幡山氏です。セッション概要はこちらから。シンポジウムのWebはこちら。私はシンポジウム委員長を拝命しています。