こんにちは! たかぎです。
今回は、ソフトウェアテストに興味があり、これから勉強しようと思っている人に向けに、最初に読むべきバイブル的な本を紹介しようと思います。一人一人確かめたわけではないですが、プロのテスト技術者のほとんどは、この本を読んでいると思います。なにせ、技術書でありながら、2万部以上売れているベストセラーで、日本一売れているソフトウェアテストの本です。それだけに、業界人で、この本を読んでいなければ、モグリと呼ばれてしまうかもしれません。よって、業界人なら、この本を読んでおくべきでしょう。ただし、技術書なので読むのを躊躇う人もいるかもしれません。そんな人のために、ここで本の概要を解説しますので、本を読む取っ掛かりにして頂けたらと思います。
日本一売れているテストのバイブル
日本一売れているテストのバイブルは、翔泳社より出版されている『知識ゼロから学ぶソフトウェアテスト 【改訂版】高橋 寿一(著)』です。本書がなぜバイブルと言われているかを私なりに分析すると、要因は3つあると考えています。
第一に、筆者の高橋寿一氏が、日本のソフトウェアテスト業界の第一人者だからです。フロリダ工科大学大学院で、世界で最も著名なCem Kaner博士の元で最高峰のテストを学び、米Microsoft社、独SAP社、SONY社という超大手企業でソフトウェアテスト業務に従事してきた日本のトップ・オブ・トップです。そのような人が書いた本であれば、間違いありません。
第二に、語り口調で非常に易しく書かれている点です。難解なことを難解に書くのは、比較的簡単です。一方、難解なことを易しく書くのは、非常に難しいです。しかし、高橋氏の高度な知識と経験が、それを可能にしています。よって、本書は技術をテーマに扱っているにも関わらず、非常に易しく分かりやすく書かれている稀有な本と言えるでしょう。
第三に、エビデンスがしっかり示され、学術的な裏付けがしっかりしている点です。易しく書こうとすると、エビデンスや学術的な裏付けを端折ってしまいがちです。また、経験が豊富な方が書くと、経験談に偏りがちです。しかし、本書は易しく書きながら、エビデンスや学術的な裏付けをきちんと示しています(私も技術文章を書くので分かりますが、これが本当に難しいです)。さらに、そこに高橋氏の豊富な経験談も追加され、本書全体のバランスを絶妙にしています。アカデミックと現場の両方を経験した高橋氏だから成せる技と言えるでしょう。
テストのバイブルを3分で解説
それでは、本の概要説明に移ります。忙しい人でも短い時間で概要を理解できるように、3分(1,500字)程度のボリュームで解説しようと思います。
第1章 はじめに
「はじめに」を飛ばして読む人もいると思いますが、本書の「はじめに」は、読んでおいた方が良いと思います。本章では、バグとは何かを改めて考え、ソフトウェアテストがなぜ重要なのかを考察しています。また、テスターの心得、ソフトウェアテストの限界についても記述しており、ソフトウェアテストをはじめるにあたり、知っておかなければならないことが書かれています。
第2章 ソフトウェアテストの基本 ― ホワイトボックステスト ―
第2章は、ホワイトボックステストをテーマに扱っています。主に開発者が実施するテスト技法であり、第3者検証をするソフトウェアテスト技術者でホワイトボックステストをするのは稀です。しかし、開発者がどのようなテストを実施しているかを知らないのは、品質のプロとしては問題でしょう。また、アジャイルが台頭しており開発者とテスト技術者の垣根が薄くなりつつありますし、最近はなるべく上流工程で品質確保をする流れになっていますので、ホワイトボックステストの実施や参加の機会は高まっています。よって、読んで理解しておいた方が良いでしょう。
第3章 エンジニアがもっともよく使う手法 ― ブラックボックステスト ―
第3章は、ブラックボックステストです。ブラックボックステストは、ソフトウェアテスト技術者が最も良く使うテスト技法です。よって、ソフトウェアテスト技術者を目指すのであれば、きちんと理解しておきたい内容になります。図や例をふんだんに使用して、分かりやすく説明してありますので、1回で理解できなくても、落ち着いて何回か読めば確実に理解できる構成になっています。
第4章 探索的テスト
第4章は、探索的テストです。探索的テストは、テストケースを作成せずに、テスト実施者の経験に基づいてテストするスタイルです。このテストは、高橋氏の大学院の恩師であるCem Kaner博士が開発したテストですので、高橋氏の真骨頂が発揮された章と言えるでしょう。よって、本章を読むだけで、この本の元が取れます。
第5章 機能あらざるもののテスト、最難関のテストに挑む
第5章は、非機能テストです。非機能テストは、ソフトウェアが提供している機能以外のテストで、パフォーマンスやセキュリティ、ソフトウェアが落ちないかなどを確認するテストになります。非機能テストは章のタイトルにある通り、難関なテストになります。よって、深い内容の説明はありませんが、最低限知っておくべき知識の説明が記載されています。
第6章 ソフトウェアテスト運用の基本 ― テスト成功の方程式 ―
第6章は、ソフトウェアテストの運用です。ここでいう運用とは、どのようにテストを実施していくかのやり方になります。具体的には、ソフトウェアプロセス、テスト計画書の書き方、テストケースの書き方、テスト実施の順番、テストの開始のタイミング等になります。どれもソフトウェアテストを実施する上で、必須の知識になります。
第7章 ソフトウェア品質管理の基本 ― ソフトウェア品質のメトリクス ―
第7章は、ソフトウェア品質のメトリクスです。メトリクスとは、どのような情報を収集し、活用するかということです。ソフトウェアの活動は見えにくいので、指標となる情報を収集して、それで管理する方法について説明しています。
第8章 テスト自動化という悪魔
第8章は、テスト自動化です。最近は、テストを自動化することが多くなっています。しかし、無計画なテストの自動化に高橋氏は警鐘を鳴らしています。本章では、テスト自動化に陥りやすい失敗や、それを回避する方法について記載されています。
第9章 それでもテストがうまくいかない人へ
第9章は、テストがうまくいかない例と、それについての対策です。本章では、典型的にうまくいかない例に対して、高橋氏が大胆な対策を紹介しています。テスト技術者が普段問題に思っていて困っていることを、ズバッと解決策を言っています。よって、本書の終章に相応しい内容と言えるでしょう。
おわりに
私は、本書を何回も読んでいますが、とても良い本です。特にソフトウェアテストを勉強し始めた人には、テストの全体像を掴むのに適しています。本書を新入社員に配ったり、メンバーの勉強会に使用したりしていますが、分かりやすいと好評です。また、すでに経験を積んだソフトウェアテスト技術者であっても、何かしらの気づきがあると思います。よって、本書を買って損はしませんので、購入して一読することをお勧めします。