書店員向け情報 HELP
実践プロパティベーステスト PropErとErlang/Elixirではじめよう
- 初版年月日
- 2023年11月
- 書店発売日
- 2023年11月1日
- 登録日
- 2025年1月17日
- 最終更新日
- 2025年1月30日
紹介
本書では、Erlang/Elixirで利用可能なPropErというフレームワークを利用し、基本的なアプローチによるプロパティベーステストはもちろん、生成したいテストケースが互いに独立でない場合のプロパティベーステストや、状態に依存するシステムに対するプロパティベーステストなど、高度な応用事例についても紹介します。
本格的なアプリケーション開発を通して、プロパティベーステストの基礎から極北までを体験できる、唯一無二の解説書です。
目次
訳者まえがき
原書への推薦の言葉
謝辞
はじめに
第I部 基礎
第1章 プロパティベーステストの基礎
1.1 プロパティベーステストの約束
1.2 プロパティから始める
1.3 自分のプロジェクトでプロパティベーステストを始める
1.4 プロパティを実行する
1.5 まとめ
第2章 プロパティを書く
2.1 プロパティの構造
2.2 デフォルトジェネレーター
2.3 すべてをまとめる
2.4 まとめ
2.5 演習
第3章 プロパティで考える
3.1 モデル化
3.2 事例テストを汎化する
3.3 不変条件
3.4 対称プロパティ
3.5 すべてをまとめる
3.6 まとめ
3.7 演習
第4章 カスタムジェネレーター
4.1 デフォルトジェネレーターの限界
4.2 統計情報を収集する
4.3 基本的なカスタムジェネレーター
4.4 技巧的なカスタムジェネレーター
4.5 まとめ
4.6 演習
第II部 実践で学ぶステートレスプロパティ
第5章 信頼できるテスト
5.1 仕様
5.2 プログラムの構造に関する考察
5.3 CSVのパース
5.4 レコードのフィルタリング
5.5 従業員モジュール
5.6 テンプレート
5.7 すべてをつなぎ合わせよう
5.8 まとめ
第6章 プロパティ駆動開発
6.1 仕様
6.2 最初のテストを書いてみる
6.3 特価品の購入をテストする
6.4 特価の実装
6.5 ネガティブテスト
6.6 まとめ
第7章 収縮
7.1 ?SHRINKで中立点をずらす
7.2 ?LETSHRINKを使ってより詳しく調べる
7.3 まとめ
7.4 演習
第8章 標的型プロパティ
8.1 標的型プロパティを理解する
8.2 実践 標的型プロパティ
8.3 独創的に考える
8.4 まとめ
第III部 ステートフルプロパティ
第9章 ステートフルプロパティ
9.1 ステートフルプロパティの配置
9.2 ステートフルプロパティの動作
9.3 プロパティを書く
9.4 基本的な並行キャッシュのテスト
9.5 並列実行をテストする
9.6 まとめ
9.7 演習
第10章 ケーススタディ:書籍の貸出システム
10.1 アプリケーションの紹介
10.2 ジェネレーターを書く
10.3 広範囲のステートフルテスト
10.4 状態の正確なモデル化
10.5 テストを改善する
10.6 ステートフルプロパティをデバッグする
10.7 並列テスト
10.8 まとめ
第11章 有限状態機械プロパティ
11.1 有限状態機械プロパティを配置する
11.2 有限状態機械プロパティはどのように動作するか
11.3 プロパティを書く
11.4 サーキットブレーカーのテスト
11.5 サーキットブレーカーをモデル化する
11.6 モデルの調整
11.7 まとめ
付録A 演習への解答
A.1 プロパティを書く
A.2 プロパティで考える
A.3 カスタムジェネレーター
A.4 収縮
A.5 ステートフルプロパティ
付録B Elixir移植版
B.1 プロパティで考える
B.2 信頼できるテスト
B.3 ステートフルプロパティ
B.4 ケーススタディ:書籍の貸出システム
B.5 有限状態機械プロパティ
付録C PostgreSQLのインストール
付録D ジェネレーターリファレンス
索引
上記内容は本書刊行時のものです。