Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
[Confidential] © 2013 Actcat, Inc.
2014/4/28
Actcat, Inc.
どうやらテスト駆動型開発は死
んだようです。これからのCI
[Confidential] © 2013 Actcat, Inc.
速報:
一昨日、
TDDが死にました。
2
[Confidential] © 2013 Actcat, Inc.
どうやら皆が愛して憎んでやまない、
テスト駆動型開発が死んだらしいのです。
「小さなチーム、大きな仕事」などの著
書でも有名な会社のCTOでありRailsの開発
者であるD...
[Confidential] © 2013 Actcat, Inc.
そもそもTDDとは何だったのか?
 テスト駆動型開発(TDD)。テストを書いてか
ら、コードを書こう。テストを満たすコード
を書こう。
 そうしたらコードカバレッジも10...
[Confidential] © 2013 Actcat, Inc.
TDDで作ったテストは
継続的インテグレーションしよう
Jenkins,TravisCIなどで自動テストを
COMMIT毎やPush毎、NightyBuildでしよう
テ...
[Confidential] © 2013 Actcat, Inc.
でも、TDDはお亡くなりになりました
TDDは主にユニットテスト(部分的なコー
ドのテスト)を行ってました
しかしながら、結合した時の問題点につ
いてはTDDの体制では書...
[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: ブラウザで...
[Confidential] © 2013 Actcat, Inc.
テストの作成はプログラマの仕事に
TDDでもテストの作成はプログラマの仕事
だった
それが結合テストを作るのがプログラマ
の仕事に変わる、と思われる
以降、結合テストは...
[Confidential] © 2013 Actcat, Inc.
TDD => 結合テスト のメリット
12
プロジェクト
スタート
リリース
ユーザは公開物
しか見ない
結合テストが
カバレッジ
100%+Successな
ら
リリース可...
[Confidential] © 2013 Actcat, Inc.
なぜ単体テストのほうが寿命が短いか?
 ロジックはころころ変更になる
 結合テストはたしかにテキストレベルまで追
うと変更コストが非常に高い、が、
ユーザ体験・機能レベル...
[Confidential] © 2013 Actcat, Inc.
というわけで、Capybaraへ
Capybara
14
https://github.com/jnicklas/capybara
Upcoming SlideShare
Loading in …5
×

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

14,385 views

Published on

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

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

Published in: Technology

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

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

×