黄色信号の話

まずはこちらを。
http://idm.s9.xrea.com/ratio/2006/11/21/000549.html

なんかすごくすっきりしました。Development を Drive するためのテストについてはすっかり同意。ぐぅの音もでないくらい。

あと、Rails勉強会で出た黄色の話をちょっと捕捉すると、開発時だけじゃなく、バグがあがってきたときなんかに、
「現在の仕様では動かないこととする、が、今後のエンハンス対象としてはコードで表現しておきたい」ってのはよくあるので、それを表現するステータスが欲しいね、というコンテキストも後半Test::Baseのときにあって、私自身、黄色の話はそのへんが両方混ざってるのかな、と。

開発時と保守のときでは興味の対象はちょっと違ってて、後者の場合は思いもよらないようなパターン含め、外から(ブラックボックステスト、ね)入力と出力を流し込んでやりたくなるわけです。中の(ホワイト側)は基本的な設計/実装はできてるし、それを再度検証する仕組も、作ったときのテストという形であるので。んで、そういった場合は Test::Base みたいなテストは活きるよね、と。

ただ、そこで検証したいたくさんの入出力の組の中で、正しい動作を規定するテストがあるにもかかわらず対応できていない、というものをどう扱うか、という観点からの黄色の欲しさってのはあるのかなぁ、と。

で、ホントのホントの最終的にはパスするはずのテストだけど、いまは動かないのは知ってるよ、という known bug な状態を、

  • あるときはスキップさせ、
  • あるときはスキップしたことを明示的に表示し、
  • またあるときは(リリース前とか)強制的に全件を流してチェックする、

というパターンをツールの側でスイッチできないかなぁ、と。

あ〜、でも書いてるとやっぱり基本的なマインドセットとしては赤/緑の二値を頼るのも良いかも*1。黄色は現実適応であって基本マインドセットの枠組に入れるのはちょっとちがうのかな?ん〜。

*1:そもそも保守と開発は何がどうちがうのか、という話にもなるような気がする。