More Related Content
Similar to 社内テストファースト勉強会 (20)
More from Go Sueyoshi (a.k.a sue445) (20)
社内テストファースト勉強会
- 2. Copyright Drecom Co., Ltd. All Rights Reserved.
sue445 @ドリコム
● ツール、ライブラリ、課金周り、サーバサイド全般
○ ドリコムを支える中間ポイントシステム - くりにっ
き http://sue445.hatenablog.
com/entry/2014/12/01/000000
● PO (Precure Ojisan)
● RubyKaja 2014
自己紹介
- 3. Copyright Drecom Co., Ltd. All Rights Reserved.
ワタシハ テスト チョットデキル
https://suzuri.jp/sue445/62900/t-shirt/s/brightgreen
- 4. Copyright Drecom Co., Ltd. All Rights Reserved.
● テストの分類
● テスト駆動開発(Test Driven Development)とは
● テストファーストとは
● テストファースト、自動テストを導入するという事について
● テストを書くべきところ、そうでないところ
● 僕がテストファーストをする理由
Agenda
- 5. Copyright Drecom Co., Ltd. All Rights Reserved.
http://www.slideshare.net/t_wada/the-spirit-of-tdd/14
テストの分類
- 6. Copyright Drecom Co., Ltd. All Rights Reserved.
http://www.slideshare.net/t_wada/the-spirit-of-tdd/14
テストの分類
開発者視点でのテスト
・ユニットテスト:プログラムの正しい
振る舞いをコードで示す
- 7. Copyright Drecom Co., Ltd. All Rights Reserved.
http://www.slideshare.net/t_wada/the-spirit-of-tdd/14
テストの分類 顧客(弊社だとPOやディレクターな
ど)が望んでいる機能を満たしている
かのテスト
- 8. Copyright Drecom Co., Ltd. All Rights Reserved.
http://www.slideshare.net/t_wada/the-spirit-of-tdd/14
テストの分類
・開発者も顧客も想定していないよう
なバグ
・セキュリティ(XSS, SQLインジェク
ションなど)
・パフォーマンス(クソクエリ、レスポン
スが遅いとか)
・チートの穴
を防ぐ
- 9. Copyright Drecom Co., Ltd. All Rights Reserved.
http://www.slideshare.net/t_wada/the-spirit-of-tdd/14
テストの分類
今日話すのは主にこれ
- 10. Copyright Drecom Co., Ltd. All Rights Reserved.
http://www.slideshare.net/t_wada/the-spirit-of-tdd/26
テスト駆動開発(Test Driven Development)とは
- 11. Copyright Drecom Co., Ltd. All Rights Reserved.
http://www.slideshare.net/t_wada/the-spirit-of-tdd/27
テスト駆動開発(Test Driven Development)とは
- 12. Copyright Drecom Co., Ltd. All Rights Reserved.
● プロダクトコードを書くよりも前にテストコード
を書くこと
● TDD ≒ テストファースト
○ RedとGreenを細かいサイクルで回してい
れば後にテスト書いてもTDD。(だと思う)
○ 卵が先か鶏が先かの些細な違い
○ 後からテストを書いてもいいじゃない、人
間だもの
テストファーストとは
- 13. Copyright Drecom Co., Ltd. All Rights Reserved.
● テストファースト、自動テストを導入するという
事について(@社内勉強会)
○ http://www.slideshare.net/KyonMm/ss-
41785717
詳しいこと
- 14. Copyright Drecom Co., Ltd. All Rights Reserved.
全てのコードにテストを書く必要はない
● 半年以上メンテする必要があるコードはテストコードが必須
○ 半年以上前の自分は他人
● 逆に言えば使い捨てのコードに対しては不要(重要度による
が)
○ 使うのが1回だけだとテストコードを書くコストの方がでか
くなるので割に合わない
○ 経験上半年くらいで最初に書いたテストの元がとれるよう
になる
● 機械でチェックするのが困難なものは不要(というか無理)
○ デザイン崩れとか目で見ないと分からない
● どこから書くか迷ったら書きやすいところから書く
○ Model, Utility
テストを書くべきところ、そうでないところ
- 17. Copyright Drecom Co., Ltd. All Rights Reserved.
テストを書くことを前提としていないコードに対して後から無理矢
理テストを注入する方が難しい(と思う)
● 例:テストが一切無いレガシーコードのリファクタリング
○ 規模が大きな既存のプロダクトコードをなるべく変更しな
いようにピンポイントにテストコードだけ書くのは難しい
○ 爆弾処理なみの慎重さが要求される
● 後からテストを書く方が難しいので先にテストを書く
○ →簡単なので楽をできる
テストを先に書く方が楽
- 18. Copyright Drecom Co., Ltd. All Rights Reserved.
テストコードを先に書くことで、何を作りたいかを明確にできる
● テストコードを書く時には「入力(引数)」「出力(戻り値)」「処
理の概要」が決まってないと書けない
○ ある意味設計と変わらない
○ 実装する前に設計することを自分自身に強いる
● テストコードを書いてると PullRequest や MergeRequest で
どこまで考慮して実装してるのかをレビュアーに伝えやすく
なる
● 認識の齟齬で後から大きく手戻りするくらいならテストファー
ストを通して設計をしっかり固めた方が楽
テストコードは動く仕様書
- 19. Copyright Drecom Co., Ltd. All Rights Reserved.
● TDDしてれば自然と(カバレッジだけなら)網羅性の高いテス
トは書ける
○ 「カバレッジが高いこと」と「意味のあるテスト」をしてるか
は別問題
● ある程度ユニットテストが整備されていると常にリグレッション
(再帰)テストを流せるので、凡ミスがすぐ見つかる
○ 常日頃から命綱を編んでおく
○ 何かあってから命綱を編むのは手遅れ
● テストが多いとCIもやりやすくなる
○ Jenkins動かすにしてもテストが少ないと効果は薄い
● TDDだけで全部の問題は解決できない
○ TDDそのものよりもその副産物の方が重要
TDDは銀の弾丸ではない
- 20. Copyright Drecom Co., Ltd. All Rights Reserved.
● テストファースト、自動テストを導入するという事について(@
社内勉強会)
○ http://www.slideshare.net/KyonMm/ss-41785717
● テストとリファクタリングに関する深い方法論 #wewlc_jp
○ http://www.slideshare.net/KyonMm/wewlcjp/32
● 「いまさら聞けないTDD/BDD超入門」最新記事一覧 -
ITmedia Keywords
○ http://www.atmarkit.co.jp/ait/kw/tdd_bdd.html
参考URL
- 21. Copyright Drecom Co., Ltd. All Rights Reserved.
● 基本から学ぶソフトウェアテスト
○ http://www.amazon.co.jp/dp/4822281132
● 知識ゼロから学ぶソフトウェアテスト 【改訂版】
○ http://www.amazon.co.jp/dp/4798130605
● ソフトウェアテスト293の鉄則
○ http://www.amazon.co.jp/dp/482228154X
● ソフトウェアテスト技法ドリル―テスト設計の考え方と実際
○ http://www.amazon.co.jp/dp/4817193603
参考書籍
- 22. Copyright Drecom Co., Ltd. All Rights Reserved.
● TDD のこころ @ OSH2014
○ http://www.slideshare.net/t_wada/osh2014-sprit-
of-tdd
○ 47枚目以降にユースケース毎のおすすめ書籍が載って
る
● ソフトウェアテストの書籍まとめ 2013 #SWTestAdvent — う
さぎ組
○ http://kyon-mm.bitbucket.
org/blog/html/2013/12/27/swtest_books.html
参考書籍