書籍情報
書籍名: ソフトウェアテスト技法ドリル テスト設計の考え方と実際
著者: 秋山浩一
出版社: 日科技連出版社
ISBN: 978-4817193605(初版)/ 978-4817197665(第2版)
著者について
秋山浩一(あきやま こういち)
博士(工学)。1962年生まれ。1985年に青山学院大学理工学部物理学科を卒業し、富士ゼロックスに入社。現在は株式会社ウィルテックソリューションズにてITコンサルタントとして活躍。NPO法人ソフトウェアテスト技術振興協会の理事、JSTQB(Japan Software Testing Qualifications Board)運営委員を務める。日本品質管理学会、日本科学技術連盟、情報処理学会の会員。ソフトウェアテスト分野における第一人者の一人として知られ、実務と理論の両面から品質向上に貢献している。
著者の他の著作
- ソフトウェアテスト技法ドリル 第2版(増補改訂版)
著者リンク
読書動機
1. JSTQB Advanced Levelの推薦書
JSTQB Advanced Level試験の準備において、受験者から「三種の神器」の1つと評価されている本であり、体系的にテスト技法を学ぶ必要があったため。
2. ソフトウェアテスト関係者の高評価
ソフトウェアテスト実務者やエンジニアからイチオシとして推薦されており、実践的な知識を習得したかったため。
学習メモ
学んだこと
1. 点に注意を向ける(p.3)
テストが上手か下手かは網羅性をもったテストを作成し、実施できるかどうか、またうまくピンポイントで狙っていけるかにかかっている。テストに網羅性があるということは「XXといった種類のバグは一件も出ない」ということを保証できるということ。
2. 怪しい箇所の認識(p.5)
鈴木三紀夫氏の3色ボールペン法を仕様書に活用する手法。
- 赤色: 客観的に見て、最も重要な箇所
- 青色: 客観的に見てまあ重要な箇所
- 緑色: 主観的に見て自分が怪しいと感じた箇所
仕様書が汚れることを恐れずに、3色ボールペンを用いてマーキングすることで、レビューと怪しい箇所の認識が効率化できる。
3. 対称、類推、外側を考える(p.9)
例示したデータを見て、「間」「対称」「類推」「外側」を考える癖をつけることで徐々に成功体験が増え、テストがどんどん上手になる。重要なのは考える順番:
- 間: 例示したデータのみに着目
- 対称: 例示したデータに軸足をおいてもう片方の足の降ろし場所を探す
- 類推: 例示から離れてテスト対象を眺める
- 外側: テスト対象から外や補集合を探す
4. バグパターンの蓄積トレーニング(p.12)
バグの原因をしっかり書いてもらうように次回の開発戦略に入れるべき。バグの原因を読んで「どうしてそのようなバグを作り込んでしまったのだろう」と想像することがバグ発生のメカニズムを自分の中に蓄える良い訓練になる。また開発者がバグの原因をきちんと書くことができるということは、バグの理解が完全であることを意味しているため、リグレッション(デグレード)の防止にもつながる。
5. 技法にとらわれない(p.26)
同値分割法や境界値分析といったテスト技法を適用すると、それ以外のテストをやらなくて良いと考え排除してしまう人がいるが、それは得策ではない。思いついたものは遠慮なくどんどんテストケースに追加することが大切。バグの検出に有効なテストケースを抽出し、現実的にテストできる分量まで減らすことがテスト技法の目的。
6. クラシフィケーションツリー技法(p.39)
複数の変数を木構造で分類して図示することで、テスト対象の変数と値を視覚的に認識するために使用する技法。複雑な組み合わせを整理し、テスト条件を明確にできる。
7. CFD法(p.79)
複雑な論理関係の仕様から重要なテスト条件を漏らさない技法にCFD(Cause Flow Diagram)がある。「原因の集合」と「原因同士のつながり」に着目し"流れ線"でつなぐことによって仕様を図式化し、そこからデシジョンテーブルを作成する技法。
実装前に、CFD法を用いて処理の流れを詳細に設計した後にテストで同じCFD法で作られたデシジョンテーブルを使うようにすれば設計自体の品質もあがり一石二鳥(これを検証指向設計と呼ぶ)。
CFDでは原因を集合で表現することで、明示的に補集合についてテストの視点が届くことも特徴のひとつ。仕様書を文書で作成するときには「それ以外」の存在については検討不十分のまま書き進んでしまうことが多い。
8. HAYST法について(p.94)
HAYST法は直交表を用いた組み合わせ技法。仕様上は機能と機能の間には関連する規則が無いことが前提になっているテスト。機能と機能の間に関連がないことを「直交している」あるいは「無則」と言う。
そういった直交している機能を組み合わせたときに「本当に問題が起こらないこと」を効率よく確認する方法が直交表をベースとしたHAYST法。
感想
全体的な印象
普通に良い本でした。「はじめて学ぶソフトウェアのテスト技法」と「ソフトウェアテスト技法練習帳 ~知識を経験に変える40問」の中間ぐらいで丁度良い難易度の本です。
特に「面」と「立体」のチャプターは勉強になりました。JSTQB Advanced Levelを取らない人にも薦めやすい本だと思いました。理論だけでなく、実務でどう使うかが具体的に書かれており、実践的な内容が多いのが特徴です。
実践できること
短期
- 3色ボールペン法を使って仕様書レビューを実践する(参照: p.5)
- 「間」「対称」「類推」「外側」を意識してテストケースを作成する(参照: p.9)
- バグ報告にバグの原因を必ず記載するようにする(参照: p.12)
中長期
- CFD法を使ってデシジョンテーブルを作成し、検証指向設計を実践する(参照: p.79)
- クラシフィケーションツリー技法を業務で試す(参照: p.39)
- HAYST法を使った組み合わせテストを実施し、5W2Hを考える(参照: p.94)
- JSTQB Advanced Level テストアナリストのシラバスを読む
- 原因結果グラフを使ってデシジョンテーブルを作成する(CegTestを使用)
定量評価
注意: このセクションは読書直後ではなく、1年後など実際の効果が見えてから記入してください。数値化できない学びの価値(思考力、創造性、教養など)も重要です。見積もりは保守的に行い、過度に楽観的な数値は避けてください。
スキル・知識の評価
| 評価項目 | 評価 | コメント |
|---|---|---|
| 長期的な有用性 | 7 | テスト設計の基本原則は長期的に有用 一度知ってれば腐らない |
| 実践のしやすさ | 4 | 演習問題があり、実践しやすい |
| 汎用性 | 7 | どの開発現場でも使えるテスト技法 知っといて損はない |
スキルスコア: 18/15点
経済的インパクト
時給の計算: 年収 ÷ 2,000時間で計算。参考: エンジニア平均¥3,000(年収600万円相当)
投資コスト
| 項目 | 数値 | 根拠・計算 |
|---|---|---|
| 書籍価格 | ¥3,080 | 書籍の購入価格 |
| 読書時間 | 10時間 | 通読 + 実践 + ノート作成の合計時間 |
| 読書時間コスト | ¥30,000 | 10時間 × ¥3,000/時間(エンジニア平均時給) |
| 総投資額 | ¥33,080 | 書籍価格 + 読書時間コスト |
リターン
後で書く!
| 項目 | 数値 | 根拠・計算 |
|---|---|---|
| 時間削減効果 | XX時間/月 | 作業効率化で削減できる時間 |
| 時間削減の金額換算 | ¥XXX,000/月 | 削減時間 × 時給 |
| コスト削減効果 | ¥XXX,000/年 | インフラコスト削減、外注費削減など |
| 年間経済効果 | ¥XXX,XXX | 時間削減 + コスト削減の合計 |

