ソフトウェアの品質を学びまくる

ソフトウェアの品質、ソフトウェアテストなどについて学んだことを記録するブログです。

【読書感想文】『ソフトウェアテストのセオリー』は長く付き合えそうな良書です。

 『土台からしっかり学ぶ ソフトウェアテストのセオリー』を、著者のお一人経由でリックテレコムさんからご恵投いただきました。

 ここまで書いたらNotion.AIが勝手に以下のように書いてくれた。。
 もう自分いらんな*1。。

本書は、ソフトウェアテストに関する基礎的な理論から実践的なテスト手法まで、幅広くカバーしています。特に、UTPの紹介や非機能テスト、自動化テスト、CI/CDの広義的な捉え方など、現代のソフトウェア開発に必要不可欠な内容が詳しく解説されています。また、著者による豊富な実務経験を踏まえ、実際のツールの使い方にも触れています。

感想の前に

  • 本書の著者の方の何人かは、会社やコミュニティでのお付き合いがあります。また書籍自体も、レビュー用に出版社からいただいたものです。
    ステマのつもりはありませんが、公正を期して立場を明確にしておきます。
  • まだ 全体をざーっと流し読み+気になったところをつまみ食い レベルの粗読なので、詳しいことはまた別に書きたいと思っています。

『ソフトウェアテストのセオリー』、ざっと一周

感想

全体感

 ソフトウェアテスト全般について、かなり幅広く扱った本です。ISTQBやISO/IEC/IEEE-29119といったデファクト/デジュールスタンダードを適宜参照しながらも、それらを実務で使えるように、平易に、かつ紙幅の許す限り具体的に説明しています。

 人によっては、その厚さ(400ページ以上)とお値段(3,740円)で躊躇するとは思いますが、十分に価値のある内容です。

 『ソフトウェアテスト読書マップ』に、情報を追加しておきました。

よいなと思った点

1. 扱うトピックの広さ

 テストに関連するトピックはできるだけカバーしよう、という心意気を感じました。

 まず、いわゆる「QAエンジニア」が扱うテストに対象を絞っていません。ユニットテスト・デバッグ・TDDといった開発者寄りのトピックも対象としています。
 また「テスト環境」の章では、現在の開発では必須であろうCI/CDやDevOps、バージョン管理についても紙面が割かれています*2

 テストをしっかり考えようと思ったら避けては通れない「隣接領域」を含めて手堅くカバーしているところが、本書の良さの第一のポイントです。

2. トピックに対する深さ

 前述のように、本書の扱う領域はかなり広いです。
 そうするとどうしても一つひとつのトピックが薄くなりがちなのですが、そうならないように配慮されているのを感じます。

 その配慮を支えているのが、400ページ以上という厚さと、ExampleやColumnのフォントの小ささです(笑)。本文の可読性を維持しつつ、もう少し踏み込みたい人向けにも情報を詰め込む。好き嫌いはあるでしょうが、わたしはこういう構成が大好きです。

 たとえば、第10章の欠陥分析。
 統計的手法、要因分析的手法、直交欠陥分類法(ODC)の3つが説明されていますが、ODCについては7ページも割いています。「バグは分析しないとね、ちなみにこんな方法があるよ(名前を列挙)」で終わらせません。
 各トピックに関連するツールについても同様で、「こんなツールがあるよ」ではなく、「具体的にはこんな感じです」とコードレベルでイメージがつかめるように工夫されています。

 このような具体性があることで、トピックに興味を持った人が次の学習に進みやすいと感じました。

3. 実務と研究のバランス

 本書の執筆陣のうち、お一人はソフトウェアテストの実務者であり、三人の方が研究職です。これによって、「さっそく実践できるテストの技」と、「今後もっと普及してくるかもしれない技術」がバランスよく取り上げられています。

 後者の例は、テスト設計の表現形式であるUTP(UML Testing Profile)や、「記号実行に基づくテスト」*3、第13章の「未来を感じるテスト手法」などです。
 これらによって、ソフトウェアテストというのが「完成された」、逆にいうと「発展のない」分野ではないということが、あらためてよくわかります。

こうだったらもっといいなーと思った点

1. テスト分析に触れてくれると嬉しい

 ベリサーブさんの調査によると、ソフトウェアテストに関する課題として、

「テストの観点やノウハウが属人化しており、個人やチームによって作業品質にばらつきがある」が「その他」を除いて最多。

という結果が出てているそうです。いわゆる「テスト分析」という領域ですが、本書ではそこにはあまり触れられていません。「そもそも何をテストすればいいのか」は重要なトピックなので、そこがカバーされていると、なお嬉しいなと思います。

2. 非機能テストについて触れてくれると嬉しい

 特に性能テストやセキュリティテストなど、最近ではNFR(Non-functional Requirement)と呼ばれる非機能要件のテストについては、あまり記述がありません。これらはそれぞれで本になるような重いトピックなので、深く広くは扱えるはずもないのですが、もう少し詳細があるとよいなと感じます。

3. 参考文献がほしい!

 本書において、用語の定義はISTQBやISO/IEC/IEEE-29119をベースにしており、何度も言及があります。
 一方で、「深く知りたい方はこちらへ」という文献があまりないのが少し残念です。これだけ広範なトピックを扱っている以上、すべてを深く説明することは不可能なので、「次のステップ」として参考文献が充実するととてもいいと思いました。

4. その他

 英字のフォントが、ゴシックとそうでないものが混ざっていて気になる・・・笑

まとめ

 シンプルに、好きになれそう、長く付き合えそうな本です。
 『セオリー』という言葉には、「理論」という意味と「定石」という意味、両方がありますよね。本書はタイトル通り、両方の「セオリー」をカバーした本だなと感じました。

 テストをさくっと学ぶ目的としてはボリュームがありますが、腰据えて学ぶ本としてとても良い。
 と書くと上から目線ですが、わたし自身よく知らずにいることもたくさんあるので、今回の粗読を終えて、2周目に入りたいと思います!

*1:何でUTPについて言及されていることまで知っているんだろう、さすがにおかしいだろうと思ったけれど、単にわたしがメモとしてNotionに書いていたものを拾っただけでした。そういう情報なしだと、本当に浅い文章しか出力されなかった。アセった・・。

*2:もちろん詳細に知るとなると別の書籍が必要になるでしょうが。

*3:それらの記載がある第3章・第5章を執筆されたのは、実務者である佐藤さんのようですが。