[画像のクリックで拡大表示]

 「建前ではなく実際にテストを普及させるにはどうすればいいのか」。2008年4月23日,東京・九段で開催されたテストに特化したソフトウエア開発者向けカンファレンス「Developers [Test] Summit 2008(デブサミTest)」で「【徹底討論】テストなんていらない?!-テストを,どこまでやるべきか?」というパネル・ディスカッションが開催された。

 司会を務めたのはタワーズ・クエスト プログラマ兼取締役社長であり,テスト駆動開発(TDD)の日本での第一人者である和田卓人氏。同氏に,オープンソース・プロジェクト「Seasar」のチーフコミッタであるひがやすを氏,テストの研究や実践に携わってきた日本IBMの太田健一郎氏を加えた3人がパネリストとして登壇した。

 まず,パネリストを「大規模/小規模」「品質寄り/開発寄り」の二つの軸でポジショニング。ひが氏は「大規模/開発寄り」,太田氏は「大規模/品質寄り」,和田氏は「小規模/開発寄り」だった。次に,会場で挙手してもらうことで,約250人の参加者を二つの軸で分類した。「品質寄り」と「開発寄り」では開発寄りがやや多かった。プロジェクト規模での分類では,品質/開発いずれも50人以上のプロジェクトに携わっている参加者は少なかった。品質寄りでは10人~50人未満,10人未満のプロジェクトがいずれも30~40人程度。開発寄りでは小規模なプロジェクトが多く,10人未満のプロジェクトに携わっているのが100人程度だった。

テストが高コストなのは厳然たる事実

 この結果を踏まえて和田氏が「テストをしたほうがいいと思う人」と質問したところ,全員が挙手した。ところが「ユニット・テストの自動化ができている人」で挙手したのは30人程度,「プロジェクトで品質保証のテストができている人」での挙手は80人程度だった。テストに関心があるはずの参加者ですらこの結果である。「テストをすればいいという『王道』はわかっているが,できていない」という現実が明らかになった。

 ここで和田氏は「テストをすることで,結果的にコストがかからない」という,このディスカッションが目指すべき結論を最初に提示した。これに関して重要な命題が二つあるという。

 まず「いかにテストを書かないか」という命題である。「テストはコストであるということは疑いようがない。これは3人に共通した認識だ」(和田氏)。結果的にコストを下げるには,何でもかんでも網羅的にテストするのではなく,適切なQCDS(品質,コスト,納期,サービス スコープ[この修正については追記を参照])の枠内に収める必要がある。二つ目が「誰がテストを書くのか」という命題だ。プログラマなのか,品質保証の担当者なのか,あるいは両方なのか。

【追記】
当初の記事ではQCDSを「品質,コスト,納期,サービス」と説明していましたが,和田氏の指摘により「サービス」を「スコープ」に修正しました。Sは「サービス」を表すと解釈されることが多いですが,アジャイル・プロジェクトではスコープの調整が重要であり,和田氏の発言は「スコープ」を意図したものだったためです(参考リンク)。