こども用のテストテストランナーである Fudo は、一種の宣言システムであるとも言える。ここで、色々な宣言システムを挙げて、Fudo で実装すべき物はどれなのか考えてみる。
- 単体テスト
- ある処理にテストケースを与えると期待される答えが返るかどうか
- 表明契約
- プログラムの中に埋め込む式、常に真である事を期待する。
- 事前、事後条件
- ある文の前後で満たすべき条件
- クラス不変条件
- クラス内部状態の制約。メンバ変数の域値と変数同士の関連の事かな?
- 述語
- 原因と結果の関係
- 制約
- 満たされるべき条件と満たすための手続きの組
テストを用いた開発のイメージ
人間の体を考える。体はかたい骨と柔軟な筋肉で出来ている。人間が何かをしようとする時には筋肉を動かすが、その時に形を変えない骨が大切な役割を果たす。骨がある事によって、人間はある形を保ちつつ動く事が出来る。テスト、または大きな意味での不変条件とは骨のような存在である。
人体で面白いのが、筋肉が行うのが引っぱりの動作だけであると言う点だ。筋肉自体は縮む動きしか出来ないのに、筋肉と組み合わせる事に寄ってパンチ等の押し出す力を生む事が出来る。ソフトウエア開発においても、このような逆メタファを使うと有効な事があるのかもしれないが、今はまだちょっと分からない。