ひびのログ

日々ではないけどログを出力していくブログ

「ソフトウェアテストの教科書」内容まとめ&感想

【この1冊でよくわかる】 ソフトウェアテストの教科書 [増補改訂 第2版] 単行本(ソフトカバー) - Amazon アフィリエイトリンク

TL; DR

  • ソフトウェアテストの目的
    • ソフトウェアの欠陥を取り除く
    • ソフトウェアがユーザーの要求を満たせるようにする
    • ソフトウェアが顧客に価値を提供できるようにする
  • いろいろなテスト技法がある
  • 全体の計画やフェーズに応じた計画を立てて、目的に応じた観点・手法でテストすることが大事
  • 実施して終わりではなく、ドキュメンテーションやモニタリングも必要

要約

ソフトウェアテストとは

「〜〜とは」についての直接回答がなかったので初っ端から補足しておくと、「ソフトウェア・テストは、ソフトウェア製品またはアプリケーションが想定どおりに機能することを評価および検証するプロセス」らしい。 引用元

やる目的はこれ

ソフトウェアテストとは、欠陥を取り除いて、ユーザーの要求を満たす、品質のよいソフトウェアを作ること

ただし、「欠陥」とか「品質がよい」とは何なのかは突き詰めて考える必要がある。

「欠陥」とは

「誤作動の原因がソフトウェアにあることが特定されたもの」と本書では定義している。人によって定義が違うので注意すること(欠陥・不具合・バグ・障害など)。

「品質がよい」とは

  • ユーザーの要求を満たす
  • ユーザーに価値を提供する

ここでは ISO/IEC 25010(製品品質モデル)と狩野モデルを引いている

テストの視点

こういうところに気をつけてテストすると品質が上がるという話。

  • Verification & Validation(検証と妥当性確認)
  • Never, Must, Want

ソフトウェアテストの工程

全体観

よく言われるのが V 字モデルで、左の設計とかに対応するのが右のテストだよ、という話。

V字モデルの説明図

16 ページより

それぞれの工程でいろんなテスト手法があって、様々な分類ができる

  • 「ソフトウェアの内部構造に注目する / しない」による分類
    • ホワイト or ブラックボックステストの話
  • 「ソフトウェアを動作させる / させない」による分類」
  • 「ソフトウェア開発の工程」による分類

テストの流れはこんな感じ

テスト工程の中のテストフェーズ

31 ページより

で、本では個別の計画の流れと何をやったらいいかが書いてある。

テスト技法

若干章立てが微妙な気がするが、いろいろな技法が書いてある。 個別具体の話なので省略。

  • ホワイトボックステスト(Part 1 Chapter 3)
  • ブラックボックステストに使える、さまざまなテスト技法(Part 2 Chapter 4〜7)
    • 同値分割・境界値分析
    • デシジョンテーブル
    • 状態遷移表・図
    • 組み合わせ(二因子間網羅)
  • テスト技法適用チャート

チャートがかなり便利に見える。

テストドキュメント

テストの工程でたくさんのドキュメントが作られるが、それを総称して「テストドキュメント」と呼んでいる。

どの工程でどんなことをドキュメンテーションしておくべきかがまとまってるので、実際にやるときに参考にしたい。 ただ、エンジニアとしてはここまでガチガチにやる必要はないかな、という印象。

テストドキュメントを書く上でのポイントが書いてあって参考になる(Part 3 Chapter 10)。

  • テスト設計仕様書
    • 追跡性・関連性
    • 定義の理由
    • 技術の粒度
    • 規模
  • テストケース
    • 追跡性・関連性
    • テスト実施のしやすさ
    • 記述の粒度
    • フォーマット

テスト実施のモニタリング

やるだけじゃなくて、テストが順調に進行しているか確認する必要がある。 件数がどれだけでたかとか、どの工程まで終わったかとか。

アジャイルについて

ウォーターフォールと同じところ・違うところがまとまっていて分かりやすい。

テスト自動化

なぜ自動化に失敗するかとか、自動化するときのポイントとかが書いてあるので、ツールを導入する前に読んでおくと良さそう。

感想

入門向けで、「ソフトウェアテストを 1 から知りたい」という人のための本。

平易な言葉で書かれているし、実際の事例が載っていたり例が充実していたり、とても読みやすい。 その割に内容はかっちりしていて、特にテストドキュメントの章なんかは何を書くかがリスト化されているので、これに則って書けば完成度の高いドキュメントが書けるだろうと思えるほど。 具体的なテスト技法についても触れられていたので、実際に手を動かすときのイメージもしやすそう。 自分の知りたかったテストの全体像もわかって満足。

一方で、テストと言えば JSTQB が引かれることが自分の観測範囲で多いが、特に書いていなかった(はず)ところがちょっと残念。 他の人と会話するときに、これを知っているかどうかは重要なファクターであると思う。 (ちなみに ISO/IEC/IEEE 29119 についても触れられていた(236 ページ))

参考文献を見つけるのにめちゃめちゃ苦労したので、一覧で書いておいてほしかったという気持ち。