写真1●ソニー損害保険の佐伯 陽一 氏
写真1●ソニー損害保険の佐伯 陽一 氏
[画像のクリックで拡大表示]
写真2●Enterprise Test Forum 2011の会場
写真2●Enterprise Test Forum 2011の会場
[画像のクリックで拡大表示]

 「ツールがなかったらテストの実施は到底不可能だった」──。6月24日に東京・六本木ヒルズで開催された「Enterprise Test Forum 2011」で、ソニー損害保険 システム企画部 企画管理課長の佐伯陽一氏が基調講演に登壇(写真1)。「人海戦術のテストはもう時代遅れ~自動化で工数を10分の1に~」と題して、同社のシステム構築におけるテスト工程の自動化についてこう強調した(写真2)。

 佐伯氏は、2010年1月に実施したWebシステム刷新、2011年1月に実施したコールセンターシステム刷新という二つのプロジェクトについて、それぞれのテスト工程をどう乗り切ったのか、同社の取り組みを紹介した。

 二つのプロジェクトはいずれも、ハードウエアの老朽化に伴いサーバーを置き換えたもので、アプリケーションの再構築などは必要ない。だが、「単に機器を置き換えるだけのプロジェクトでも、新しいハードウエア上での正常動作を確認するためのテスト量は膨大になる」(佐伯氏)。

 ソニー損害保険では、それぞれのプロジェクトの特徴に応じて複数のテストツールを使い分け、自動化によるテスト作業の効率化に取り組んだ。

 まず、Webシステムで直面した課題は、新規契約受付や継続受付など、取引パターンに応じたシナリオを実行するテストである。24台あるサーバーそれぞれで、10パターンのシナリオを人手で実行するのは大きな手間がかかる。そこで、オープンソースソフトの「Selenium」を使い、テストを自動実行することにした。これにより、サーバー24台に関するテストが1日で済んだという。

 システムの実際の使用状況を再現したDBサーバーの負荷テストには、複数ユーザーによる処理を同時実行できるマイクロフォーカスの「QALoad」を採用した。取引パターンごとのシナリオを毎秒20~25ユーザーで一斉に実行。実行結果や画面データなどのテスト証跡の作成には、QALoadの自動レポート機能を利用した。

 一方、コールセンターシステムを刷新するプロジェクトでは、DBサーバーの負荷テストが最大の課題となった。クライアント800台による負荷テストを実施する必要があったからだ。「実際にテスター800人を一堂に集めてテストを実施することも考えたが、施設やコスト、セキュリティの問題などで、現実的ではなかった」(佐伯氏)。

 結局、1万通りにもおよぶテストシナリオを、ツールを用いて自動実行することにした。監視ツールで取得したSQL文を分析して利用頻度が上位20種類のSQL文から1万通りのシナリオを作成。フリーソフトの「Transaction Generator」を利用して、800台のクライアントからの処理を想定したテストを実施した。

 佐伯氏は「機能テストは人海戦術でどうにかなっても、実際の利用状況を想定した負荷テストは、ツールなしでは実施できない。コールセンターシステムのプロジェクトでは、機能テストだけを実施し、負荷テストなしで済ませてしまおうかと考えたこともある」と明かす。無事負荷テストを乗り切った二つのシステムは共に、本番稼働後の性能問題は一切ないという。

 もっとも、二つのプロジェクトの中には、自動化できずに人手を掛けざるをえなかった作業もある。例えばWebシステム刷新における単体プログラムテストでは、複数のWebブラウザーごとに手動でテストを実施しなければならなかった。また、テストシナリオの作成については、プログラムを変更するたびに画面をキャプチャーし直す必要があるなど、手間が掛かっている。佐伯氏は「ツールにシナリオの自動生成機能があれば、さらに効率化ができる」とテストツールの機能の充実への要望を挙げた。

 最後に佐伯氏は、「システム構築プロジェクトではテストは限られた期間で実行せざるを得ないので、テストツールを活用した自動化は不可欠。ツールの機能やコストを見極める必要はあるが、今後も積極的に取り組んでいきたい」と話し、講演を締めくくった。