テストプロセスの改善

テストのプロセスを改善することで、リソースの有効活用とソフトウェアの品質向上が見込めます。
一般的なプロセス改善にはデミング改善サイクルがあります。
これは、テストのプロセスを改善するのにも利用できます。

デミング改善サイクル

デミング改善サイクルは、プロセスを改善モデルで、Plan・Do・Check・Actionの4つのサイクルがあります。
PDCAサイクルともいい、この4つのサイクルを継続的に実施していきます。

デミング改善サイクル

デミング改善サイクルの詳細を以下に記載します。

1

Plan(計画)

プロセスの問題を特定して、その原因を分析します。分析の結果からプロセスを改善するためのに必要な目標を設定して、達成するための計画を立てます。
プロセスを改善するのに必要なデータ収集や現状のプロセスを把握することが重要です。

2

Do(実行)

計画で立てた改善策を実際に実行し、プロセスの問題が解決するか確認していきます。 この段階では、実行した改善策の効果を観察して記録していきます。

3

Check(評価)

実行した改善策の結果を評価して、目標と比較して効果を確認します。
この段階では、データの分析や結果のレビューが行われ、改善策が予定通りに機能しているかチェックします。

4

Action(改善)

評価から実際のプロセスに取り込むか検討します。
計画で立てた目標に達成して、改善していると評価されれば今後のプロセスに組み込みます。

プロセス改善のタイプ

プロセス改善のタイプには、プロセス参照モデルとコンテンツ参照モデルがあります。

プロセス改善の種別

プロセス改善の種別には、組織のレベルを成熟度で表して段階的に実施していく段階モデルと組織が改善したい領域を優先して改善していく連続モデルがあります。

テストプロセス改善

テストプロセスの改善は、モデルやフレームワークの使用や分析的アプローチや振り返りミーティングで改善していきます。 テストプロセスの改善のフレームワークとして、IDEALモデルがあります。
IDEALモデルは、5つのフェーズでフェーズの頭文字をとってIDEALになっています。
IDEALは以下の流れです。

1

改善プロセスの開始(Initiating)

プロセス改善の必要性を確認して、目標や合格基準などを定義しておきます。
改善モデルを選択します。

2

現在の状況の診断(Diagnosing)

現在の状況を診断して評価を行います。
改善プロセスの開始で合意したレポートを作成して、改善の対象となるプロセスの問題点や弱点を特定し、改善が必要な領域を明確にします。

3

テストプロセス改善計画の確立(Establishing)

改善策の計画を立てる段階です。優先度順にして費用対効果やリスク、戦略との整合性をチェックします。
具体的な目標と改善アクションを設定し、スケジュールとリソースの割り当てなどプロセス改善の計画を行います。

4

改善を推進する活動(Acting)

テストプロセス改善計画の確立した目標と改善アクションを実行します。
進捗もモニタリングし、必要に応じて対応策を行います。

5

改善プログラムからの学習(Learning)

改善活動の成果をレビューします。
レビューでは、改善プロセスの開始で定義した目標の達成や合格基準に合致しているか確認します。

改善モデル

IDEALの改善プロセスの開始で選択する改善モデルについて記載します。
改善モデルを以下に記載します。

CMMI

CMMI(Capability Maturity Model Integration)は、プロセス改善のための段階モデルです。
プロセスの品質を向上させるためのフレームワークです。
CMMIには、5つの成熟度レベルがあります。

5つの成熟度レベル

CMMIモデルには、特定のプロセス領域(プロジェクトマネジメント、プロセスマネジメント、エンジニアリング、サポート)ごとに設定された目標と実践があります。

CMMIはソフトウェアテストに特化したものではなく、ソフトウェア開発・ハードウェア開発・製造プロセス・サービス業務にも利用できます。

TMMi

