どうやらテスト駆動型開発は死んだようです。これからのCI
Upcoming SlideShare
Loading in...5
×
 

どうやらテスト駆動型開発は死んだようです。これからのCI

on

  • 4,760 views

SideCI主催のVenturesCI.rb #1のLT資料です。 ...

SideCI主催のVenturesCI.rb #1のLT資料です。
「どうやらテスト駆動型開発は死んだようです。これからのCI」です。

要約すると、TDD死んじゃった。テスト自体は否定しないし有用だと思う。でも、ユーザに触れるEndToEndの振る舞いのテストを主に書き、テストカバレッジ100%を目指す時代は終わった(コストが高過ぎる。自転車の補助輪のようなものだ、テスト駆動型はもう外そう!)。EndToEndテストはCapybaraがよさそうだね。という内容です。

Statistics

Views

Total Views
4,760
Views on SlideShare
3,428
Embed Views
1,332

Actions

Likes
6
Downloads
6
Comments
1

8 Embeds 1,332

http://sideci.hatenablog.com 941
https://twitter.com 354
http://s.deeeki.com 22
http://feedly.com 6
https://kcw.kddi.ne.jp 5
http://slideshare-download.seesaa.net 2
http://www.feedspot.com 1
https://tweetdeck.twitter.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • こういうDHHの言っているコンテキスト抜きな引用やめてほしいなぁ。。。TDDはユニットテストのためだってまた誤解が広まるじゃんか。。。
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

どうやらテスト駆動型開発は死んだようです。これからのCI どうやらテスト駆動型開発は死んだようです。これからのCI Presentation Transcript

  • [Confidential] © 2013 Actcat, Inc. 2014/4/28 Actcat, Inc. どうやらテスト駆動型開発は死 んだようです。これからのCI
  • [Confidential] © 2013 Actcat, Inc. 速報: 一昨日、 TDDが死にました。 2
  • [Confidential] © 2013 Actcat, Inc. どうやら皆が愛して憎んでやまない、 テスト駆動型開発が死んだらしいのです。 「小さなチーム、大きな仕事」などの著 書でも有名な会社のCTOでありRailsの開発 者であるDavidさんが2014/4/23に下記のよ うな投稿をしました。 「TDD is dead. Long live testing.」 「TDD 死んだ」でググると翻訳している 人がたくさんいますので参考にどうぞ 3
  • [Confidential] © 2013 Actcat, Inc. そもそもTDDとは何だったのか?  テスト駆動型開発(TDD)。テストを書いてか ら、コードを書こう。テストを満たすコード を書こう。  そうしたらコードカバレッジも100%になる し、テスタブルなコードになるし、リーダブ ルになるし、いいことづくめだよね  サービスの変更にもテストがあるから安心し て臨めるよね 4
  • [Confidential] © 2013 Actcat, Inc. TDDで作ったテストは 継続的インテグレーションしよう Jenkins,TravisCIなどで自動テストを COMMIT毎やPush毎、NightyBuildでしよう テストが通ったらデプロイ出来る、とい う状態を維持しよう そして、デプロイを高速化しよう 5
  • [Confidential] © 2013 Actcat, Inc. でも、TDDはお亡くなりになりました TDDは主にユニットテスト(部分的なコー ドのテスト)を行ってました しかしながら、結合した時の問題点につ いてはTDDの体制では書きづらかったり そして、結合テストをコードで書く文 化・技術が新しく出てきたので、ユニッ トテストファーストな時代は終わったと いう 6
  • [Confidential] © 2013 Actcat, Inc. 代表的なツール Capybara 7 https://github.com/jnicklas/capybara
  • [Confidential] © 2013 Actcat, Inc. テストシナリオをDSLで書ける 8
  • [Confidential] © 2013 Actcat, Inc. Rspecとも同居できる 9
  • [Confidential] © 2013 Actcat, Inc. Selenium VS Capybara Capybaraはコードで書くテストなので、 Seleniumとは時代と使用するユーザが代わ る Selenium: ブラウザでテストを作るテスト 職人 Capybara: プログラマ 10
  • [Confidential] © 2013 Actcat, Inc. テストの作成はプログラマの仕事に TDDでもテストの作成はプログラマの仕事 だった それが結合テストを作るのがプログラマ の仕事に変わる、と思われる 以降、結合テストは全て自動でCIサーバで 実行されるようになる、だろう 11
  • [Confidential] © 2013 Actcat, Inc. TDD => 結合テスト のメリット 12 プロジェクト スタート リリース ユーザは公開物 しか見ない 結合テストが カバレッジ 100%+Successな ら リリース可能 テスト 書く 開発 テスト 書く 結合 テスト 開発 リリース 開発の積み重ねによるテスト カバレッジ100%は厳しく、 テストの寿命も短い
  • [Confidential] © 2013 Actcat, Inc. なぜ単体テストのほうが寿命が短いか?  ロジックはころころ変更になる  結合テストはたしかにテキストレベルまで追 うと変更コストが非常に高い、が、 ユーザ体験・機能レベルなら変更は多くない  結合テストはユーザ体験だけテストすればよ い。単体テストは今後、単体で機能を有する ものにだけ書くようにすればいいと思う 13
  • [Confidential] © 2013 Actcat, Inc. というわけで、Capybaraへ Capybara 14 https://github.com/jnicklas/capybara