March 2021
Beginner to intermediate
288 pages
5h 8m
Japanese
| 和田 卓人 | ![]() |
スクラムにおいて安定したスプリントを繰り返すには、テストの自動化を避けて通れない。議論の余地はないだろう。開発者の間では、Bob Martinが提唱した「F.I.R.S.T」が一種の標語として知られている。これは良いユニットテストの要素(Fast、Independent、Repeatable、Self-Validating、Timely)の頭文字を集めたものだ†1。
[†1] Robert C. Martin著『Clean Code』(花井志生 訳、KADOKAWA、原著『Clean Code』Prentice Hall)
良い自動テストはこれら5要素を全て満たすことが求められる。しかし、優先度順に一列に並べるのがアジャイルの鍵だ。今回あえて5つを優先度の高い順に並べる思考実験を行った結果「S > R > T > I > F」の順となった。その理由をこれから説明したい。
良いテストは自己検証可能(Self-Validating)だ。これは、テスト自身が成功か失敗かを判断できる、具体的にはテストコードにアサーションが書かれているということである。Self-Validatingでないテストとは、テストコードをテスト対象を実行するためだけに使い、アサーションがなく、標準出力などにテスト対象の出力がそのまま出ており、人間が目で見て期待値と一致するかどうか確かめているようなテストだ。
Sは他のすべての要素の土台となる。人の目を介して成功か失敗かの判断をしている限り、テストの自動化はできない。 ...