O’REILLY Learning「Modern Software Engineering: Doing What Works to Build Better Software Faster」8 Being Experimental
https://learning.oreilly.com/library/view/modern-software-engineering/9780137314942/
8 Being Experimental
「仮説を支持、反証、検証するために行われる手続き」と定義。
問題を解決するために実験的なアプローチを取ることは、非常に重要。
「実験的であること」をアプローチとして定義するのは、4つの特徴
・Feedback
・Hypothesis
・Measurement
・Control the variables
ソフトウェアでは、そのようなことをすべてテストで行うことができ、アイデアが実を結ぶのに何ヶ月も何年もかかるのではなく、数分で結果を出すことができます。これこそ、私たちのスーパーパワーです。
TDDを実践するとき、私は自分のコードに意図した変更を加えるとき、まずテストを行います。
目的は、失敗するテストを作ることです。
テストを実行し、それが失敗するのを見て、そのテストが実際に何かをテストしていることを確認したいのです。
テストを書くことから始める。
いったんテストが思い通りになったら、テストが失敗することを予想する正確なエラーメッセージを予測します。
これは実験であり、科学的手法の小さな応用です。
ソフトウェアは簡単に実験ができる。
正しく検証することが大切。間違った方向性になっていることが多い。