より早く・効率的にテストを進めるためのマスターテスト計画導入
こんにちは、品質管理グループの 山本久仁朗です。
みなさんの組織では、テスト計画を作成していますか?
テスト計画について、さまざまな効果があることは、みなさんご承知のことと思いますが、
今回はマスターテスト計画の活用について、お話しいたします。
マスターテスト計画の役割
IEEE 829 や ISO/IEC/IEEE 29119 などに含まれる、ソフトウェア・システムのテスト計画書の多くは、
PMBOK のプロジェクト計画と親和性が高く、テストの要件・目的・対象・期間・範囲・粒度・工数・開始終了基準・成果物等が含まれ、合意形成や手戻りに抑止等の効果があります。
ただし大きなプロジェクトにおいて、各機能・フェーズに対応した各レベルテスト計画だけでは整合性が取れず、サービスを全体的に見ると、テストの抜け・漏れ・重複が発生するリスクが残ってしてしまいます。
マスターテスト計画は、このような抜け・漏れ・重複を削減し、よりスムーズにテストを進めるために、プロジェクト・サービス全体を俯瞰して考える役割を担っています。
マスターテスト計画導入の効果
- サービス全体でMECE(抜け・漏れ・重複なし)なテストを実施
各レベルテストのテスト目的・観点・スコープを確認し、サービス全体のテスト観点として抜け・漏れ・重複は無いかを精査することで、より効率的なテストが可能になります。
直近の事例として、マスターテスト計画をベースに各レベルテストのテスト観点の抜け漏れが判明したので、 下流のレベルテスト計画を見直しすることにより、初期計画時の3倍の不具合を検出することができました。 - レベルテストをブラッシュアップして、早期に不具合を検出
各レベルテストの目的から、テスト観点毎にテスト対象・実施時期を再調整して、 早期にテストを段階的に実施することで、品質状況も段階的に可視化・共有可能になります。
実際に、設計側と相談して、主要な機能をプレリリースしてもらうことで、1~2週間ほど先行して一部機能のテストが実施できるようになりました。
上記のように、マスターテスト計画には大規模・複雑なシステム・サービスをテストする際に、レベルテスト計画を補完する効果がありますが、決して良い話ばかりではありません。そこには、陥りがちなアンチパターンがたくさんありました。
代表的な例を列挙いたしますので、お気を付けください。
マスターテスト計画導入時のアンチパターン
マスターテスト計画を導入してみた方は、ご存知のことと思いますが、さまざまな課題が発生します。例えば、そもそもどうやったらいいのか分からない・工数がかかる・効果が分からない等いろいろな理由から、なかなか安定運用できていないのが現状だと思います。
そこで、いままでの経験をベースに、いくつかのアンチパターンを列挙します。
- レベルテスト・フェーズが相互補完していない
- テスト観点が漏れて、後工程・市場で障害が発生する
- 同じテストケースを使いまわしているが、最適化されない
- テスト観点が漏れて、後工程・市場で障害が発生する
- 規格に規定されているすべての項目を列挙して、膨大なテスト計画になる
- 計画書の項目を埋めるために、必要性が低い情報を収集して工数がかかる
- メンテナンスに工数がかかる → 工数がかかるので見直しをしない → 現実と乖離する
- 計画書の項目を埋めるために、必要性が低い情報を収集して工数がかかる
- 各レベルテストを分割せずに変化に対応できない
- 829-1998等をベースに、1つの大きなテスト計画を作成し、変更し辛いドキュメントになる
- 目的・スコープ等から分割した方が柔軟性が高まるが、結合・総合・システム等のフェーズに縛られ分割できない
- 829-1998等をベースに、1つの大きなテスト計画を作成し、変更し辛いドキュメントになる
マスターテスト計画導入時のおすすめパターン
私が、マスターテスト計画でもっとも重要視しているのは、integrity(完全性)です。
サービス全体で実現すべきテスト観点が過不足ないか確認しています。
しかし、各レベルテストのテスト設計・実装内容まで確認すると、対費用効果が低くなり、いくら工数があっても足らなくなります。
そこで、下記のようなポイントを軸に、ライトに何度も見直しができるような運用を心がけています。
- テスト観点ベースでのヒアリング実施(目的・スコープ・アプローチ程度)
- 各レベルテストの状況から、不足しているテスト観点・タスクを検討・調整
- 計画時のテスト観点をもとにテスト設計・実装を実施
まとめ
上記の事例は、非常に効果的に実施できた例になりますが、マスターテスト計画の活用方法を見直すことで、不具合を早期に検出して、検出効率を向上させることができました。
みなさんの現場において、テスト計画の見直し、より早期の不具合検出、効率的なテストの推進・実施等の一助になれば幸いです。
