レベルエンター山本大のブログ

面白いプログラミング教育を若い人たちに

BLOCKVROCKリファレンス目次はこちら

@IT-「TestNG」とは?-自動テストの未来

id:jyukutyoによるTestNGに関する記事"JUnitより簡単なオープンソースの「TestNG」とは? (1/3):次世代テストフレームワークでテストを変える(1) - @IT"が公開されました。
後輩らの@IT執筆が続いていて嬉しいことです。


この「テスティングフレームワークTestNG」は、JUnit4のお手本にもなっただけではなく、後発のJUnit4よりも使いやすいと評判のフレームワークです。


id:jyukutyoの分析では、JUnitの問題はテストケースが”ステートレス”という点*1であり、TestNGでは、テストをステートフルにしていることが根本的に違うということです。


つまりTestNGでは、テストケースのインスタンスがテストをまたがって持続するそうです。
これをさらに言い換えれば、テストにオブジェクト指向が持ち込めるということです。


僕はこれを聞いて、テストフレームワークパラダイムシフトを巻き起こすかもしれないと思いました。


ソフトウェアの業界で、オブジェクト指向が一般化したことで、フレームワークと呼ばれる概念が生まれ、デザインパターンが生まれ、再利用性と開発の容易性に大きく貢献しました。


自動テストにおいて、この再利用性と開発容易性が飛躍的に向上するというようなことが発生したら、
ソフトウェア開発の姿がまったく変わるほどの爆発力をもっているような気がします。
なぜなら、自動テストの普及におけるネックは「コスト高」という点が未だに大きいからです。
しかし、自動テストは強力だという一般的な理解は広まっています。


そこに、汎用的・分野横断的で、とても簡単に作れる自動テストの仕組みが出てきたら・・・と考えると夢が広がります。


オープンソースで、テストフレームワークはたくさん出ていました。
しかし、過去において、テストそのものの再利用部品は出ていません。これはなぜだったのでしょう。
そして、テストそのものが再利用できたら、、、未来は少し明るくなりそうです。


@ITの次回の連載では、TestNGの特徴となる独自機能が紹介されます。
TestNGの近未来的な使いどころを想像しながら、読んでいただけると面白いと思います。

*1:この点がJUnit4でも解消されていません。