Submit Search
Test Yourself - テストを書くと何がどう変わるか
•
129 likes
•
38,590 views
Takuto Wada
Follow
ソフトウェアテストシンポジウム 2014 北海道基調講演 2014年9月5日(金)
Read less
Read more
1 of 49
Download now
Downloaded 129 times
More Related Content
Test Yourself - テストを書くと何がどう変わるか
1.
Test Yourself テストを書くと何がどう変わるか
和田 卓人 (a.k.a id:t-wada or @t_wada) Sep 5, 2014 @JaSST Hokkaido ’14
2.
和田 卓人 id:
t-wada @t_wada github: twada
4.
各所で猛威を振るう t_wada.png
5.
よろしく おねがい します
6.
Q. TDDは、まだ良くわから ないです
Q. 具体的な方法が分からない
7.
TDD とは何か
9.
「動作するきれいなコード」、ロン・ジェフ リーズのこの簡潔な言葉は、TDD(テスト駆 動開発)の目標である。動作するきれいなコー
ドは、あらゆる理由で価値がある。 ─ Kent Beck
10.
動作する、きれいなコードへ きれい 汚い
二つの道がある (すぐには)動かない動作する
11.
TDDのサイクル 1. 次の目標を考える
2. その目標を示すテストを書く 3. そのテストを実行して失敗させる(Red) 4. 目的のコードを書く 5. 2で書いたテストを成功させる(Green) 6. テストが通るままでリファクタリングを行 う(Refactor) 7. 1~6を繰り返す
12.
Refactoring TDDと黄金の回転 きれい
汚い Red Green (すぐには)動かない動作する
14.
TDD や Developer
Testing に ソフトウェア工学的なメリットはいろい ろあるけれど、最大の理由は工学的なも のではない。最大の理由は心理的なもの •即座にフィードバックを得るため •書いたコードに自信を持つため •これから書くコードに自信を持つため
15.
デモ
16.
http://www.planetgeek.ch/wp-content/uploads/2012/06/ATDD-cycle.png
17.
Why: 顧客は何故それを欲 しているのか
What: 何を作れば 良いだろうか How: どう作れば 良いだろうか 頻繁なリリースとデモ 受け入れテスト ユニットテスト 永和システムマネジメント家永氏の資料より
18.
https://www.facebook.com/notes/kent-beck/when-tdd-doesnt-matter/797644973601702
19.
TDDの 導入効果
20.
TDD導入効果(MS, IBM) ©
Towersquest, Inc. 2010. all rights reserved. 20 IBM Driver MS Windows MS MSN MS Visual Studio ソースコードサイズ (KLOC) テストコードサイズ (KLOC) TDDを採用していない類似プロ ジェクトでの欠陥密度を1とし たときの欠陥密度 TDD採用により増加したコード 実装時間(管理者の見積による) 41.0 6.0 26.0 155.2 28.5 4.0 23.2 60.3 0.61 0.38 0.24 0.09 15~20% 25~35% 15% 20~25% N. Nagappan, M. E. Maximilien, T. Bhat and L. Williams: Realizing quality improvement through test driven development: results and experiences of four industrial teams, Journal of Empirical Software Engineering, vol. 13, pp. 289-302 (2008)
21.
TDD導入効果(エリクソン他) • TDDを実施した場合に報告されている知見
‣ 機能テストでの不具合検出数が18%削減された ‣ コーディング(実装)の時間が16%増えた ‣ テストのカバレッジが大きくなった • 被験者を対象としたアンケート ‣ 96%の被験者がデバッグの工数を減らすと感じた ‣ 88%の被験者が要求が洗練されると感じた ‣ 92%の被験者がコードの品質を上げると感じた ‣ 50%の被験者が開発工数を減らすと感じた Boby George, a and Laurie Williams: A structured experiment of test-driven development, Journal of Information and Software Technology Vol. 46, No. 5, p. 337-342(2004) © Towersquest, Inc. 2010. all rights reserved. 21
22.
Q. 開発者自身がテストを書く ようになったら
テストエンジニアは不要だと 思いますか?
23.
TDDの T について
考える
24.
「動作するきれいなコード」、ロン・ジェフ リーズのこの簡潔な言葉は、TDD(テスト駆 動開発)の目標である。動作するきれいなコー
ドは、あらゆる理由で価値がある。 ─ Kent Beck
25.
“テストとは,エラーをみつ けるつもりでプログラムを 実行する過程である”
26.
http://www.developsense.com/blog/2009/08/testing-vs-checking/
27.
TDD は Checking
でしかない
28.
https://speakerdeck.com/everzet/bdd-in-symfony2
29.
http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/
30.
Q. テストスクリプトの作成コストと維持。ユ ニットテストケースの運用維持が、確実には
出来ていない Q. テストコード自体はプロダクションコード よりも基準が緩いため、難しかったり煩雑な テストコードが散見し、テストコードのメン テナンス性が悪くなっている
31.
(Checking の文脈での) 良いテストは
どんなものか
32.
“F.I.R.S.T” => クリーンテストの5つの規則
33.
Fast Independent Repeatable
Self-Validating Timely
34.
“A-TRIP” => 良質なテストの特性
35.
Automated Thorough Repeatable
Independent Professional
36.
F.I.R.S.T A-TRIP 共通するもの
37.
Fast Independent Repeatable
Self-Validating Timely Automated Thorough Repeatable Independent Professional
38.
xUnit Test Patterns
より テストのメンテナンスコスト 理想 現実
39.
Fast Independent Repeatable
Self-Validating Timely Automated Thorough Repeatable Independent Professional
40.
テストコードの リファクタリング デモ
41.
Q. テスト駆動開発について、テスト専門の人 にアドバイスを貰ったり、質問したりするこ
とはあるのでしょうか?テスト専門の立場か ら、開発へどういった貢献が出来るか模索中 です。 Q. 製品コードの作成者とは別にテストコード の作成者を用意して、テストコードの作成を 進めたいと考えています。留意すべきことが あれば教えてください。
42.
テストは品質を上げない 体重計に乗るだけでは 痩せないのと同じ
https://www.flickr.com/photos/tompagenet/2271383143
43.
“テストでは品質は上がらない ですよ。テストはあくまでも品 質をあげるきっかけ。品質をあ
げるのはプログラミングです。 これは大昔からそう。”
44.
自動テストの良いところは、 改善を我慢しなくても良く なったこと
45.
ソフトウェアの質は 自分たちで上げる 自分たちでしか上げられない
でも、開発者にはテストの 知識が不足しがち
46.
だから、いっしょにやりましょう http://www.flickr.com/photos/recompile_net/3298985098/
47.
TDDはスキルです •ひとりから始められる •テストやTDDはスキルです。つまり…
•才能ではなく、習得可能です •量は質に転化します •写経しましょう!!
48.
gihyo.jpの連載 『[動画で解説]和田卓人の“テスト駆動開発”講座』 http://gihyo.jp/dev/serial/01/tdd/
全20回すべて動画付き解説 ニコニコ動画でも見れます WEB+DB過去記事の特設サイトと動画も
49.
ご清聴ありがとうございました
Download