【技術書評】ソフトウェアテスト293の鉄則

毎週、技術書を読んで、ざっくり紹介します。今日は、Cem Kaner, James Bach, Bret Pettichord著, テスト技術者交流会訳『ソフトウェアテスト293の鉄則』。

(購入はこちらから)

本書の目次

書籍目次を開く
第1章 テストという仕事 第2章 実践的テスト担当者の思考法 第3章 テストの技法 第4章 バグの報告 第5章 テストの自動化 第6章 テストドキュメント 第7章 プログラマとの協同作業 第8章 テストプロジェクトのマネジメント 第9章 テストグループのマネジメント 第10章 ソフトウェアテストにおけるキャリア 第11章 テスト戦略の立案

紹介と感想

先週、『はじめて学ぶソフトウェアのテスト技法』という本を読んだが、理論面に偏った本であったため、もう少し実践的・ノウハウ的な内容が読んでみたいな、というところで目についたのがこの本。
(といいつつ、これを買っていたのは2019年頃。おそらく、ソフトウェアテストについての書籍を漁っていたときに目についてたまたま買っていたもののその後積み続けていたようだ)

blog.zametech.com

内容的には、ソフトウェアテストに関連した関心事において、最前線のテストエンジニア達の経験則から、「より良いテスト」を達成するために必要なことや「テストエンジニア組織の運営方法」から「テストエンジニアとしてのキャリアパス」まで、様々なヒントを収めた一冊となっている。
「293の鉄則」という言葉が示すとおり、正直かなりボリューミー。冒頭でも言われていたが、目次から気になったものを抜き出して読むスタイルが適切かもしれない。


原著について

原著タイトルは"Lessons Learned in Software Testing: A Context-Driven Approach"という書籍で、初版出版はおそらく2001年。20年以上の書籍ということで、書かれている内容としてもやはり古いと感じさせられる部分は含まれているが、全体的に普遍的/汎用的な内容で書かれていることが多く、現代でも十分価値のある一冊であると思われる。

米アマゾンやGoodreadsを見ても、割と売れている書籍だ。ソフトウェアテストに特化した本のなかではかなり評価も高い方ではないだろうか。

https://www.amazon.com/Lessons-Learned-Software-Testing-Context-Driven/dp/0471081124/ref=sr_1_1?crid=Y0ILDRBOAOM6&keywords=Lessons+Learned+in+Software+Testing&qid=1702954981&s=books&sprefix=lessons+learned+in+software+testing%2Cstripbooks-intl-ship%2C229&sr=1-1

当時で言えばまだ新しい技術であったのではないかと思われる自動化テストについての項なども、書かれている内容は同意できる点が多かった。


ただし、アメリカの開発事情に由来する部分はかなり多く、日本の開発現場とは合わないと感じる読者も多いと思われる(例えば、書籍内では全体的に開発担当とテスト担当が完全に分離されていることを前提とされているが、日本の開発現場では2023年現在でも開発者がそのままテストを担当することが多いだろう)。

この点については、訳注がかなり丁寧にサポートしてくれている。というか、訳注だけでもかなりのボリューム感・読み応えがあるため、是非目を通したいところだ。


テスト技術者交流会?

訳者はテスト技術者交流会となっているが、書籍に書かれた情報によると、1998年、東京大学(当時)の西康晴氏を中心に発足した、ソフトウェアテスト技術者の情報交換・技術向上を目的とした会だそう。

おそらく、現在のASTERというNPO法人ソフトウェアテスト技術振興協会)に連なる会と言えるのではないだろうか。何にしろ、日本にあったソフトウェアテスト最前線コミュニティが携わっているというわけだ。

なお、ASTERの発表によると、西康晴氏(にしさん)は、2023年10月に急逝されたとのことです。ソフトウェアテストという観点で、多大な貢献をもたらされた方であったとお見受けします。ご冥福をお祈りいたします

ソフトウェアテスト技術者交流会wikiページ
www.swtest.jp

・ASTER公式HP
www.aster.or.jp


本書で気に入った鉄則

  • 鉄則002 常に目的を意識せよ

    • 「顧客が無関心なことに対して時間や労力を割くと、見当違いのことをしているとか、非生産的であると言われる危険性がある」
    • 目的意識が大事というのは、現代でもテスト設計の最重要事項っぽい。
  • 鉄則025 モデリングはテストの決め手だ

    • どの分野にすすんでも、IT系開発者の道はモデリング技法の習熟の重要度が極めて高い気がする。
  • 鉄則034 「動いた」の本当の意味を確認せよ

    • これは本当にそう
    • 訳注で問われる「本当に動いたのか?」の問いかけで大笑いした。確かにある、「本当は動いてなかった」事例。なんなんだあれ。
  • 鉄則150 プログラマの考え方を理解せよ

    • 「そんなバグは起こり得ない」という一言は「自分が正しいと思っている論理( ロジック)とは合致しないということを言っている」。完全にそう。
    • テストのときの、開発者視点の思い込みの排除って重要だよね、と感じる。


最新のテスト技術動向について

  • 書籍で紹介されたテスト規格は「IEEE829」であったが、2023年現在は「ISO/IEC/IEEE 29119」が国際標準規格とされている。

  • 先述のASTERが開催されている、「テスト設計コンテスト」などのイベントの存在を知った。テスト設計についての最新の知識を手に入れる場にもなりそうで、非常に気になっている。
    以下のページで、講義資料や2022年の講義動画が公開されているので、是非見てみてほしい。クオリティが高くて驚いた。 www.aster.or.jp