TMMi(Test Maturity Model integration)は、CMMIをソフトウェアテストのプロセス改善に特化した段階モデルです。
組織がどのような位置か判定してテストプロセスを改善します。
CMMIを補完していて、CMMIと同様に5つの成熟度があって組織が次のレベルに進むには目標の85%を満たす必要があります。
TMMiの成熟度レベルは以下です。

成熟度レベルごとにプロセスエリアを定義して、ゴール(共通と固有)を決定します。
成熟度レベル1にはプロセスエリア(PA)がなく、レベルごとの全てのプロセスを達成するとそのレベルの状態になります。

TMMiの成熟度レベル

SPICE

SPICEは、国際規格のISO/IEC 33063:2015でソフトウェアプロセスのアセスメントのためのフレームワークです。 連続モデルで、3つのプロセスグループに8つのプロセスが定義されています。
プロセス能力水準としてレベル0~5までが定義されています。

体系的テストと評価プロセス(STEP)

STEP (Systematic Test and Evaluation Process)は、要件ベースのテスト戦略を採用したた連続的なコンテンツ参照モデルです。
ソフトウェアライフサイクル全体で利用でき、ソフトウェアライフサイクルの開始時に初めて特定の順序で改善を進める必要がない柔軟なアプローチを提供します。
投資効果がどの部分で得ているか判定します。

ソフトウェア開発プロジェクトの品質を向上させて、リリース前の不具合を最小限に抑えることを目的としています。
テストしてからコーディング(テスト駆動開発)することを重視し、テスト担当者と開発者が共同で作業する前提とします。
STEPは以下の流れで実施します。

ステップ1 戦略の立案
P1 マスターテスト計画の確立
P2 詳細なテスト計画の策定
ステップ2 テストウェアの取得
A1 テスト目的のインベントリ(要件ベース、設計ベース、実装ベース)
A2 テストの設計(アーキテクチャと環境、要件ベース、設計ベース、実装ベース)
A3 計画と設計の実装
ステップ3 行動の測定
M1 テストの実行
M2 テストセットの適合性確認
M3 ソフトウェアとテストプロセスの評価

STEPで用いられるメトリクスは以下になります。

クリティカルテストプロセス(CTP)

CTPは、テストプロセスが最重要(クリティカル)とした考えで、12のクリティカルテストプロセスを識別する連続的なコンテンツ参照モデルです。
投資効果がどの部分で得ているか判定します。
業界平均を評価基準のベンチマークとしています。
すべてのソフトウェア開発ライフサイクルモデルに適用可能です。
以下のように4つのステップで実行されます。

CTPのステップ

4つのステップは、4つのステップのテストプロセスと各ステップごとに11のクリティカルテストプロセスが整理されています。
テストプロセス + 11のクリティカルテストプロセスで12のプロセスになります。
各ステップごとのクリティカルテストプロセスを以下に記載します。

TPI Next

TPI NEXTとは、連続的モデルで4つの成熟度レベルと3つのグループで16のキーエリアを定義します。
現状を確認し、診断してその結果から改善していきます。
組織がどのような位置か判定してテストプロセスを改善します。
3つのグループには利害関係者との関係(SR)とテスト管理(TM)とテスト業務の専門性(TP)があります。

4つの成熟度は、初期・制御された・効率的な・最適化されたで、16のキーエリアを利用した診断結果は以下のようになります。

グループ キーエリア NML 初期 制御された 効率的な 最適化された
SR 利害関係者のコミットメント A B C D E
関与の度合い A B C D E
テスト戦略 A B C D E
テスト組織 A B C D E
コミュニケーション A B C D E
報告 A B C D E
TM テストプロセス管理 A B C D E
見積もりと計画 A B C D E
メトリクス A B C D E
欠陥管理 A B C D E
テストウェア管理 A B C D E
TP 手法の実践 A B C D E
テスト担当者のプロ意識 A B C D E
テストケース設計 A B C D E
テストツール A B C D E
テスト環境 A B C D E

本表をテスト成熟度マトリクスともいい、プロセス全体の成熟度を評価していきます。