👻

単体テストの考え方・使い方 を読み終えて

2023/05/07に公開

初投稿です。
お手柔らかにお願いします。

概要

書籍「単体テストの考え方/使い方」を読了しました。

読むか迷っている人に向けた参考情報や、所感を書いてみます。

読むべきか迷っている方の参考となれば幸いです。

誰向けの書籍か

本書は、テストを「持続可能なソフトウェア開発を維持する手段」として位置づけているように感じます。

一方で、以下のような情報は記載されていません。

  • テストコードではなく、テスト仕様書の書き方に関する知見
    • カバレッジ100%なテスト仕様書を作成する知見
    • テストケースを網羅するための知見
    • など
  • テストフェーズの円滑な進め方
    • 段取り
    • 必要な納品物
    • など
  • 協力会社を含めた、テストフェーズのマネジメント方法

雑にまとめると、「アジャイル開発にて、テストコードを書く人」には得るものが多く、「ウォーターフォール開発にて、テストフェーズをマネジメントする人」が読んでも得るものは少ないと思われます。

学べること

「ただテストを書く」から一歩進んで、「最低限の労力で、最大限の価値を得る」テストを作成する方法を学ぶことが出来ます。

より具体的に学べることの一例を、以下に列挙します。

  • テストを行う目的
  • 「良い単体テスト」とは
    • 「良い単体テスト」の定義
    • 単体テスト三つの手法と、その使い分け
  • どのような時にモックを使うべきか
    • モックと、テストの壊れやすさとの関係
  • リファクタリングで壊れにくいテストの書き方
  • 単体テストと統合テストのバランス
  • DBを含めた統合テストの書き方
  • 単体テストのアンチパターン

「テストの重要性は理解しているが、どう書けばいいかわからない」や「もっと上手にテストを書けるようになりたい」という方にとって、非常に学びの多い書籍です。

より詳しい情報は、通販サイトの目次をご確認ください。

所感

この書籍を読む以前、自分は、様々な書籍を読み、テストの重要性は漠然と理解していました。
しかし、質の高いテストを自信をもって作成できるだけの方針や知見は持ち合わせていませんでした。
つまり、「我々(私)は雰囲気でテストを書いている」状態でした。

(イメージとしては、「プログラミング言語の基礎文法は修めたが、上手に書く方法がわからない」に近いでしょうか)

本書には、明日からでも実践可能な、「質の高いテストコードを書くためのアレコレ」が詰まっています。
そのため、「どうやって質の高いテストコードを書いていこうかな?」と悩んでいた自分にとって非常に刺さる内容で、読む手が止まりませんでした。

「テストの重要性は理解しているが、どう書き始めたらいいかわからない」、「何となくテストコードは書いたことあるけど、もっと質の高いテストコードを書きたい」「テストがうまく書けなくて困っている。良い方針が知りたい」といったな悩みを抱えている方には、非常にお勧めできる一冊だと感じました。

Discussion