単体テストの考え方/使い方の表紙

単体テストの考え方/使い方(タンタイテストノカンガエカタ ツカイカタ)

プロジェクトの持続可能な成長を実現するための戦略

プログラミング
著者:
Vladimir Khorikov/須田智之(ウラジーミル コリコフ/スダ トモユキ)
出版社:
マイナビ出版
出版日:
2022年12月28日
ISBN:
9784839981723
在庫:
在庫あり
4.57(7 件 / 楽天ブックス)
中級者向け
単体テストリファクタリングソフトウェア品質テストパターン持続可能な開発統合テストC#ソフトウェアエンジニアリングテスト駆動開発コード品質

なぜ注目されているか

言及数
11
総合47 6 ランクダウン 126 件の言及
出版前出版日081620222023202420252026

書籍紹介

単体 (unit) テストの原則・実践とそのパターン - プロジェクトの持続可能な成長を実現するための戦略について解説。

優れたテストを実践すれば、ソフトウェアの品質改善とプロジェクトの成長に役立ちます。逆に間違ったテストを行えば、コードを壊し、バグを増やし、時間とコストだけが増えていきます。生産性とソフトウェアの品質を高めるため、優れた"単体テスト"の方法を学ぶことは、多くの開発者とソフトウェア・プロジェクトのために必須といえるでしょう。

本書“単体テストの考え方/使い方”では、単体テストと統合テストの定義を明確にします。そして、どのようなテストに価値があるのかを学び、どのテストをリファクタリング、もしくは削除するのか、ということについて考え、そのことがプロジェクトの成長にどう繋がるのかを見ていきます。
C#のコード例で解説しますが、どの言語にも適用できる内容です。

Manning Publishing: Unit Testing Principles, Practices, and Patterns の翻訳書。

目次
第 1 部: 単体 (unit) テストとは?

第 1 章: なぜ、単体テストを行うのか?

第 2 章: 単体テストとは何か?

第 3 章: 単体テストの構造的解析

第 2 部: 単体テストとその価値
第 4 章: 良い単体テストを構成する 4 本の柱

第 5 章: モックの利用とテストの壊れやすさ

第 6 章: 単体テストの 3 つの手法

第 7 章: 単体テストの価値を高めるリファクタリング

第 3 部: 統合 (integration) テスト
第 8 章: なぜ、統合 (integration) テストを行うのか?

第 9 章: モックのベスト・プラクティス

第 10 章: データベースに対するテスト

第 4 部: 単体テストのアンチ・パターン
第 11 章: 単体テストのアンチ・パターン

技書の森解説

『単体テストの考え方/使い方』は、「良い単体テストとは何か」を判断基準のレベルから示す テスト設計 の解説書です。著者は Vladimir Khorikov 氏、訳者は須田智之氏で、 2022 年 12 月にマイナビ出版から刊行されました。原著は "Unit Testing: Principles, Practices, and Patterns"。コード例は C# ですが、版元自身が「どの言語にも適用できる内容」と紹介しているとおり、 JavaTypeScript など他の言語で開発している読者にもそのまま通用します。

本書が解決するテストの悩み

テストを書く文化が根付いたチームほど、「テストの量は増えたのに開発が楽にならない」という壁に突き当たります。コードカバレッジを目標にした結果、実装の詳細に密着した壊れやすいテストが増え、リファクタリングのたびに大量のテスト修正が発生する。モックを多用した結果、テストは通るのに本番で壊れる。本書はこうした症状の根本原因を「テストの質を測る物差しを持っていないこと」に置き、単体テストをプロジェクトの持続可能な成長への投資として捉え直すところから話を始めます。

全 11 章の構成と 4 本の柱の読みどころ

全 11 章の構成で、前半では単体テストの定義そのものを確立します。モックを積極的に使うロンドン学派と、実際のオブジェクトを組み合わせる古典学派という 2 つの立場を比較し、著者は古典学派側に立って理由を明快に述べます。核心は第 4 章「良い単体テストを構成する 4 本の柱」で、退行に対する保護、リファクタリングへの耐性、迅速なフィードバック、保守のしやすさという 4 つの性質でテストの価値を評価する枠組みを示します。 4 本の柱は同時にすべてを最大化できないトレードオフの関係にあり、だからこそ「何を優先するか」という設計判断が必要になる、という組み立てです。後半はモックとテストの壊れやすさの関係、単体テストの価値を高めるリファクタリング、統合テストとの棲み分け、データベースに対するテスト、そしてアンチ・パターンへと実務の順に進みます。

対象読者と先に読んでおきたい本

対象は、単体テストを書いた経験がある中級者以上です。テストフレームワークの使い方やテストコードの文法から学びたい段階の入門書ではないので、その場合は 言語別の入門書 や Kent Beck 『テスト駆動開発』 (オーム社、 2017 年) で TDD のリズムを先に体験するほうが得るものが大きいはずです。逆に、「どのテストを残し、どれを書き直し、どれを消すべきか」をレビューの場で説明する語彙が欲しいと感じている開発者やテックリードには、まさにその判断基準を与えてくれる本です。

読み終えて得られるもの

読み終えると、「このテストは 4 本の柱のどれを満たし、何を犠牲にしているか」という共通言語でテストの取捨選択を語れるようになります。テストスイートの保守コストに悩んでいるチームなら、モックの線引きと削除の判断基準が手に入るだけでも読む価値は十分にあります。チームのテスト戦略を言語化したい人が、長く手元に置いて参照することになる一冊です。

言及 Qiita 記事 (79 件)

言及 Zenn 記事 (24 件)

この本に興味がある方におすすめ

この本に関連

関連記事

関連用語

共有:Xはてブ