ソフトウェアテストのプロセス改善を支える国際標準~Test SPICE~
はじめに
ソフトウェア開発において、テストは品質保証の要です。しかし、テスト活動そのものの成熟度やプロセス品質を体系的に評価・改善する枠組みは、長らく十分に整備されていませんでした。そこで登場したのが Test SPICEです。
今回はTest SPICEの概要について解説します。
Test SPICEの位置づけ
Test SPICEは、ISO/IEC 330xxシリーズの一部として策定された、ソフトウェアテストに特化したプロセス評価モデルです。従来のSPICE(Software Process Improvement and Capability Determination)モデルをベースに、テスト活動の特性に合わせて設計されています。
国際ソフトウェアテスト資格認定委員会(ISTQB)のシラバスに基づき、長年にわたるソフトウェア/システムのテストに関する世界中の有識者の経験を体系的にまとめ、テストプロセスの共通フレームワークを提供しています。
「検証サービスプロバイダ」 に求められる組織能力を可視化し、プロセス改善による組織能力向上を図ることを目的としていますが、テスト資産の再利用や回帰テストの自動化など、ソフトウェア開発組織のテストプロセスの改善にも有益な内容になっています。
構成と特徴
Test SPICEは、以下のようなプロセス群で構成されています:
- ビジネスライフサイクルプロセスカテゴリー:
- テスト計画、設計、実行、評価などテスト運用に使用されるプロセスで構成されています。
- 技術ライフサイクルプロセスカテゴリー:
- テスト環境管理、テストデータ管理、テストの自動化など、テストを技術的に有効利用するプロセスで構成されています。
- テストリソース合意プロセスカテゴリー:
- テストを実施するための人的・物理的リソースを調達または供給するプロセスで構成されています。検証サービス、テスト資産、テストツールなどテスト実施のために取引されるあらゆるものが含まれます。
- アジャイル拡張プロセスカテゴリー:
- Test SPICEのコアプロセスではありませんが、テストプロセスをアジャイルに実行するためのプロセスが定義されています。
各プロセスは、Automotive SPICEと同様に、目的・成果物・ベースプラクティスが定義されており、能力度レベル(Level 0〜5)に基づいて評価されます。
Automotive SPICEとの違い
範囲の違いとしては、Automotive SPICEがシステム・ソフトウェア開発全体を対象とするのに対し、Test SPICEはテスト活動にフォーカスしています。両者を組み合わせることで、より精緻なプロセス改善が可能になります。
また構造的な違いとして、Test SPICEでは、各プロセス群に「包括プロセス(Overarching Process)」と「詳細プロセス(Detailed Process)」が定義されています。
Automotive SPICEでは、プロセス群には単にプロセスが定義されていますが、Test SPICEでは、包括プロセスと詳細プロセスが親子関係をもって定義されています。
包括プロセスの各BPに対応するように詳細プロセスが定義されており、より詳細な評価指標を定義しています。
Test SPICEを用いたアセスメントを計画する際には、包括プロセスを対象とするのか、詳細プロセスを対象するのかを明確に決定することが求めれています。両者を混在させることは推奨されていません。
迅速かつ大まかな分析を行う場合は、包括プロセスとそれらのBPを使用し、より詳細な分析を行う場合は、詳細プロセスとそれらのBPを使用することが期待されています。
各ライフサイクルプロセスカテゴリーで定義されている包括プロセスと詳細プロセスは下図のようになっています。
例えば、技術ライフサイクルプロセスカテゴリーにあるテスト自動化プロセス群(TAU)の包括プロセスと詳細プロセスの関係について見てみましょう。
包括プロセスとして定義されている「TAU テスト自動化プロセス」には、6つのBPが定義されています。
6つのBPは、テスト自動化のための要件定義・設計・実装・テストケース実装・自動化実施・使用状況の監視に関するプラクティスになっています。
これら6つのBPに対応する形で詳細プロセスが定義されています。
各詳細プロセスには、包括プロセスが定義しているBPをより詳細にしたBPが定義されています。
大まかに何をすればよいのか知りたいときは包括プロセスを参照し、具体的に何をすべき把握したいときは詳細プロセス参照すると良いですね。
Test SPICEを覗いてみよう
もう少し理解を深めるために、「TAU テスト自動化プロセス」がどんな内容になっているのか見てみましょう。
先に述べたように、包括プロセスである「TAU テスト自動化プロセス」では、テスト自動化のための要件定義・設計・実装・テストケース実装・自動化実施・使用状況の監視に関する6つのBPが定義されています。これら6つのBPに対応する形で詳細プロセスが定義されています。
これを図示すると以下のような作業の流れになります。
- TAU.1:テスト自動化のニーズと要件の抽出プロセス
- 包括プロセスのBP1に対応した詳細プロセスです。
- 組織におけるテストに対する思想を記述したテスト方針に基づいて、テスト自動化に対する共有理解を得るために要件仕様書とアーキテクチャ設計書を作成します。
- また、どのようにテスト自動化を実現していくのかを記述した、テスト戦略と計画書も作成します。
- TAU.2:テスト自動化の設計プロセス
- 包括プロセスのBP2に対応した詳細プロセスです。
- テスト自動化の実現手段を明確にするために、TAU.1の成果物をインプットに、テスト自動化の設計書を作成します。
- 使用するツールもここでリストアップしておきます。
- TAU.3:テスト自動化の実装プロセス
- 包括プロセスのBP3に対応した詳細プロセスです。
- テスト自動化の基盤を構築するために、TAU.2で作成した設計書をインプットに、リストアップしたツールを利用して、自動化ソフトや実行に必要な構成ファイル、サンプルスクリプトなどを作成し、動作を確認します。
- TAU.4:テストケースの実装プロセス
- 包括プロセスのBP4に対応した詳細プロセスです。
- 実際にテスト自動化を実行するために、TAU.3で準備したソリューションを使用して、テストケースをテストスクリプトに変換し、実行に必要なテストデータやテスト手順も作成します。
- TAU.5:テスト自動化の実施プロセス
- 包括プロセスのBP5に対応した詳細プロセスです。
- ここで実際にテスト自動化を実行し、テストログやテストレポート、不具合報告を生成していきます。
- TAU.6:テスト自動化プロセスの監視プロセス
- 包括プロセスのBP6に対応した詳細プロセスです。
- 実際にプロジェクトでテスト自動化の使用状況を確認し、意図した利用ができているか、組織として当初目指していた、コスト削減や製品品質の均一化に対する妥当性を評価します。
「テストの自動化はコストにも品質にも良いのはわかるけど、何からやったらよいの?」
「テストは自動化できたけど、かえって手間が増えてしまった気がする」
こんな悩みや困りごとをお持ちの方は、有益なヒントが詰まっているTest SPICEを参照すると良いと思います。
他にも「テスト仕様書だけじゃなくて、テスト環境も上手く再利用したい」方や「そもそも、どんなテストが自分たちの製品に有効なのか改善したい」方など、少しでもテストに関する悩みがある方は参考していただけると良いと思います。
さいごに
いかがだったでしょうか。
Test SPICEは、Automotive SPICEと同様に、組織的な品質文化の醸成や教育・研修の教材として活用できますが、テストプロセスに特化した可視化や標準化だけでなく、テスト資産の再利用やテスト自動化など具体的な改善にも活用することができます。
興味のある方は一度Test SPICEのPAMを参照してみてください。
内山 哲三





