自動テストの初心者を対象に、自動テストの基礎と手順について学ぶ書籍です。そもそもテストには、どんな種類の自動テストが存在して、それぞれ何に適しているか。各種類の自動テストの具体例、テスターに向けて自動テストに必要な最低限のプログラミングの作法、開発者に向けてモック、テスト駆動開発などについて解説しています。
https://www.ohmsha.co.jp/book/9784873118161/
正誤表やDLデータ等がある場合はこちらに掲載しています
謝辞
本書への推薦の言葉
訳者まえがき
はじめに
第I部 ピラミッドの地図を作る
1章テストのピラミッド
1.1 美しかった自動テスト
1.2 車輪が転がるように
1.3 3つの厳しい教訓
1.4 テストのピラミッドに入り込む
1.4.1 章の順序
1.4.2 3つの層
1.5 UIテスト
1.6 統合テスト
1.7 ユニットテスト
1.8 親指の法則
1.9 誰が自動テストを書くのか
1.10 この章で学んだこと
2章ユーザーインターフェイステストに触れる
2.1 いつもの失敗リリース
2.2 ユーザーインターフェイステストを始めよう
2.3 UIテストの仕組み
2.4 HTMLを使った検証
2.5 CSSを使った要素の選択
2.6 この章で学んだこと
3章レガシーシステムにUIテストを追加する
3.1 ステップ1:正しい画面にいることを確認する
3.2 ステップ2:正しいCSSセレクタを見つける
3.3 ステップ3:アサーションを追加する
3.3.1 有効な認証情報でテストする
3.3.2 無効な認証情報でテストする
3.4 この章で学んだこと
4章統合テストで点と点を結ぶ
4.1 UIがない!
4.2 統合テストを始めよう
4.3 Webの仕組み
4.4 HTTPでおしゃべりする
4.5 RESTを知る
4.6 この章で学んだこと
5章 RESTfulなWebサービスの統合テスト
5.1 RESTfulな許可APIをテストする
5.2 HTTP GET
5.3 HTTP POST
5.4 HTTP PUT
5.5 HTTP DELETE
5.6 この章で学んだこと
6章ユニットテストで基礎を固める
6.1 すべてが完璧な世界
6.2 UIテストの課題
6.3 ユニットテストを始めよう
6.4 ユニットテストの仕組み
6.4.1 正しく動くことを保証する
6.4.2 壊れる可能性のある箇所はすべてテストする
6.4.3 テストファースト
6.5 上級テクニック
6.6 この章で学んだこと
7章 JavaScriptを使ったブラウザ上のユニットテスト
7.1 ブラウザの中の魔法
7.2 JavaScriptとテストのピラミッド
7.3 バグハント
7.4 ステップ1:HTMLを調べる
7.5 ステップ2:JavaScriptを解析する
7.6 ステップ3:テストを書く
7.6.1 モデル
7.6.2 コントローラ
7.7 静的型付けと動的型付け
7.8 質問タイム
7.9 この章で学んだこと
8章ピラミッドを登る
8.1 ピラミッドの具体例
8.2 ユニットテストから始める
8.3 統合テストへステップアップする
8.4 UIテストへ到達する
8.5 逆ピラミッド
8.6 不安定なテストの扱い方
8.6.1 テストを書き直す
8.6.2 テストをピラミッドの下の層へ移動させる
8.6.3 価値のないテストとみなし、テストを止める
8.7 この章で学んだこと
第II部 ピラミッドを探検する
9章プログラミング初級講座
9.1 プログラミングの構造
9.2 コーディングスタイルの重要性
9.3 適切な命名
9.4 スペースの入れ方
9.5 重複との戦い
9.6 ルールに従ってやってみよう
9.7 ステップ1:スペースの入れ方を修正する
9.8 ステップ2:良い名前を選ぶ
9.9 ステップ3:プロダクションコードの重複に対処する
9.10 ステップ4:テストコードの重複を取り除く
9.11 この章で学んだこと
10章テストを整理する〜混沌の中から法則を見つけ出す〜
10.1 混乱する世界
10.2 分離されたテストの美しさ
10.3 コンテキストを明確にする
10.4 ハッカーに注意
10.5 この章で学んだこと
11章効果的なモックの活用
11.1 音楽を聞こう
11.2 モックの利用
11.3 ステップ1:モックを準備する
11.4 ステップ2:エクスペクテーションの設定
11.5 結合による束縛
11.6 モックの泥沼
11.7 ポートとアダプタ
11.8 質問タイム
11.9 この章で学んだこと
12章テストファースト
12.1 どこから始めるか
12.2 テスト駆動開発(TDD)とは
12.3 ステップ1:失敗するテストを書く
12.4 ステップ2:テストを成功させる
12.5 ステップ3:リファクタリングする
12.6 TDDの利点
12.7 実践してみよう
12.7.1 ステップ1:失敗するテストを書く
12.7.2 ステップ2:テストを成功させる
12.7.3 ステップ3:リファクタリングする
12.8 サイクルを繰り返し回そう
12.9 質問タイム
12.10 この章で学んだこと
12.11 おわりに
付録A CSSチートシート
付録B Google Chromeのデベロッパーツール
付録C サンプルコードを動かすための環境構築
C.1 準備(リソースのダウンロード)
C.2 JavaScriptのテスト
C.2.1 テスト結果を見てみる
C.2.2 テストを修正する
C.3 Rubyのテスト
C.3.1 必要なツールのインストール
C.3.2 Railsのアプリケーション起動
C.3.3 UIテストの実行
C.3.4 統合テスト/ユニットテストの実行
C.3.5 試してみよう
参考文献
索引