書評「ステップアップのためのソフトウエアテスト実践ガイド」

書評「ステップアップのためのソフトウエアテスト実践ガイド」

大西 建児 (著), 日経BP社

カテゴリ:テスト

概要

ソフトウエアテストに関する基礎知識と、テスト現場の雰囲気を読みやすくまとめた入門書。
ソフトウエアテストをめぐる現状、テスト現場で何が起こっているか、優れたテスト担当者が身に着けるべきスキルとは何か、について著者の経験談・ケーススタディを交えて、初心者にもわかりやすい語り口で解説している。改訂により、ISTQBやSQuBOKとの整合性にも配慮されている。

本書の使い方

第1章から順に読むことで、ソフトソフトウエアテストの知識を学ぶことができるようになっている。入門者は通読を勧める。そのうえで、テスト実務を経験した後、再読するとなお良いだろう。

章ごとにテーマがまとめられているので興味関心に従って、読むことができる。
また、付録のテストドキュメントのサンプルは、初級~中級の技術者にとっても参考になるだろう。

何を学べるか

第1章 テスト不足とシステム・トラブル
「本来実施べきテスト」を実施しなかったらどうなるのか。テスト不足が引き起こしたトラブルの事例から、「テスト」とは何かを考察する。

1.1 ソフトウエア・トラブルの数
マスコミなどのメディアに現れた不具合の件数は「氷山の一角」に過ぎないことを「ハインリッヒの法則」を引いて説明する。

1.2 責任を問われるソフトウエア開発会社
ソフトウエアトラブルによって発生した損害は、通常、それを製造した開発会社に求められる。 金銭的な責任を取らなくてはならなくなった事例を紹介する。

1.3 ソフトウエアテストに対するユーザーの責任
ソフトウエアトラブルを防ぐためには、ソフトウエアを実際に使用するユーザーにも、ソフトウエアテストに深くかかわるべきであることを説く。

1.4 バグの源と生息場所
主要なバグの源は人間の頭の中にあり、バグは「人が組み込むもの」である、という認識に立ち、テストを行う必要があることを解説する。

第2章 テスト現場の実態
テストの現場でどのような問題が起きているか。その結果どういう事態になったか。テストをISTQBが定義するテストプロセスに区分して、各区分を様々なトピックから多面的に説明していく。

2.1 テスト計画作業とコントロール
「テスト計画とコントロール」のプロセスをいくつかのトピックから解説する。 開発のゴールを明確にして、それを達成するための計画を立てること、テスト対象が満たすべき品質特性を計画段階で考慮すること、実現可能な計画の立て方のポイント、テスト工数の見積もり方、そして「人海戦術」が有効な場合とそうでないとき、などを説明する。

2.2 テストの分析と設計
「テストの分析と設計」のプロセスをいくつかのトピックから解説する。 テスト設計の必要性、テスト設計を行うために確認するべきこと、テストのために仕様書の策定にも積極的にかかわる必要性、テストファーストの考え方と有効性、などを説明する。

2.3 テストの実装と実行
「テストの実装と実行」のプロセスを、現場のエンジニアのエピソードを交えつつ、いくつかのトピックから解説する。テスト実行の際にはどのような作業があるのか。完璧ではなく現実的にテストの目的に沿ったテスト戦略の考え方。「再現しにくいバグ」への対処法。新人がテストを行う難しさ、などを説明する。

2.4 終了基準の評価とレポート/終了作業
「終了基準の評価とレポート」および「終了作業」のプロセスを、いくつかのトピックとエピソードを交ええて解説する。テストの「網羅率(カバレッジ)」の考え方、上流工程が遅れてテストにしわ寄せがくる理由、不具合の性質と検出数について、などを説明する。

2.5 テストインフラ
テストを行う上で必要なテスト環境=テストインフラについて解説する。テスト環境を準備する際の注意点、テストツールを使用する際の注意点、テストが始まってから判明するテスト環境の不備、などを説明する。 第3章 テストマスターになろう テストのプロフェッショナル、「テストマスター」が身に着けておくべきスキルとは何か。現実のテストで起こる様々な問題にどう対処すればいいのか。筆者の経験談や事例を交つつ解説する。

3.1 テストマスターの素質
筆者の経験から導かれた、「テストエンジニアの素質」を紹介する。合わせて、海外の文献におけるテスト担当者の資質、能力、条件などに関しても紹介する。

3.2 テスト計画の心得
開発プロセスの違いによるテスト計画の考え方、テストの範囲を決定するにあたってのポイント、テスト工数の見積もりの考え方などを解説する。

3.3 テスト設計の要点
テスト設計を行うにあたって、その要点を、事例に沿いながら、インプット、プロセス、アウトプットに分けて解説する。テスト設計の重要性と考え方、テスト設計前に分析・確認しておくべきポイント、設計の際に用いるテスト手法、テスト設計で作成するドキュメント、非機能要件のテストの考え方、テスト設計で失敗する、具体的なパターンなどを紹介する。

3.4 テストの実行の乗り切り方
テストの実行において遭遇する問題の乗り切り方を紹介する。単調になりがちなテスト実行を乗り切る工夫、作業を効率的にするテスト環境の作り方、テスト容易性を考慮する大切さ、テスト実行が失敗する要因の考察、不具合情報データの集め方の注意点と、過去の不具合情報の活用法などを紹介する。

3.5 正しいテスト管理のススメ
テストを成功に導くには、テストの目的に合致したテスト管理が必要となる。テスト管理にあたって何を考えなくてはならないかを解説する。テスト担当者の確保、テストのプロセス改善、テストの構成管理の考え方とその要点、不具合報告書の考え方などを紹介する。

付録
A テストケースの記述サンプル
B テスト計画書のサンプル
C テスト手順書のサンプル
D ドキュメント作成時のチェックポイント
E 参考文献一覧