Skip to content.

Sections
Personal tools
You are here: Home » 技術文書 » オブジェクト指向 » オブジェクト指向の再定義 » オブジェクト指向の再定義[1]

Document Actions
オブジェクト指向の再定義[1] - EoT
さて、第一回は、「テスト」である。良い設計とはなにか、と問われて、凝集 度と結合度に関する議論を思いつく人も多いだろう。しかし、この定義よりもっ と具体性がある設計方針として、テストを考える。テストの視点によってオブ ジェクト指向を再定義したい。キーワードは、EoT(*1)(Ease of Testing)、テ スト容易性だ。

この記事では、

    EoTの高い設計が、よいオブジェクト指向設計である。

と主張する。設計品質の中で「テスト容易性(EoT)」を最上位と見るのだ。オブ ジェクト指向のさまざまな機構、用語、考え方は、すべて EoT のため、と捕ら えられる。例えば、

  • 継承という言語機構は、Mock(*2) を作るためのもの
  • 実装ではなくインターフェイスに対してプログラミングするのは、テストしやすくするため
  • よいモジュール分割とは、テストしやすいモジュール分割である
  • 循環依存性を排除するのは EoT のため
  • DI(Dependency Injection)は、EoTのためのツール
ちょっと本末転倒に感じられるかもしれない。しかし、他の業界ではテスト容 易性をもっと重視している例が多い。例えば、コンピュータのハードウェアは 「テストが可能な設計」になっていることが普通だ。テスト用のジャンパーは 設計に折り込み済みだし、メモリにはパターンの記録とチェックができる機能 がある。

写真は、「テストパターンを放送するテレビ」だ。

テレビプログラムは、最初からテレビの受像機をテストする、という機能を折 り込み済みなのである。

他にも、ソフトウェア以外でテストを「折り込み済み」の設計を見つけたらぜ ひ教えて欲しい。

テストが、最終的な顧客価値の検証になるのだから、テストができない設計な ど、意味がないと言えないだろうか。


[1] EoT: Ease of Testing、テスト容易性。Testability に替わる平鍋の造語

[2] Mock: ユニットテストで用いられるテストスタブ技法

(参考文献) 『アジャイル開発の奥義』 など
つづき



この記事への評価にご協力をお願いします。

良かった 普通 イマイチ