March 2023
Intermediate to advanced
384 pages
5h 30m
Japanese
コードベースを漏れなくテストするのは不可能だ。ユースケースを賢く絞り込む以上のことはできない。境界条件、コードパス、その他注目すべき箇所を探索し、セーフティネットに大穴が空いていないことを祈るだけだ。しかし、祈るよりも良い方法がある。プロパティベーステストでセーフティネットの穴をふさぐのだ。
この章では、Hypothesis†1というライブラリを使ったプロパティベーステストの方法を学ぶ。まず、Hypothesisを使ってテストケースを生成する。その中には考えもしなかったテストケースが多く含まれる。さらに失敗したテストケースの追跡方法、新しい入力データの作り方、アルゴリズムを組み合わせてソフトウェアをテストする方法を学ぶ。Hypothesisは思いがけないエラーの組み合わせからコードベースを守る。
プロパティベーステストは生成的テストの一種でありツールがテストケースを生成する。特定の入出力の組み合わせからテストケースを作成する代わりにシステムのプロパティを定義する。ここでのプロパティとはシステムに関する不変式のことである(「10章 クラス」参照)。
総カロリーや価格、料理など顧客が指定した条件に基づいてメニューからコースを選ぶ推薦システムについて考える。この例では顧客が特定のカロリー値を下回るコースを注文できるようにしたい。このシステムのために定義した不変式は次の通りである。
Read now
Unlock full access