BT

経験的調査で明かされるテスト駆動開発における品質の向上

| 作者: Chris Sims フォローする 0 人のフォロワー , 翻訳者 渡嘉敷 満理子 フォローする 0 人のフォロワー 投稿日 2009年3月14日. 推定読書時間: 3 分 |

学術誌Empirical Software Engineering(リンク)にて最初に発表された論文は、次のように報告している。「TDDは様々な分野で適用可能のようだ。また、開発チームの生産性を大きく低下させることなく、開発するソフトウェアの欠陥密度を大幅に削減できる。」この調査では、MicrosoftおよびIBMの4つのプロジェクトが比較されており、TDDを使用したプロジェクトとそれに類似するTDDを使用しないプロジェクトを取り上げている。

この論文(リンク)は、Nachiappan Nagappan氏(リンク)(microsoft)、E. Michael Maximilien氏(リンク)(IBM)、Thirumalesh Bhat氏(Microsoft)およびLaurie Williams氏(リンク)(North Carolina State University)により執筆され、学術誌Emperical Software Engineeringの第13巻、3号(リンク)で発表された。この論文(リンク) はEmpirical Software Engineering Group Microsoft Research(リンク)からも入手可能である。

論文には、IBMのケース・スタディが1つ、Microsoftのものが3つ記載されている。各ケース・スタディは、高レベルなマネージャのもと、同じ開発言語とテクノロジを使用し同一の製品に取り組む2つのチームを比較しており、一方のチームのみテスト駆動開発(TDD)を使用していた。開発サイクル中、自らが調査の一端を担うことになろうとは、気付くチームなどいなかった。IBMのケース・スタディでは、デバイス・ドライバを開発しているチームを追跡し、Microsoftのケースでは、Windows、MSNおよびVisual Studioに取り組んでいるチームを追跡した。

論文では、チームが使用したTDDのプラクティスを分刻みのワークフローおよびタスクレベルのワークフローとして記述している。

分刻みのワークフロー

  • 少量の新規テストを記述する。
  • テストを実行し、失敗するケースを確認する。
  • テストの条件を満たすコードを実装する。
  • 新規ユニット・テストケースを再実行し、今度は成功することを確認する。
     

タスクレベルのワークフロー

  • 新しいコードおよびテストを既存のコードベースに統合する。
  • すべてのテストケースを再実行し、新しいコードが他に影響を及ぼしていないか確認する。
  • 実装またはテストコード、あるいはその両方のリファクタリングを行う。
  • すべてのテストを再実行し、リファクタリング後のコードが他に影響を及ぼしていないか確認する。
     

4製品のリリース前の欠陥密度(コード1000行あたりの欠陥数を測定)は、TDDを使用しないプロジェクトと比較し40%から90%の間で減少した。チームの管理者は、主観的に見てTDDを使用するチームの初期開発時間に15%から35%の増加が認められると報告したが、チームは、これはメンテナンス・コストの削減により相殺されるとの見解で一致した。

これらの結果は、Maria Siniaalto氏が2006年に発行した論文(リンク)から明らかになったことと比較できる。この論文は、テスト駆動開発における13の異なる調査から得た結果の評価および要約を試みたものであり、調査は、産業、準工業、および学術を背景に行われた。著者はこの論文の結論で、次のように記している。

既存の調査結果に基づき、TDDは、とりわけ産業を背景に使用された場合、ソフトウェアの品質を向上させるようだと結論付けられる。準工業や学術を背景とした場合は、結果はそれほど明確ではないが、品質の低下は一つとして報告されなかった。TDDの生産性効果はそれほど顕著ではなく、また、結果は調査対象の背景に関わらず異なる。とはいえ、TDDは必ずしも開発者の生産性の低下やプロジェクトのリードタイムの延長をもたらすわけではないことを示している。一部のケースでは、TDDを使用し生産性の大幅な向上を果たしたものもあったが、13の調査ケース中、2つのケースにかぎり生産性の低下が報告された。ただし、両方の調査結果において品質は向上した。

TDDでどのような経験をしたか?品質の向上は認められたか?開発者の生産性、および開発期間にはどのような効果が見受けられたか?ぜひコメントを残し、個々の経験を共有していただきたい。

原文はこちらです:http://www.infoq.com/news/2009/03/TDD-Improves-Quality

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

経験的調査? by INOUE Hiroyuki

empirical study は通常、「実証的研究」と訳すのでは。
「実証的研究で明らかになったテスト駆動開発による品質の向上」

という感じでどうでしょう。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

1 ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT