今回は、実施段階における、現場の具体的な秘訣を見ていこう。

実施段階における秘訣
段取りやチェックリスト、Excelで効率化

 実施段階では、効率を高めることがポイントとなる。ここでは、進捗に影響を与えるリスクを早めにつぶす、スキル差による生産性のブレをなくす、単純作業を自動化する、迅速な修正を促す、問題の把握を早くする──といった現場の秘訣がある。

テストの中で「反復」を繰り返す

 「危険な機能は先にテストするのが鉄則」。プライスウォーターハウスクーパースの高橋昭憲氏(シニアマネージャー)はこう考える。システム運用・保守を手掛ける高橋氏らは、頻発する変更・追加要求に対応して素早くテストするには段取りが重要という。

 ここでいう段取りとは、テストの進め方を指す。危険な個所を前倒しでテストしておけば、もしバグがあっても手戻りが小さくて済み、テスト全体の効率は高まる。これを実現するのが「反復型テスト」(図7)である。

図7●手戻りリスクを前倒しでつぶす「反復型テスト」
図7●手戻りリスクを前倒しでつぶす「反復型テスト」
やみくもにテストを実施すると、影響が大きい致命的なバグが、後半で発見される可能性がある。プライスウォーターハウスクーパースの高橋氏と前田氏は、結合テストを3回に分割し、危険な個所を1回目のテストで実施している
[画像のクリックで拡大表示]

 反復型テストは、結合テストを大きく3回に分けて、危険な個所を1回目のテストで実施する。具体的には、1回目でシステムの核となる機能や、対外的に影響が大きい機能をテスト。「金額を扱う機能や自社以外に関係する機能のバグがテスト後半に見つかると、影響範囲が大きく、それまでに完了したテストまでやり直さなくてはならない恐れがある」(高橋氏)。

 2回目は、利用者にとって業務を進める上で欠かすことができない機能をテスト。3回目は、残りの機能、例えば利用者の内部管理プロセスや業務上致命的とならない機能をテストする。もしあなたの現場で簡単な機能からテストしているようなら、それは見直した方がいいかもしれない。

テストのやり方を「テスト」

 効率を高める上では、メンバーのスキル差をどう解消するかもカギとなる。テストを迅速に進めるには本来、高いスキルが必要だ。しかし現実には、膨大なテストをさばくために人を集めた“人海戦術”になりやすい。

 野村総合研究所の小宮正哲氏(証券ITサービス事業本部 新証券システム推進部 上級システムエンジニア)のチームもかつて、スキル差をどうなくすかに悩んだ。小宮氏は「勘や経験に頼るベテランに、右も左も分からない新人。そうしたメンバーが入り交じるテストの生産性のブレを正すことが求められた」と振り返る。そこで取り入れたのが、メンバーのスキル差をなくす「チェックリスト」と「サンプル集」だ(図8)。

図8●スキル差をなくす「チェックリスト」と「サンプル集」
図8●スキル差をなくす「チェックリスト」と「サンプル集」
テストが高度化・複雑化するにつれて、スキルによるテストの質に差が出やすくなっている。野村総合研究所の小宮氏らは、テストの進め方に関するチェックリストを用意したほか、テストケースの洗い出しに役立つサンプル集を用意してスキルの底上げを図っている
[画像のクリックで拡大表示]

 テストが高度化・複雑化しているという事情もあった。約200項目あるチェックリストは、テストそのものの進め方を検証するもの。例えば単体テストの網羅性について「すべてのコマンド・分岐について網羅確認しているか」という項目がある。メンバーはこれを参照し、自分のテストのやり方を確認するわけだ。同時にリーダーも、メンバーの作業を検証。テストのやり方を「テスト」するものである。

 とはいえ、チェックリストで作業の進め方を明確にしても、そう簡単にテストできるわけではない。そこで小宮氏らは、チェックリストに加えて、サンプル集を用意。サンプル集は、例えばWebシステムのAPサーバーとDBサーバーの連携方式をパターン化し、どこに着目してテストするかを明確にした。

 これらの工夫を形骸化させない対策も取った。「チェックリストとサンプルの数を極力減らし、使いやすさも考慮した」と小宮氏は説明する。