システムのテスト | にかぽの日記

システムのテスト

品質のよいシステムを本番リリースするのは難しい。

証券のシステム開発会社に入社して1年目に、300人もの開発者が従事する大プロジェクトに放り込まれた。そこで1年間システムの検証ばかりやらされた。ポートフォリオ管理関係の帳票全種類のテストを担当し、仕様の理解に数ケ月、テストケースの作成に教ケ月、実際のテストに数ケ月かけたと思う。テストチームはユーザも加わって20人ぐらいいたと記憶している。私はそのチームの1人だった。

下請の開発会社から納品される帳票は実にお粗末だった。レイアウトが崩れているのが一見して分かる。レイアウトの見た目が直っても、合計が合っていなかったり、数値の桁が落ちたり、文字化けしたり、明らかにテストしていないことが分かる。当時は何も知らなかったのでそれが通常かと思っていたが、今なら間違いなくブチ切れている。

プログラマーというのは必ず間違いを犯すものであるということを痛いほど学んだ。また、プログラマーに業務での用途を説明しながらプログラムの仕様を細かくわかりやすく伝えると、品質が格段に上がることも同時に学んだ。検証の結果、プログラムに不具合を見つけたとき、その内容を詳細に伝え仕様の意味を丁寧に説明すると、こちらが指摘する以上のものが修正されて返ってくる。

まだメールがない時代で、不具合のやり取りは「トラブルQA」という用紙で行っており、プログラマーの人達と私とは実際に顔をつきあわせることはなかったが、どうやら私のQAはわかりやすいと評判だったということを随分後になって知った。そりゃあそうだ。先輩に何度も叱られて、わかりやすく丁寧に書くことだけは一生懸命やっていたから。おかげでいい評判が知らないところで立っていたようで、後々得をした。

いつの間にか自慢話になってしまった。私が書きたかったのは自分の昔話ではない。品質のよいシステムを納品することは難しいということだ。20人ものテストチームが1年かけてテストしても、あのシステムは何度か大きな障害を発生させた。今週リリースしたシステムは約20人で4ケ月ぐらいかけて完成させたものだが、テストの専任チームはなし。仕様を正しく理解しているものはごくわずか。テスト期間は約2週間でリリース直前まで仕様変更を受けつけていた。これではトラブルが出ない方がおかしい。みんな知ってるのかな?トラブルが出ることを百も承知で私が本番リリースに跡み切っていることを。

とある欧州系のオンライン証券が「ライブテスト」という奇妙なネーミングのフェーズで、市場相手に本番環境で本番データを使ってテストしていた。相手は証券取引所だよ。初めてそれを間いたときはたいそう驚いたが、今は似たようなことをしている。取引所に比べれば、社内にしか迷惑がかからない社内システムでライブテストするのは有効かもしれない。テストのためのテストケースでの検証には限界があるし、テストをどんなに重ねても、本番でトラブルが発生しないことはあり得ないから、ある程度バグが見えなくなるまでテストを行い、本番で洗礼を受けるやり方の方が、トータルのコストは安いかも知れないからだ。

トラブルを末然に防ぐよりも、トラブル発生後のトラブルシューティングをいかに効率的に素早く行うかに注力する。とテスト嫌いの私は自己弁護するのである。・・・次はもっとちゃんとテストしよっと。