ソフトウェア開発において、標準的な進め方や遵守するべき基準などを定めた規格を参照して利用することがよくあります。
たとえば、機能安全について定められた「IEC 61508」や、自動車の機能安全規格である「ISO/IEC 26262」、ソフトウェアライフサイクルプロセスを定めた「ISO/IEC 12207」などが有名です。
規格の目的や役割はさまざまですが、ソフトウェアテストの国際的な規格として、「ISO/IEC/IEEE 29119」というものがあります。
本記事では、ISO/IEC/IEEE 29119がどういうものか概要を解説すると共に、ISO/IEC/IEEE 29119を実際のテストプロジェクトに適用する際の注意点についても解説します。
- もくじ
なお、ISO/IEC/IEEE 29119の公式な日本語訳は、JIS規格を含めて2020年4月現在では存在していませんので、規格の正確な内容を確認するには、英語で記載された原書を参照する必要があります。英文であることに加えて、規格は正確に汎用的に適用するように記載されているため、読みにくい箇所があることは否めません。
しかしこのほど、ISO/IEC/IEEE 29119の解説書籍「ISO/IEC/IEEE 29119 ソフトウェアテスト規格の教科書」が出版されました。この書籍は、ISO/IEC/IEEE 29119を策定したISO Software Testing Working Groupの議長であるStuart Reid博士が執筆した解説書籍の日本語翻訳版です。この解説書では、ISO/IEC/IEEE 29119の規格の概要や、規格には細かく記載されていない予備知識などが分かりやすく解説されています。また、架空のプロジェクト「劇場予約システム」にISO/IEC/IEEE 29119を適用した例を、多くのページを割いて解説しています。
ISO/IEC/IEEE 29119が策定された背景
ISO/IEC/IEEE 29119 はソフトウェアテストの統合的な国際規格です。
ISO、IEC、IEEEという3つの標準化団体が合同で策定しているため、このような名称となっています。
ソフトウェアテストはソフトウェア開発に必要不可欠ですが、これまでテストに関して統一的な規格というものは存在しませんでした。
たとえば、「ISO/IEC 12207」といったソフトウェアライフサイクルモデルでは、テストは開発の中の一部として扱われているため、テストとして詳細に解説されているのではありませんでした。
他にも、従来の規格では、統一性というところでも改善すべき点がありました。たとえば、「IEEE 829」という規格では、テストドキュメントに関する規格を定めていますが、「BS 7925」ではテストに関する用語・プロセス・技法などを定義していて、それらの内容は、規格間で重複していたり定義やプロセスが一致していなかったりしていました。
こうした背景がある中、ソフトウェアテストの統合的な規格として、「ISO/IEC/IEEE 29119」 が策定されました。
ISO/IEC/IEEE 29119の構成
ISO/IEC/IEEE 29119は2013年から2016年にかけて段階的にリリースされ、2020年3月現在では、全部で5つのPartで構成されています。
ISO/IEC/IEEE 29119 は、ソフトウェアテストを行うすべての組織に対して、どのような形のソフトウェアテストを実施する場合にも使用できるように作られています。
ソフトウェアテスト全般を押さえているだけあって、全体のボリュームはかなりの量になります。以下に、それぞれのPartの概要を紹介します。
Part 1: テストの概念と定義(Concepts and definitions)
ISO/IEC/IEEE 29119 Part 1では、規格全体で使われる用語の解説と、ソフトウェアテストの全般的な解説をしています。たとえば、ソフトウェアテストの基本的な考え方や、テストプロセスの概念、リスクベースドテストの考え方、テスト実施時のプラクティス、テスト自動化について解説しています。また、付属書ではアジャイル開発やウォーターフォール開発など、ソフトウェア開発モデルに応じたテスト活動について解説されていて、このPart単体だけでも参考になるものが多々あります。
また、Part2からPart5までで使用されている概念と定義を説明している部分であるため、このPart 1の内容を一通り理解しておくことは、それ以降のPartを読み進める上で必要です。
Part 2: テストプロセス(Test processes)
ISO/IEC/IEEE 29119 Part 2では、テスト活動を進めていく上でどのようなプロセスが必要かを定義しています。29119規格で定義しているプロセスの大きな特徴としては、テストプロセスを、「組織のテストプロセス」「テストマネジメントプロセス」「動的テストプロセス」という3階層に分けていることが上げられます。
「組織のテストプロセス」では、ソフトウェア開発を行う組織としてのテスト方針やテスト戦略を制定します。これに沿って、各プロジェクトでは、そのプロジェクト固有のテスト計画を策定するというスタイルを取っています。
「テストマネジメントプロセス」は、テスト計画やテスト終結などの活動を含めた管理活動について定義しています。
ここで言う「動的テストプロセス」は、ソフトウェアを動作させて確認する一般的なテストのことを指しています。一方で、レビューや静的解析などのことを「静的テスト」と呼び、29119規格では「動的テスト」と「静的テスト」を明確に分けて記述しています。
Part 3: テストドキュメント(Test documentation)
ISO/IEC/IEEE 29119 Part 3では、上述のテストプロセスを進める中でアウトプットされるテストドキュメントを定義しています。たとえば、テスト計画書やテスト設計仕様書、テストケース仕様書、インシデントレポート、テスト完了報告書などがあり、これらのテストドキュメントで記載すべき項目と内容が解説されています。29119規格の付属書には作成例が示されていて、理解の助けになるようにされています。(ただし、英文です)
Part 4: テスト技法(Test techniques)
ISO/IEC/IEEE 29119 Part 4では、テストを設計・作成する上で使用する各種のテスト技法が紹介されています。
紹介されているテスト技法は全部で17個あり、「仕様ベース」「構造ベース」「経験ベース」の3つのグループに分けて整理し、解説しています。
また、それぞれのテスト設計技法を適用した場合、カバレッジの測定をどのように考えればいいかの指針も示されています。カバレッジとは、テスト可能な範囲がどれくらいあり、その中で実際にテストした範囲がどれくらいだったかというものを割合で示す考え方です。その技法を使用したテストの優先度や重要度によってどこまでのカバレッジが必要か、そして、それが達成できているのかを定量的に分析することができます。
Part 5: キーワード駆動テスト(Keyword-Driven Testing)
ISO/IEC/IEEE 29119 Part 5では、テスト自動化の考え方であるキーワード駆動テストについて、その概要と実際に使用する際のアプローチ方法が記載されています。他の章と比べるとかなり具体的な内容となっており、テスト自動化を導入したり、改善したりする上で有用な情報が記載されています。
ISO/IEC/IEEE 29119 をどう使うか
ここまで紹介した規格の概要を見てどのように思われましたでしょうか。「うちではここまでしっかりした決まりは必要無い」とか、「ここまでかっきりと決まっていたら逆に手間が増えるのではないか」などと思われた方もいらっしゃるかもしれません。
まず前提として認識すべきことは、規格が定義していることをそのまま当てはめようとするのは失敗の元である、ということです。
失敗の形は、無闇にプロセスが重厚長大になることで「今までやったこともない作業が増えて高負荷状態に陥る」 「プロセスは立派なものが定義されたがそれを実践できず形骸化する」といったものが上げられます。
また、29119規格のPart 3では、テストプロセスでアウトプットするドキュメントのいくつかを体系立てて整理していますが、これらドキュメントを、規格で定義されたものと同一のものを作る必要はありません。29119規格は柔軟性に富んでおり、必須項目がいずれかの方法で文書化されていればそれでよいので、複数のドキュメントをまとめたり、分割したり、また、用語をその組織に合ったものに変更したりすることが許容されています。
規格に記載されていることを盲信してそのまま自社に当てはめようとしたり、一足飛びにすべてを網羅しようとしたりするのではなく、規格で定義されていることを、世界各国のテストのオーソリティが出し合って整理された優れた知見として捉え、自社・自プロジェクトにとってメリットのある部分を優先的に取り入れ、実利が得られるようにアプローチした方がよいでしょう。
一方で、例えば安全性に関わる規格では、ISO/IEC/IEEE 29119で定義しているテスト計画書を取り入れることを要求しています。このように、29119規格に準拠してプロジェクトを遂行する必要に迫られるプロジェクトが今後増えてくることも考えられます。
そのための準備には時間がかかるものなので、まずは、ISO/IEC/IEEE 29119規格がどんなものなのかを理解し、少しずつ自社のテストと開発のプロセスを整備していくことが好ましいと言えるでしょう。
ISO/IEC/IEEE 29119 ソフトウェアテスト規格の教科書 電子版 無料公開中
バルテス株式会社が監修・翻訳したソフトウェアテストの国際規格ISO/IEC29119の解説本「ソフトウェアテスト規格の教科書」を無料公開中です。
今回の記事で解説したISO/IEC/IEEE 29119について、より詳しい内容が書かれた書籍です。
ぜひ業務にご活用ください。