はじめに
しばらく前の話ですが、業務での私の成果物のバグが非常に多かったため、テストに関してしっかり学ぶべく、「単体テスト考え方/使い方」という書籍を購入して勉強してみました。感想としては、ローコード開発者としても非常に参考になる部分が多く、今後もテストや設計の方針で迷ったときにバイブルとして使用することになりそうです。本記事では、この書籍で学べることや、私にとって参考になった部分について簡単にまとめます。
学べること
単体テストの具体的な手法というよりは、本質的な考え方が中心に説かれている本となっており、以下のようなテーマが扱われています。
- 古典学派とロンドン学派の「単体」の定義
- 良い単体テストが満たすべき条件
- モックの扱い方
- 統合テスト
- データベースに対するテスト
- 単体テストのアンチパターン etc...
題名に「単体テスト」とありますが、統合テストやE2Eテストについても記載されており、テスト全体の本質的な背景を俯瞰できる内容になっていると思います。また、「単体テストが書きづらい設計は、そもそも設計の質が悪い」という視点から、良いAPI設計などの内容も含まれており、テストにとどまらない広い示唆を得ることができる内容となっています。
感想
ローコード中心の開発者視点でしたが、単体テストや依存関係の考え方、単体が満たすべき条件など、テストに共通する基本的な考え方を整理できました。これまでは何となく書いていたテストも、「良い単体テストの条件」を基準に見直すきっかけになったと思います。 また、「単体テストが書きづらい設計は設計の質が悪い」という視点は特に印象に残っており、テストを書く中で設計の問題に気づくことが増えました。現場でも、古典学派かロンドン学派かを意識しつつ、自分のテストや設計を見直す判断軸として使える内容だったと感じています。
最後に
テストに関して抽象的・本質的に理解したい方や、若手エンジニアにとっては非常に参考になる一冊だと思います。開発におけるテストの考え方に自身のない方は、ぜひ本書を手に取ってみてはいかがでしょうか。