初めての自動テスト

Webシステムのための自動テスト基礎

3,080円
Ebook Storeで電子版を購入:
価格3,080円
カートに入れる

内容

Webシステムの自動テストを始めたい方を対象に、自動テストの考え方やフレームワークを解説する書籍です。テストのピラミッドやユーザーインターフェイステストの概念など、基礎的な事柄から、レガシーシステムへのUIテストの追加、RESTfulなWebサービスのテスト、ブラウザ上のJavaScriptの挙動をユニットテストでテストする方法など、実践的な事柄までを豊富なイラストとサンプルを使って分かりやすく解説します。さらにテストファーストやモックの活用法、テスターに向けた自動テストのためのプログラミング基礎知識なども詳述。自動テストを書くためのノウハウを網羅した本書は、自動テストをマスターしたいエンジニア必携の一冊です。

関連書籍

目次

謝辞
本書への推薦の言葉
訳者まえがき
はじめに

第Ⅰ部 ピラミッドの地図を作る

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 この章で学んだこと

第Ⅱ部 ピラミッドを探検する

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 試してみよう

参考文献
索引

正誤表