17. ペアプログラミングとは
"Write all production programs with two people sitting at
one machine. ... Pair programming is a dialog between
two people simultaneously programming (and designing
and testing) and to program better."
(Extreme Programming Explained 2nd)
「プロダクションコードはすべて、2人で1台のマシンに
向かって書くこと。…ペアプログラミングとは、プロ
グラミングしながら2人で会話することだ(設計もテス
トも同時にする)。会話するのは、もっと上手にプログ
ラムするためである。」
30. テスト駆動開発の効果
IBM
ドライバ
Microsoft
Windows
Microsoft
MSN
Microsoft
VisualStudio
チーム人数 9 6 5-7 7
コード量(KLOC) 41.0 6.0 26.0 155.2
開発規模(人月) 119 24 46 20
欠陥数
(TDD未使用に対
する)
61% 38% 24% 9%
開発時間の増加
(管理者の見積)
15~20% 25~35% 15% 20~25%
Nachiappan Nagappan, E. Michael Maximilien, Thirumalesh Bhat, Laurie Williams “Realizing
quality improvement through test driven development: results and experiences of four
industrial teams” 2008
http://research.microsoft.com/en-us/groups/ese/nagappan_tdd.pdf
31. 保守性への影響
※1 保守期間(260日間)中、変更要求の対応にかかった工数の平均
"The effectiveness of test-driven development: an industrial case study"
(Tomazˇ Dogsˇa • David Baticˇ , Software Qual J (2011))
生産性
(行数/工数)
保守性 ※1
(工数/変更件数)
プロジェクトA
(非TDD)
2.3 84
プロジェクトB
(非TDD)
2.5 80
プロジェクトC
(TDD)
1.8 59
32. TDDの効果の研究をまとめた研究
"Effects of Test-Driven Development: A Comparative
Analysis of Empirical Studies" Simo Makinen and Jurgen
Munch, 2013
• 既存の実証研究を調査し、10の内部・外部品質評
価項目で、各研究の結論を整理した
• TDDは欠陥の作り込み(introduced defects)を減
らし、メンテナンスしやすいコードを産む
• TDDで実装されたコードは、部分的に、サイズが
小さく、複雑度が低い場合がある
• メンテナンスがしやすくなるものの、初期開発で
は時間がかかる
37. テスト駆動開発の効果
IBM
ドライバ
Microsoft
Windows
Microsoft
MSN
Microsoft
VisualStudio
チーム人数 9 6 5-7 7
コード量(KLOC) 41.0 6.0 26.0 155.2
開発規模(人月) 119 24 46 20
欠陥数
(TDD未使用に対
する)
61% 38% 24% 9%
開発時間の増加
(管理者の見積)
15~20% 25~35% 15% 20~25%
Nachiappan Nagappan, E. Michael Maximilien, Thirumalesh Bhat, Laurie Williams “Realizing
quality improvement through test driven development: results and experiences of four
industrial teams” 2008
http://research.microsoft.com/en-us/groups/ese/nagappan_tdd.pdf