書評「知識ゼロから学ぶソフトウェアテスト」

書評「知識ゼロから学ぶソフトウェアテスト」

高橋 寿一(著),翔泳社

カテゴリ:テスト

概要

広範な内容にわたるソフトウェアテストの考え方の基本を、親しみやすい語り口で、実例に即してわかりやすく解説した本。日本人エンジニアが現場で活用できるように配慮されている。
ソフトウェアテストの初学者が理解しやすいように配慮されているが、内容としては深いレベルにも及んでおり、経験を積んだ開発者も十分に多くを得られる内容となっている。

本書の使い方

第1章、第2章、第3章
ソフトウェアテストの基本的な手法とその考え方を知ることができる。ソフトウェア開発の予備知識と、一定程度の経験があったほうが、理解しやすい。紹介される事例は経験のある開発者にとっては、なじみ深いものが多く、良い整理になる。初学者は一度通読してから、ある程度の学習と経験を経て再読すると、さらに理解を深めることができる。

第4章、第5章、第6章
第1章~第3章の「基本」を踏まえたうえで、「現場で必要とされるテスト」が紹介される。
経験者は現場のテストのヒントとして、得るものが多いだろう。初学者は知識として学習することができる。

第7章、第8章、第9章、補遺
テストを運営する立場にあたる、中堅~ベテランのテスト担当者、テスト管理者にとって、知識の整理、現場実務でのヒントに役立つ。初学者は知識学習として一読の上、実業務に入ったのち、再読を勧める。

何を学べるか

第1章 テストをはじめる前に(「バグ」とは何かを考える)
「バグ」とは何かを、過去のソフトウェア事故や、研究者の定義、そして筆者の経験を踏まえて様々な角度から考察する。同時にソフトウェアテストの難かしさと、目指す方向性を確認する。

第2章 ソフトウェアテストの基本(ホワイトボックステスト)
プログラムの論理構造が正しいかを確かめる手法である、ホワイトボックステストの基本の考え方を学ぶ。「カバレッジ(網羅率)」の考え方の元となる、制御パステストをはじめ、カバレッジテストの限界、データフローパステスト、静的解析ツールを用いたテストなどを実例を交えて紹介する。

第3章 エンジニアが最もよく使う手法(ブラックボックステスト)
ソフトウェアテストで最も多く使われる、ブラックボックステストの様々な手法を紹介する。同値分割・境界値分析、デシジョンテーブル、状態遷移テスト、ランダムテスト、エラー推測などを、具体例を交えてそれぞれの特長を解説する。

第4章 ソフトウェアの性能をチェックする(システムテスト)
どんな状況下であってもソフトウェアが期待された動作をするかを確認する、システムテストを紹介する。構成テスト、負荷テスト、パフォーマンステスト、ユーザビリティテストを実例を交えて、どんな時に適用すべきかの勘どころを紹介する。

第5章 攻撃に耐えうるソフトウェアの構築(セキュリティテスト)
悪意ある攻撃からソフトウェアを守る、セキュリティテストについて解説する。セキュリティテストの重要性と、難しさを踏まえて、代表的な攻撃手法のしくみ、それを防ぐ、セキュリティ機能テスト、セキュリティシステムテストの具体的手法や、その使い分けの仕方を解説する。

第6章 その他のテスト手法(スモークテストと回帰テスト)
ソフトウェアがシステムテスト可能なレベルであるかを調べる「スモークテスト」と、不具合を修正した後に、ちゃんと修正されているか、他に影響がないかを調べる「回帰テスト」を紹介する。

第7章 ソフトウェアテスト運用の基本(テスト成功の方程式)
テスト対象となるソフトウェアによって、テストのアプローチは異なる。本章では、ここまでで紹介したテスト手法の運用の基本を紹介する。テスト計画の立て方、テストケースの書き方、テストケースの実行、テスト開始のタイミング、出荷判定などを解説する。

第8章 ソフトウェア品質管理の基本(ソフトウェア品質のメトリックス)
ソフトウェア品質を測る指標=メトリックスについて解説する。代表的なメトリックスである、バグメトリックス、コードカバレッジメトリックス、ソースコードメトリックス、複雑度のメトリックスを紹介する。また、メトリックスの選び方や間違った使い方も説明する。

第9章 テストの自動化という悪魔(なぜ自動化は失敗するのか)
テスト自動化の難しさ、陥りがちな危険性について述べる。テスト自動化にかかるコストや失敗事例を挙げ、やみくもに自動化するのではなく、ち密な計画のもと、何が自動化に向くテストで、向かないテストであるのかを見分けるべきであることを解説する。

補遺 (同値分割、境界値分析、ドメインテストについての考察)
同値分割、境界値分析の考え方には、論者によって違いがあることを引用し、考察を深める。