書評「基本から学ぶテストプロセス管理―コンピュータシステムのテストを成功させるために」

書評「基本から学ぶテストプロセス管理―コンピュータシステムのテストを成功させるために」

Rex Black(著), テスト技術者交流会(監訳), トップスタジオ(訳), 日経BP社

カテゴリ:テスト

概要

ソフトウェアテストの計画から準備、運営管理までのノウハウを一冊にまとめたテスト管理者のための実務書。
テスト計画の立て方、テスト全体のアーキテクチャの考え方、管理者をサポートするツールである「バグ追跡データベース」「テスト追跡スプレッドシート」「変更管理シート」の作り方と使い方、テスト環境の作り方、テスト人員の確保と管理、他のステークホルダーとの政治的なコミュニケーション、アウトソーシングの利用法などを、豊富な実例と図表で丁寧に解説する。

本書の使い方

ソフトウェア開発とテストに関する基礎知識と実務経験を前提としている。
第1章から通読することを勧めるが、興味関心によって下記の章から読むことができる。

第1~3章 テストを計画し、準備し、運営するとはどういうことか、その考え方を学ぶ
第4~6章 テストマネージャが結果を把握し、リスクを最小限にするためのツールの作り方・使い方を学ぶ
第7~11章 テストマネージャの重要な実務である、テスト環境の準備、テストチームのマネジメント、他のステークホルダーとの折衝、アウトソーシングの利用法、などを学ぶ

何を学べるか

第1章 実施するテストの選択―テストプロジェクトの基礎計画
テスト計画を立てるにあたっての手順を解説する。
①テスト範囲を把握し「実施するテストの候補」を挙げる②獲得すべき品質やリスクを把握して「実施すべきテスト」を絞り込む③スケジュール、リソース、予算の制約から「実施可能なテスト」を割り出す、という手順を、詳細な事例を基に説明する。

第2章 テスト計画書―コースの構想と提示
著者が実際に使用するテスト計画書の各項目を、詳細な事例や、記述サンプルを交えて紹介する。合わせてIEEE829を含むいくつかのテスト計画書テンプレートを紹介する。

第3章 テストシステムアーキテクチャ、テストケース、テストカバレッジ
「テストシステムアーキテクチャ」について考察する。テストプロセス、テストウェア、テスト環境によって構築される「テストシステム」には設計と実装が重要である。 詳細な事例を挙げつつ、テストケースの作り方、カバレッジと回帰テストを有効に使った「見逃しバグ」の防ぎ方、テストケースの改善法などに触れる。

第4章 バグ追跡データベース―「虫」の生態を究める
障害レポートを作成し、それを管理、分析、追跡できる「バグ追跡データベース」の構築方法・運用方法を、詳細な事例を挙げて解説する。障害レポートの書き方とその改善方法、バグデータからのメトリクスの抽出方法についても解説する。

第5章 テストケースの管理―テスト追跡スプレッドシート
テスト実行の状況を管理する「テスト追跡スプレッドシート」の構築方法・運用方法を詳細な事例を挙げて説明する。スプレッドシートからテストの状況を知る分析の方法も、豊富なケーススタディから学ぶことができる。

第6章 危機対応のヒントとツール―動的マネジメント
十分に計画と準備を行っても、テストプロジェクトに混乱はつきものである。危機における、意識の持ち方、そしてテストにおける混乱を切り抜けるための2つのツールを紹介する。複雑に絡み合ったハードウェア、ソフトウェア、テスト環境、人員などを整理する「ロジスティックデータベース」と、計画の変更に対応するための「変更管理データベース」の構築方法・運用方法を詳細な事例を挙げて解説する。

第7章 テストラボの設備と管理
テストが行われる場所である「テストラボ」を立ち上げる際の計画、運営の方法について解説する。場所の選定、レイアウト、資材の準備、設備管理、安全性、生産性の考慮など、詳細な事例を挙げて解説する。またケーススタディでは、テストの目的別に最適なレイアウトを学ぶことができる。

第8章 テストチームの人員配置と管理
優秀なテスト担当者を雇用し、意欲を増進し、長く働いてもらうにはどうすればよいか。テストチームのジン人配置と管理のコツを解説する。良いテスト技術者の条件、テストチームの人員計画の立て方、採用に当たっての募集・面接の仕方、テストチームのモチベーションを維持・向上するにあたっての要点、臨時スタッフや専門家の利用法と注意点などを、詳細な事例を挙げて解説する。

第9章 政治的な勝利―テストマネージャの組織的課題
テストマネージャが業務として行わなければならない「政治的な」仕事を解説する。 組織内におけるテストマネージャの責任範囲とテストストチームの位置付け、避けるべき「兼務」について、他部署のマネージャとの連携、必要な文書が無い場合の組織の成熟度に応じた対応、部下への解雇通知、バグの発見やスケジュールの遅れといった情報を正しくかつトラブルなく伝える方法、まだ成熟していない新技術をテストする際の考え方、などを解説する。

第10章 外部の協力者―テストプロジェクトの分散
テストを複数の組織に分散して行う「分散型テスト」について解説する。 ベンダ、サードパーティのテスト組織、営業部門、ユーザおよびユーザ代行者といった外部のパートナーの選び方、分散型テストの計画および管理の方法や配慮するべき点などを説明する。

第11章 テストのコンテキスト―予算、ライフサイクル、プロセスの成熟度
テストの評価は、開発プロジェクト全体のコンテキストから下されることが多いため、テストマネージャは、自分が行っている作業のコンテキストを理解することが重要である。本章では、テストを予算(コスト)、ライフサイクルにおける位置づけ、プロセスといった、よりマクロな視点から見ていく。