モデルベースドアプローチ(Model-based Approaches)(2)
コンテンツベースドモデル(Content-based Models)
ISTQB Syllabusでは、主要なコンテンツベースドモデルとしてSTEPとCTPの2つを紹介しています。本連載では、それに加えてバルテスが開発したQUINTEEと国際標準化機構から発行されているISO/IEC/IEEE 29119の2つを紹介します。それぞれについて、詳しく見ていきましょう。
STEP(Systematic Test and Evaluation Process)
STEP(Systematic Test and Evaluation Process)は、1985年にSoftware Quality Engineering社が提供している体系的ソフトウェアテストのセミナーシリーズ用の教材として導入されました。
「テスト技術者資格制度Advanced Levelシラバス日本語版テストマネージャVersion 2012.J03」の「5.7 STEPによるテストプロセスの改善」の章では、以下のように説明しています。
STEP(体系的テストと評価プロセス)は、TMMiやTPI Nextと違って、CTPと同様に改善を特定の順序で行う必要がない。
STEPはどちらかと言えばコンテンツ参照モデルで、要件策定からシステムの廃止にわたりテストの活動が継続するライフサイクル活動であるという考え方にもとづいている。STEP方法論では、要件ベースのテスト戦略を適用することで「テストしてからコーディング」という方法を重視する。つまり、早期のテストケース作成により、設計とコーディングの前に要求仕様の妥当性を確認するようにする。
(中略)
状況によっては、STEPアセスメントモデルはTPI Next成熟度モデルと組み合わせて使用することもできる。
ここで重要になってくるのが、3つあります。1つ目は、「ライフサイクル活動であるという考え方にもとづいている」という部分です。つまり、テストの始まりから終わりまで、具体的なプロセスとフォーマットのフルパッケージを提供している点にあります。各組織にあうように適宜カスタマイズする必要はあるものの、出来合いのものとして、すぐに適用することができます。よって、改善を特定の順序で行う必要がありません。
2つ目は、「要件ベースのテスト戦略」の部分です。STEPでは、テストをライフサイクルの初期の段階で始めることで、欠陥の早期発見および予防をします(W字モデルと同様な考え方と言えるでしょう)。よって、STEPはテスト戦略の分析的戦略の代表的な手法になります。
3つ目は、「TPI Next成熟度モデルと組み合わせて使用することもできる」という点です。私はSTEPとTPI NEXTに限らず、テストプロセス改善モデルとコンテンツベースドモデルは組み合わせて使うと良いと考えています。組み合わせることで、テストプロセス改善モデルのもつ包括的で継続的な改善と、コンテンツベースドモデルの迅速に改善できるという両方の良いところを享受することができるからです。
STEPに関しては、日経BP社から2004年に発売している『体系的ソフトウェアテスト入門』に詳しい説明があるので、参考にすると良いと思います。少し古い本ですが、現在でも通用する良書です。テスト活動を具体的に網羅しており、私は今でもたまに読み返し、参照しています。
CTP(Critical Testing Processes)
CTP(Critical Testing Processes)は、2003年にRex Black Consulting Services社の社長兼主幹コンサルタントであるRex Blackによって作成されたコンテンツベースドモデルです。
テスト技術者資格制度Advanced Levelシラバス日本語版テストマネージャVersion 2012.J03の「5.6 CTPによるテストプロセスの改善」の章では、以下のように説明しています。
クリティカルテストプロセス(CTP)アセスメントモデルでは、モデルの中で特定しているテストプロセスが最重要(クリティカル)であることが基本的な前提となる。最重要なプロセスを正しく実行すれば、テストチームには成功がもたらされる。逆にこのような活動が貧弱であれば、能力の高いテスト担当者やテストマネージャであっても成功するのは困難になる。このモデルでは、12のクリティカルテストプロセスを識別している。
ここで重要な点は、12のクリティカルテストプロセスで定義し、そこを押さえれば成功するという部分です。12のプロセスは、計画、準備、実行、改善の4つに分類されます。
CTPに関しては、日経BP社より2005年に出版された『ソフトウェアテスト12の必勝プロセス-テストの計画・準備・実行・改善を究めるために』を参照すると良いでしょう。ただし、本書では12のプロセスが各章にちらばって説明されているため、少し分かりづらく感じます(序章で12プロセス全体の説明はありますが、文章によるプロセスの説明でXXXプロセスという形ではない)。よって、以下に筆者がまとめた12のプロセスを記述します。
【全体】
1. テストプロセス(他の11の重要プロセスを包含)
【計画】
2. 状況発見プロセス(テストの諸状況を把握する)
3. 品質リスク分析のプロセス(品質リスクを分析する)
4. 見積もりプロセス(テストの見積もりをする)
5. テスト計画プロセス(テスト計画を立てる)
【準備】
6. チーム編成のプロセス(テストチームを編成する)
7. テストシステムの設計/実装プロセス(テストシステムを設計し、実装する)
【実行】
8. テストリリースプロセス(テストリリース版を入手する)
9. テスト実行プロセス(テストを行って結果を追跡する)
【改善】
10. バグの報告プロセス(バグを報告する)
11. テスト結果の報告プロセス(テスト結果を報告する)
12. 変更管理プロセス(変更点を管理する)
本書は架空プロジェクトを通して各プロセスを説明しているので、具体的なイメージがつきやすいですし、思考の過程を疑似体験することができる良書です。弊社でも、テストオペレータ用の教材の1つとして、テスト実行プロセスとバグの報告プロセスの章を活用しています。
また、筆者は本書がリスクベースドテストを広めたと考えています。リスクベースドテストは、テスト戦略の分析的戦略の代表的な手法の1つになっています。なお、著者のRex Black氏はISTQBの主要メンバーの1人であり、主要なISTQBの解説本はRex Black氏が執筆しています(英語のみで日本語訳はありません)。
QUINTEE(クインティ)
年間2100プロジェクト以上のテストを実施するテスト専門企業であるバルテスが、ソフトウェアテストを主軸に、品質向上・生産性向上に関連する知見を体系化したものです。限られた「リソース」「期間」「コスト」の中で、いかに最適なテストを効率よく実施するかに主眼がおかれ、開発されました。
そのためテスト未経験者であっても、最小限の期間と努力で、効果的なテストが実施できるようになっています。また、ドキュメントの成果物は、IEEE829(ISO/IEC/IEEE 29119)に準拠しています(図3)。ISTQB Syllabusには、QUINTEEについての言及はありませんが、筆者はコンテンツベースドモデルに分類されると考えています。
QUINTEEを学ぶためには、バルテスが提供しているQbookアカデミーで学ぶことが可能です。
ISO/IEC/IEEE 29119
ISO/IEC/IEEE 29119は、ソフトウェアテストの国際的な規格として2013年から2016年にかけて段階的にリリースされました。ISTQB Syllabusは、2011年発行のため、その後にリリースされたISO/IEC/IEEE 29119についての言及はありませんが、筆者はコンテンツベースドモデルに分類されると考えています。
ISO/IEC/IEEE 29119は既存のIEEEやBSI規格を活用して作られ、ソフトウェアの統一的な規格として重要な位置づけになってくると思われます。ISO/IEC/IEEE 29119は、現在、Part1からPart5まであります(図4)。
手前みそになりますが、ISO/IEC/IEEE 29119の参考図書として、バルテスから2020年に出版している『ISO/IEC/IEEE 29119 ソフトウェアテスト規格の教科書』が良いと思います。
本書は、ISO/IEC/IEEE 29119の議長であるStuart Reid博士が書いた本になるので、規格の勘所を丁寧に解説されていますし、架空プロジェクトを用いて規格をどのように適用するか記載されています。また、今のところISO/IEC/IEEE 29119を日本語で解説している唯一の本となります。
ISO/IEC/IEEE 29119は、リスクベースドテストの適用を要求する立場を取っています。本書でも架空プロジェクトで、どのようにリスクベースドテストを適用しているか詳細に記載されています。私は、Rex Black氏(CTP)がリスクベースドテストを世に広め、Stuart Reid博士(本書)がリスクベースドテストを洗練させたと考えています。
