対象読者
- システムの品質が悪く、テストの質を改善したい方
- 人によってテストの質にバラツキがあり、テスト品質を安定させたい方
- プロセス改善の中のテスト部分をどのように改善したらいいか知りたい方
- テストプロセス改善とはなにかを知りたい方
- 自社でテストプロセスを改善したい方
はじめに
バグを削減するのに、なぜテストプロセス改善が有効なのでしょうか。筆者は、主に2つの理由があると考えています。1つ目は、プロセス(テストプロセスを含んだプロセス全般)がソフトウェア開発・保守・運用を支える三要素の1つだからです。
情報処理試験などを実施しているIPA(独立行政法人 情報処理推進機)が発行している「プロセス改善ナビゲーションガイド―なぜなに編 (SEC BOOKS) 」では、プロセスのことをソフトウェア開発・保守・運用を支える三要素の1つとして紹介しています(図1)。このソフトウェア開発の重要要素であるプロセスを直に改善することで、バグの削減を狙います。ちなみに、これらの三要素を、PPT(Process, People, Technology)フレームワークと呼ぶこともあります。
プロセス改善の効果ですが、同じく『プロセス改善ナビゲーションガイド―なぜなに編(SEC BOOKS)』が参考になります。データは、テストプロセスだけでなく、開発プロセスを含んだ全体のプロセス改善ですが、品質に48%の効果があったというカーネギーメロン大学ソフトウェアエンジニアリング研究レポートが紹介されています(図2)。弊社の事例では、テストプロセスを改善し、市場バグを93件/月から翌年10件/月に89.2%改善されたので、効果があると言えそうです。
2つ目は、バグを顕在化させるのはテストだからです。人はミスをしてしまう生き物です。なので、どうしてもシステムにバグを混入させてしまいます。ただし、バグを混入させてしまったとしても、混入したバグをテストによって検出することができれば、バグを除去することができます。よって、バグの削減にテストは最も重要な役割を担っていると言えます。
そのテストのプロセスを改善し、効果的なテストを実施することができるようになれば、バグの削減につながります。なお、本連載ではレビューも、テストとして扱います。国際的なソフトウェアテストの資格であるISTQB(日本ではJSTQ)では、レビューを静的テストの1つとして定義していますが、本連載ではその定義を採用します。
テストプロセス改善とは?
筆者は職業柄、出版されているプロセス改善関連の本や記事を多く読んできました。しかし、個別手法の説明が多く、テストプロセス改善全体を俯瞰した本や記事は、なかなか見つけられませんでした。それが数年前、「International Software Qualification Bosrd Expert Level Syllabus Improving the Testing Process(Implementing Improvement and Change)2011(以下、ISTQB Syllabus)」が、見事にテストプロセス改善の手法を整理していることに気づき、感動したのを覚えています。
そこで、本連載ではISTQB Syllabusの分類にもとづいて解説していきます。残念ながら、ISTQB Syllabusは英語のみで、日本語訳は今のところありません。そのため筆者が適宜、日本語に訳して話を進めるので、厳密性を求める場合は原文に当たってください。なお、各方法論の説明では「テスト技術者資格制度Advanced Levelシラバス日本語版テストマネージャVersion 2012.J03」も適宜、参照します。
テストプロセス改善の分類
ISTQB Syllabusによると、テストプロセス改善は以下の4つに分類されます。
- モデルベースドアプローチ(Model-based Approaches)
- 分析的アプローチ(Analytical Approaches)
- ハイブリッドアプローチ(Hybrid Approaches)
- その他のアプローチ(Other Approaches)
モデルベースドアプローチは、大学や研究機関、企業などが作成したモデルに沿ってテストプロセスを改善していくアプローチになります。モデルは、ベストプラクティスから作成されたもので、どのような手順でテストプロセスを改善していけば良いかを示しています。中には、具体的な作業やフォーマットまで落とし込んだモデルもあります。モデルベースドアプローチは、トップダウンでプロセス改善することが多いことから、トップダウンアプローチと呼ばれることもあります。
分析的アプローチは、メトリクスの監視や問題発生時の分析などから改善点を見つけ、テストプロセスを改善していくアプローチです。分析的アプローチは、現場主導でボトムアップ的にプロセス改善することが多いことから、ボトムアップアプローチと呼ばれることもあります。
ハイブリッドアプローチは、モデルベースドアプローチと分析的アプローチを組み合わせてテストプロセス改善をしていくアプローチ方法です。その他のアプローチは、開発者のスキルによる改善、ツールを使用した改善、別のテストアプローチによる改善、規格や規定の適合による改善、特定リソース優先による改善の5つがISTQB Syllabusで紹介されています。
ISTQB Syllabusでは、4つの分類の中からモデルベースドアプローチと分析的アプローチの2つのアプローチをメインで扱っているので、本連載でもこの2つを考察してきます。