Catyのメタ巡回的構造、あるいは内省機能を使ったスクリプトを比喩的に僕は「妖精さん」とか「小人さん」とか、詩的(?)に表現してきたわけです。
- 「妖精」で検索 http://d.hatena.ne.jp/m-hiyama/searchdiary?word=%CD%C5%C0%BA
- 「小人」で検索 http://d.hatena.ne.jp/m-hiyama/searchdiary?word=%BE%AE%BF%CD
実際に使い始めたら、なぜか呼び名がイヌネコになってしまった。Kuwataさんに先に書かれた。
簡単なテストなので「サルのような賢さは必要ない、イヌかネコにやらせればいい」と言ったので暫定名称「イヌネコテスト」。
10行くらいのスクリプトを2,3個組み合わせればイヌネコテストは出来ますが、現状ではまったく知的ではないので、「テストできる」と判断するコマンドはそれほど多くありません。
僕が最初に試したときは、495個のコマンドのうち141個を「テストできる」と判断したので、カバレッジは3割弱(28.5%)です。それでも、デグレードや不整合をけっこう検出します。だいたいは、ここ何ヶ月か触ってないコマンドで、他の部分の変更に追従できなくなったものです。こういう忘れ去られた(しかし捨てられない)コマンドのデグレード防止にイヌネコテストは役立ちます。
普通「自動テスト」というと、実行やレポーティングは自動でも、テスト自体は人間が書くものが多いでしょう。でも、オウチャク者の僕はテスト書くのもめんどくさい。もちろん、知的で巧妙なテストとか仕様を表現するテストは人が書くしかないですが、パラメータを変えながら実行を繰り返すようなテストコードは人間が書く必要はないし、実行やレポーティングなんて当然に人間のやる事じゃないです。
イヌネコテストは、テストコードを書くこともソフトウェアにやらせるという意味での全自動テストの最初の試みです。今のところ、犬・猫に失礼なくらいにアホタレなので、もう少し賢くして、カバレッジ100%にしようと思います。
カバレッジ100%になれば、CIツールで常時実行し続けることにより、セーフティーネットとしての安心感はかなりあるでしょう。イヌネコの知性とはいえ、網羅性と勤勉さは侮りがたいものです。