ISBN 9784817197665
ソフトウェアテスト技法ドリル【第2版】 : テスト設計の考え方と実際
概要
複数のテスト設計技法を点・線・面・立体の視点で体系的に習得する
想定読者
テスト設計の引き出しを増やしたい初・中級のテスト技術者、およびJSTQB Advanced Level取得を目指す受験者
こんな人には向いていない
- 単体テストの自動化ツール(JUnit / pytest等)の使い方を知りたい人 — 本書は手動テスト設計技法が中心であり、CI/CD連携やフレームワーク操作は扱わない
- テスト技法の基本をすでに実務で使いこなしているシニアエンジニア — 本書の価値は網羅的な技法カタログと演習問題にあり、上級者には既知内容の比重が大きい
- Webシステムや純粋なソフトウェア開発のみを想定する読者 — 組み込み系の例が多く、ドメイン固有の背景知識が前提になる箇所がある
読了後にできるようになること
- 同値分割・境界値分析をループ境界や負荷テストへ応用する技術
- デシジョンテーブル・原因結果グラフ・CFD法を使って『面』で仕様を網羅する設計ができる
- HAYST法・ペアワイズを用いた多因子組み合わせテストの設計と削減戦略
- 状態遷移テストをUMLステートマシン図から正確に導出する際の注意点
- クラシフィケーションツリー技法とGIHOZツールによるテスト条件の構造化
- 演習問題を通じてテスト技法の選択と適用判断を実践的に鍛える方法
本書のキー概念(章解説)
- 第 1 章 点に注意を向ける — ピンポイントテストと過去の経験活用 — 経験値のない初学者が最初に読む章として適している
- 第 2 章 線を意識する — 同値分割・境界値分析の基本から負荷テストへの応用まで — 実務で最頻出の技法が揃う
- 第 3 章 面で逃さない — ドメイン分析・デシジョンテーブル・原因結果グラフ・CFD法 — 仕様の二次元的網羅を担う章群
- 第 4 章 立体で捉える — HAYST法・ペアワイズ — 多因子の組み合わせ爆発を制御する技法。実務で差がつく応用領域
- 第 5 章 時間を網羅する — 状態遷移テスト・並列処理テスト — UMLステートマシン図との対応を意識して読むと理解が深まる
- 第 6 章 多次元の品質 — シナリオテスト・受け入れテスト・品質保証テスト — テスト設計の全体像を俯瞰する章として最後に読む
ハイライト
- テスト技法がここまでまとまっている書籍は他にないです。組み込み系の例が多いです。(テスト技法の網羅性という本書の最大の強みを端的に表している)
- 日本で開発されたテスト技法やテストツールを紹介している唯一の書籍です。(HAYST法・CFD法など国産技法を体系的にカバーする点が他書との明確な差別化要因)
外部からの言及
- テスト技法をここまで体系的にまとめた書籍は他にないという評価が複数記事で共通しており、技術書コレクション紹介記事でも筆頭に挙げられることが多い(qiita)
- 状態遷移テストの専門記事で、UMLステートマシン図への対応が標準的なテスト教科書では不十分な点に触れる際に本書が引用される傾向がある。技法の参照元として現場エンジニアに認知されている(qiita)
- 読者レビューでは『理論と実践の橋渡し』が評価されており、JSTQB Advanced Levelの受験対策としてだけでなく、中級者が自分のテスト設計を見直す際の体系書として活用されていることが記述されている(qiita)
編集メモ
Qiita言及4件 / 累計likes74 / JSTQB Advanced Level受験者の参考書として複数記事で言及。言及数は多くないが、テスト技術者コミュニティで繰り返し参照されている安定した評価がある
読む前に押さえておきたいこと
- ソフトウェア開発プロセスにおけるテストフェーズの役割(単体・結合・システムテストの違いを説明できる程度)
- 仕様書・要件定義書を読んでテスト観点を考えた実務経験が1〜2年あると、各技法の適用判断がより具体的に理解できる
- JSTQB Foundation Level相当の基礎知識(テストプロセス・テスト設計技法の概要)
学習のコツ
- 第2〜4章(線・面・立体)は独立して読める構成なので、実務で直面している課題に合わせて優先章から入ることができる — ペアワイズが必要なら第4章から先に読んでも理解が途切れない
- 各章末の演習問題は『答えを見ながら解くより、まず自分で設計してから比較する』使い方が最も効果的。解答例は出版社ウェブサイトからダウンロード可能
- JSTQB Advanced Level受験目的の場合、第3章(デシジョンテーブル・原因結果グラフ)と第5章(状態遷移テスト)を特に重点的に読み込むことが合格ラインへの近道になる
- 組み込み系の例が多い点は、Webシステム担当者には一見遠く感じられるが、技法の構造は汎用的 — 例示のシステムをWebの仕様に置き換えながら読む練習が移転学習になる
出版社による内容紹介
●テスト技法の正しい使い方が実践的に学べます! この方法だけで良いという絶対的なテスト技法はなく、開発フェーズや目的などに合わせて、適切な技法を適用していくことが重要です。また、ソフトウェアのバグ発生には、物理法則のような普遍性がないため、テスト技術者には、テスト設計にかかわる知識のみならず、経験や勘も求められます。 そこで、経験の少ない初・中級のテスト技術者向けに、テスト設計および実施のノウハウを披露し、解説したのが本書です。本書は、さまざまな角度からテスト設計を行えるように点・線・面・立体という視点で、実務に即したテスト技法の使い方とコツを解説します。さらに、学んだ技法について演習問題を解くことで、より実践的にプロのテクニックを学べます。日本で開発されたテスト技法やテストツールを紹介している唯一の書籍です。 ●JSTQBのテスト技術者資格Advanced Level取得に役立つ 本書の初版はJSTQBのAdvanced Level試験を受験する方々から“三種の神器”と賞され好評を博しています。本書はテスト技法を追加したり演習問題や事例を差し替えた増補改訂版です。 〈改訂のポイント〉 (1) クラシフィケーションツリー技法、およびテストツールGIHOZの解説を追加 (2) 事例や演習問題の差し替え、参照URLの修正と、参照元の情報更新への追随、細かな標準への準拠 (3) STQBの用語との整合性など、テクニカルタームの見直し (4) 演習問題の解答例は当社ウェブサイトからダウンロードに変更 第1章 点に注意を向ける 1.1 ピンポイントテスト 1.2 過去の経験を活かす 1.3 本章のまとめ 演習問題 第2章 線を意識する 2.1 同値分割法と境界値分析の基本 2.2 同値分割法と境界値分析の応用 2.3 ループ境界 2.4 負荷テスト 2.5 本章のまとめ 演習問題 第3章 面で逃さない 3.1 ドメイン分析テスト 3.2 クラシフィケーションテスト技法 3.3 デシジョンテーブル 3.4 原因結果グラフ 3.5 CFD法 3.6 本章のまとめ 演習問題 第4章 立体で捉える 4.1 HAYST法 4.2 ペアワイズ 4.3 本章のまとめ 演習問題 第5章 時間を網羅する 5.1 状態遷移テスト 5.2 並列処理テスト 5.3 本章のまとめ 演習問題 第6章 多次元の品質 6.1 人間に対するテストとソフトウェアテスト 6.2 ソフトウェアテストとは何か 6.3 シナリオテスト 6.4 受け入れテスト 6.5 品質保証のテスト 6.6 本章のまとめ 演習問題
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。