三菱東京UFJのシステム障害(仮書き)まとめない気がする。

不具合の原因は「カタカナでなく漢字だったから」――三菱東京UFJのシステム障害

三菱東京UFJ銀行のキャッシュカードがセブン銀行のATMで使えなくなるシステム障害が5月12日に発生した。三菱東京UFJ銀行によると原因は「カタカナで転送すべきデータを漢字で処理していたから」であった。
http://www.itmedia.co.jp/enterprise/articles/0805/12/news080.html
ITmedia エンタープライズ

 今回のミスの詳細はよく知らないから、今回のようなミスがどこで防がれているべきだったのかはわからない。でもこの文面だけ見るなら、確実にどこかのテストケースで拾えたミスだという印象を抱いた。

 機能設計時のレビュー、手を抜いたんじゃない?接続先のパターンを想像して網羅的に機能設計、テストケースを考え、レビューしていたのだろうか?なんとなく今までの経験上、設計及びテスト時に異常系(後述)の考慮の重要性をあまり認識していないSEがよくやるパターンのミスだと感じた。

 異常系というのは、該当機能が要件の想定外の起動やデータ入力等のことを言い、逆に要件の想定通りの起動やデータ入力等の場合は正常系と言う。例えばATMを一例とするなら、当銀行のキャッシュカードが挿入されたら正常系(想定通りのカードが挿入された)、これに対しPASMOとか蒲焼さん太郎が挿入されたら異常系(想定外のカードが挿入された)。

 異常系の考慮の重要性について記述する。機能というのは当然ながら動くように書かれる。当たり前だ。要件に沿った機能を作るというのは、想定通りのデータに対し、想定通りの処理を行い、想定通りの結果を実現することに他ならない。そしてこの要件通りの機能を作ることがSE・PGの仕事である。しかし本当に難しいのはこの想定通りの正常系ではなく異常系のパターンだ。

 上記の例でも


設計・テストでの異常系の考慮と重要性
上記無意識SEによくあるミス
特に切羽詰ると正常系が動いてるとOKに見える
ミスの多くは異常系がこないと発覚しない

設計・テストケース作成時(机上時)にどれだけ異常系を想像できるか
SEの能力
正常系が動くのは当たり前
それさえ動かないと何も作れていないことに

異常系の対応がどれだけなされているか
SEは心配性のタイプが向いてる
心配性の書いたテストケースは細かい
こんなのいちいち確認してデビデンスとるほどのレベルじゃないだろ