テストを簡単にし、品質もアップする方法 | 悪態のプログラマ

悪態のプログラマ

とある職業プログラマの悪態を綴る。
入門書が書かないプログラミングのための知識、会社の研修が教えないシステム開発業界の裏話は、新人プログラマや、これからプログラマを目指す人たちへのメッセージでもある。

EoT(テスト容易性)の高い設計が、よいオブジェクト指向設計である。

今週の「週間オブジェクト倶楽部」(※)で、平鍋氏が提案している考え方である。「テストが簡単に行えるような設計をせよ」ということであろう。

ここでの「テスト」とは、xUnit のような自動テストと考えてよいだろう。自動テストは、プログラムによるプログラムのテストだ。いつでも何度でも実行できるので、初期開発時の品質向上のみならず、仕様変更時や改訂時のリスク低減にもなる。

平鍋氏の言う「EoT の高い設計」を行えば、自動テストプログラムの作成時間を短縮させ、その品質も向上させることができるだろう。そして、そのことが、テストされる側(製品)の品質や保守性をも向上させることは言うまでもない。

しかし、デメリットがないわけではない。「EoT の高い設計」では、製品プログラムを単独で見た場合よりも、テスト用プログラムと合わせて見た場合のほうが、構造的に美しくなるだろう。製品には、本来は不要なはずの「テストのための構造」が入り込むことで、実行速度面やプログラムサイズ面にも犠牲が出るケースも出てくるかもしれない。

とはいえ、多くの開発プロジェクトで、品質が最も重大な問題となっているのは事実であり、全体的にはメリットの方が大きいものと思われる。

更に EoT のような考え方が浸透していけば、例えば、アプリケーション・フレームワークとテスティング・フレームワークの融合が進むだろう。あるいは、自動テストが難しい GUI(画面操作)のテストの方法を、OS やウインドウ・マネージャが提供してくれる日が来るかもしれないではないか。


※「オブジェクト倶楽部」のメールマガジン(2004-39号 No.67)
  http://objectclub.jp/



JUnitによるテストファースト開発入門
サイバービーンズ 今野 睦
ソフトバンククリエイティブ (2004/04)
売り上げランキング: 95,598
おすすめ度の平均: 3.67
3 ツール紹介の本
3 実行例はわかるのですが,説明文が今一つ
5 ソフトウェアテスト本の新スタンダードかも


はじめて学ぶソフトウェアのテスト技法
リー・コープランド 宗 雅彦
日経BP社 (2005/11/03)