開発において絶対に遭遇したくないのに逃れられないバグや不具合。できるだけ減らして開発を効率化するには、開発者テストが不可欠です。そのやり方を解説した『ソフトウェア品質を高める開発者テスト 改訂版』が、CodeZineを運営する翔泳社から6月15日(水)に発売しました。
『ソフトウェア品質を高める開発者テスト 改訂版 アジャイル時代の実践的・効率的でスムーズなテストのやり方』は、テスト界の第一人者である高橋寿一さんが培ってきたノウハウを詰め込んだ、開発者テストの教科書とも言える1冊。
開発工程においてバグや不具合を完全に避けるのは簡単ではありませんが、テストによって上流品質を高めれば、その後の開発は比較的楽になります。
本書では単体テストやリファクタリング、コードレビュー、テストの自動化などについて解説。この改訂版では特に、アジャイルでの品質を高めるためのアジャイルテストについて詳しく説明しています。
開発者テストの考え方から知りたい方や、何より実践のためのノウハウを学びたい方、より効率的なテストを行うためのヒントがほしい方におすすめです。
目次
第1章 はじめに
1.1 上流品質
1.2 アジャイルでの品質
1.2.1 アジャイルテストとは
第2章 上流品質向上のためのテスト
2.1 上流品質活動
2.2 さぼる・逆らう人のための上流テスト講座
2.2.1 上流品質と出荷後の品質
2.2.2 上流品質と残バグのリスク
2.3 まとめ
第3章 開発者テストの基本の基本
3.1 開発者がこれだけは知っておくべきテスト手法
3.1.1 境界値テスト
3.1.2 状態遷移テスト
第4章 コードベースの単体テスト
4.1 コードベースの単体テストとは
4.2 命令網羅(C0カバレッジ)
4.3 分岐網羅(C1カバレッジ)
4.4 よくある単体テストの間違い――コードベースの単体テスト
4.5 知っているようで知らないコードベースの単体テストの書き方
4.5.1 一般的なテスト方法(TDD)
4.6 網羅率――コードベースの単体テストの成否を計測する
第5章 単体テストの効率化――楽勝単体テスト
5.1 コードの複雑度
5.2 どこを単体テストすればよいか?――単体テストやってる暇ありませんという人のために
5.2.1 単体テストのやる箇所を絞る
5.2.2 筆者の独自手法――ファイルを2つにぶった切る
5.2.3 明確なメリット
第6章 機能単位の単体テスト
6.1 開発者がやるべき単機能のテスト
6.1.1 ソート機能の単体テスト
6.2 ブラックボックステスト・ホワイトボックステスト
第7章 リファクタリング
7.1 やはり複雑です、そのコード!書けません、単体テスト
7.2 ファイルのコードのリファクタリング
7.3 ビッグクラスのリファクタリング
7.3.1 CKメトリックス
7.4 複雑度を下げるリファクタリング
7.5 出口は1つ
7.6 MVC分離
第8章 コードレビュー
8.1 コードレビューとは
8.2 ペアプログラミング
第9章 統合テスト
9.1 統合テストのパターン
9.1.1 統合テスト重視の実例
9.2 APIテストとAPIバグ密度の考え方
9.3 カオスエンジニアリング
9.3.1 カオスエンジニアリングと品質&生産性
第10章 システムテストの自動化
10.1 最悪のシステムテスト
10.2 キーワード駆動型自動テスト
10.3 妄想な自動化
第11章 探索的テスト
第12章 まとめ――テスト全体のデザイン
12.1 単体テストなしで疲弊する組織
第13章 アジャイル・シフトレフトのメトリックス
13.1 ミューテーションテスト
13.1.1 ミューテーションテストの考え方
13.1.2 ミュータントの中身
13.1.3 ミューテーションテストの問題点
13.1.4 ミューテーション網羅率という考え方
13.2 ユーザーストーリと信頼性メトリックス
13.2.1 オペレーションプロファイル
13.3 信頼度成長曲線のメトリックス
第14章 アジャイルにおける要求仕様
14.1 ユーザーストーリの利点
第15章 開発者テストの実サンプル
15.1 単体テスト
15.1.1 Setup――簡単なアプリを作る
15.1.2 単体テストを作る
15.2 コード網羅測定
15.2.1 コード網羅ツールの準備
15.2.2 一番簡単な網羅(命令網羅)
15.2.3 分岐網羅
この記事は参考になりましたか?
- この記事の著者
-
渡部 拓也(ワタナベ タクヤ)
翔泳社マーケティング課。MarkeZine、CodeZine、EnterpriseZine、Biz/Zine、ほかにて翔泳社の本の紹介記事や著者インタビュー、たまにそれ以外も執筆しています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社