SlideShare une entreprise Scribd logo
1  sur  14
[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

Contenu connexe

Tendances

マイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with Karateマイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with KarateTakanori Suzuki
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメYoji Kanno
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門Hiroyuki Wada
 
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 FallYoshitaka Kawashima
 
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回Yoshiki Hayama
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターンSoudai Sone
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpkyon mm
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツpospome
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?Yoshitaka Kawashima
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知るShuhei Fujita
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
テストコードの DRY と DAMP
テストコードの DRY と DAMPテストコードの DRY と DAMP
テストコードの DRY と DAMPYusuke Kagata
 
ふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかたふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかたYoshitaka Kawashima
 
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのrediswebエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredisnasa9084
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?Moriharu Ohzu
 
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)NTT DATA Technology & Innovation
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計増田 亨
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!Kenji Okumura
 

Tendances (20)

マイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with Karateマイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with Karate
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
 
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
 
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツ
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知る
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
テストコードの DRY と DAMP
テストコードの DRY と DAMPテストコードの DRY と DAMP
テストコードの DRY と DAMP
 
ふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかたふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかた
 
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのrediswebエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!
 

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

Hey It's Not My TDD!
Hey It's Not My TDD!Hey It's Not My TDD!
Hey It's Not My TDD!Yasui Tsutomu
 
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~Tomomi Kajita
 
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
UnitTestは最もTDDしやすいか否か? #TDDMeetUpUnitTestは最もTDDしやすいか否か? #TDDMeetUp
UnitTestは最もTDDしやすいか否か? #TDDMeetUpkyon mm
 
Tdd is really dead ?
Tdd is really dead ?Tdd is really dead ?
Tdd is really dead ?Akira Suenami
 
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テストmakopi 23
 
TDDの自殺 #TDDeX
TDDの自殺 #TDDeXTDDの自殺 #TDDeX
TDDの自殺 #TDDeXkyon mm
 
6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後Shingo Sasaki
 
SeasarCon 2009 White TDD
SeasarCon 2009 White TDDSeasarCon 2009 White TDD
SeasarCon 2009 White TDDTakuto Wada
 
LightSwitch で OData
LightSwitch で ODataLightSwitch で OData
LightSwitch で ODataYoshitaka Seo
 
JaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッションJaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッションmirer
 
CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料Yasui Tsutomu
 
Windows 365 Enterprise に触れてみよう
Windows 365 Enterprise に触れてみようWindows 365 Enterprise に触れてみよう
Windows 365 Enterprise に触れてみようYutaro Tamai
 
Emergent Design - ObLove 2009 summer
Emergent Design - ObLove 2009 summerEmergent Design - ObLove 2009 summer
Emergent Design - ObLove 2009 summerTakuto Wada
 
20151029 ヒカラボ講演資料
20151029 ヒカラボ講演資料20151029 ヒカラボ講演資料
20151029 ヒカラボ講演資料Daisuke Ando
 
株式会社waja 安藤様 登壇資料
株式会社waja 安藤様 登壇資料株式会社waja 安藤様 登壇資料
株式会社waja 安藤様 登壇資料leverages_event
 
テストからより良い組込みソフトウェア開発を考える.pdf
テストからより良い組込みソフトウェア開発を考える.pdfテストからより良い組込みソフトウェア開発を考える.pdf
テストからより良い組込みソフトウェア開発を考える.pdf耕二 阿部
 
20141101渋谷ruby会議
20141101渋谷ruby会議20141101渋谷ruby会議
20141101渋谷ruby会議Fukui Osamu
 

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

Hey It's Not My TDD!
Hey It's Not My TDD!Hey It's Not My TDD!
Hey It's Not My TDD!
 
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
 
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
UnitTestは最もTDDしやすいか否か? #TDDMeetUpUnitTestは最もTDDしやすいか否か? #TDDMeetUp
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
 
Tdd is really dead ?
Tdd is really dead ?Tdd is really dead ?
Tdd is really dead ?
 
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
 
TDDの自殺 #TDDeX
TDDの自殺 #TDDeXTDDの自殺 #TDDeX
TDDの自殺 #TDDeX
 
6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後
 
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hackSue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
 
SeasarCon 2009 White TDD
SeasarCon 2009 White TDDSeasarCon 2009 White TDD
SeasarCon 2009 White TDD
 
LightSwitch で OData
LightSwitch で ODataLightSwitch で OData
LightSwitch で OData
 
JaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッションJaSST'16 Tokyo モバイルセッション
JaSST'16 Tokyo モバイルセッション
 
CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料
 
Windows 365 Enterprise に触れてみよう
Windows 365 Enterprise に触れてみようWindows 365 Enterprise に触れてみよう
Windows 365 Enterprise に触れてみよう
 
Emergent Design - ObLove 2009 summer
Emergent Design - ObLove 2009 summerEmergent Design - ObLove 2009 summer
Emergent Design - ObLove 2009 summer
 
20151029 ヒカラボ講演資料
20151029 ヒカラボ講演資料20151029 ヒカラボ講演資料
20151029 ヒカラボ講演資料
 
株式会社waja 安藤様 登壇資料
株式会社waja 安藤様 登壇資料株式会社waja 安藤様 登壇資料
株式会社waja 安藤様 登壇資料
 
テストからより良い組込みソフトウェア開発を考える.pdf
テストからより良い組込みソフトウェア開発を考える.pdfテストからより良い組込みソフトウェア開発を考える.pdf
テストからより良い組込みソフトウェア開発を考える.pdf
 
保守とDDDと私
保守とDDDと私保守とDDDと私
保守とDDDと私
 
20141101渋谷ruby会議
20141101渋谷ruby会議20141101渋谷ruby会議
20141101渋谷ruby会議
 
SQiPシンポジウムアブストラクト作成のポイント
SQiPシンポジウムアブストラクト作成のポイントSQiPシンポジウムアブストラクト作成のポイント
SQiPシンポジウムアブストラクト作成のポイント
 

Plus de Koichiro Sumi

Siderご紹介スライド@第2回 GitHub Enterprise ユーザ会
Siderご紹介スライド@第2回 GitHub Enterprise ユーザ会Siderご紹介スライド@第2回 GitHub Enterprise ユーザ会
Siderご紹介スライド@第2回 GitHub Enterprise ユーザ会Koichiro Sumi
 
エンジニアが作りたいものを本気で作るための起業という選択肢。レビュー支援サービスSiderの着想から現在、未来 | Rails developers me...
エンジニアが作りたいものを本気で作るための起業という選択肢。レビュー支援サービスSiderの着想から現在、未来 | Rails developers me...エンジニアが作りたいものを本気で作るための起業という選択肢。レビュー支援サービスSiderの着想から現在、未来 | Rails developers me...
エンジニアが作りたいものを本気で作るための起業という選択肢。レビュー支援サービスSiderの着想から現在、未来 | Rails developers me...Koichiro Sumi
 
rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41thrablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41thKoichiro Sumi
 
管理画面の作り方ディスカス 新宿.rb 36th #shinjukurb
管理画面の作り方ディスカス 新宿.rb 36th #shinjukurb管理画面の作り方ディスカス 新宿.rb 36th #shinjukurb
管理画面の作り方ディスカス 新宿.rb 36th #shinjukurbKoichiro Sumi
 
プロトタイプとMVPの開発上のギャップの大きさ。リンスタ関ヶ原 東軍先鋒 #devlove
プロトタイプとMVPの開発上のギャップの大きさ。リンスタ関ヶ原 東軍先鋒 #devloveプロトタイプとMVPの開発上のギャップの大きさ。リンスタ関ヶ原 東軍先鋒 #devlove
プロトタイプとMVPの開発上のギャップの大きさ。リンスタ関ヶ原 東軍先鋒 #devloveKoichiro Sumi
 
ベトナムのホーチミン・ハノイ・ ダナンを1週間見て回った話
ベトナムのホーチミン・ハノイ・ダナンを1週間見て回った話ベトナムのホーチミン・ハノイ・ダナンを1週間見て回った話
ベトナムのホーチミン・ハノイ・ ダナンを1週間見て回った話Koichiro Sumi
 
IVS CTO Night 2015 Winter LT資料 / SideCI
IVS CTO Night 2015 Winter LT資料 / SideCIIVS CTO Night 2015 Winter LT資料 / SideCI
IVS CTO Night 2015 Winter LT資料 / SideCIKoichiro Sumi
 
毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話
毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話
毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話Koichiro Sumi
 
Sidekiq Proを1年ほど使ってみて良かったところ、困ったところ | 新宿.rb 29th #shinjukurb
Sidekiq Proを1年ほど使ってみて良かったところ、困ったところ | 新宿.rb 29th #shinjukurbSidekiq Proを1年ほど使ってみて良かったところ、困ったところ | 新宿.rb 29th #shinjukurb
Sidekiq Proを1年ほど使ってみて良かったところ、困ったところ | 新宿.rb 29th #shinjukurbKoichiro Sumi
 
ActiveResourceモデルによるAPIの隠蔽の怖い話 ~レスポンスタイムへの致命的影響~ at #shinjukurb
ActiveResourceモデルによるAPIの隠蔽の怖い話~レスポンスタイムへの致命的影響~ at #shinjukurbActiveResourceモデルによるAPIの隠蔽の怖い話~レスポンスタイムへの致命的影響~ at #shinjukurb
ActiveResourceモデルによるAPIの隠蔽の怖い話 ~レスポンスタイムへの致命的影響~ at #shinjukurbKoichiro Sumi
 
Ruby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorb
Ruby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorbRuby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorb
Ruby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorbKoichiro Sumi
 
開発メンバーを増やすときの 秩序だったプラクティス with SideCI
開発メンバーを増やすときの秩序だったプラクティス with SideCI開発メンバーを増やすときの秩序だったプラクティス with SideCI
開発メンバーを増やすときの 秩序だったプラクティス with SideCIKoichiro Sumi
 
PHPMD, PHP_CodeSniffer x SideCIによる継続的コードチェック
PHPMD, PHP_CodeSniffer x SideCIによる継続的コードチェックPHPMD, PHP_CodeSniffer x SideCIによる継続的コードチェック
PHPMD, PHP_CodeSniffer x SideCIによる継続的コードチェックKoichiro Sumi
 
CIツールのまとめとSide CI - CIツール勉強会@福岡
CIツールのまとめとSide CI - CIツール勉強会@福岡CIツールのまとめとSide CI - CIツール勉強会@福岡
CIツールのまとめとSide CI - CIツール勉強会@福岡Koichiro Sumi
 
API通信周りの継続的なテストの仕組み~SideCIでの実践~
API通信周りの継続的なテストの仕組み~SideCIでの実践~API通信周りの継続的なテストの仕組み~SideCIでの実践~
API通信周りの継続的なテストの仕組み~SideCIでの実践~Koichiro Sumi
 
Git plus something / Git+何かで更にGitを使いこなす
Git plus something / Git+何かで更にGitを使いこなすGit plus something / Git+何かで更にGitを使いこなす
Git plus something / Git+何かで更にGitを使いこなすKoichiro Sumi
 
ただのSEが初めてArduinoで遊んでみたw(今更 : 品モノラボ #9
ただのSEが初めてArduinoで遊んでみたw(今更 : 品モノラボ #9ただのSEが初めてArduinoで遊んでみたw(今更 : 品モノラボ #9
ただのSEが初めてArduinoで遊んでみたw(今更 : 品モノラボ #9Koichiro Sumi
 
スタートアップの開発体制、流れ POPULAR PATTERN
スタートアップの開発体制、流れ POPULAR PATTERNスタートアップの開発体制、流れ POPULAR PATTERN
スタートアップの開発体制、流れ POPULAR PATTERNKoichiro Sumi
 
CIを取り入れ始めて超楽になったこと
CIを取り入れ始めて超楽になったことCIを取り入れ始めて超楽になったこと
CIを取り入れ始めて超楽になったことKoichiro Sumi
 

Plus de Koichiro Sumi (20)

Siderご紹介スライド@第2回 GitHub Enterprise ユーザ会
Siderご紹介スライド@第2回 GitHub Enterprise ユーザ会Siderご紹介スライド@第2回 GitHub Enterprise ユーザ会
Siderご紹介スライド@第2回 GitHub Enterprise ユーザ会
 
エンジニアが作りたいものを本気で作るための起業という選択肢。レビュー支援サービスSiderの着想から現在、未来 | Rails developers me...
エンジニアが作りたいものを本気で作るための起業という選択肢。レビュー支援サービスSiderの着想から現在、未来 | Rails developers me...エンジニアが作りたいものを本気で作るための起業という選択肢。レビュー支援サービスSiderの着想から現在、未来 | Rails developers me...
エンジニアが作りたいものを本気で作るための起業という選択肢。レビュー支援サービスSiderの着想から現在、未来 | Rails developers me...
 
rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41thrablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
 
管理画面の作り方ディスカス 新宿.rb 36th #shinjukurb
管理画面の作り方ディスカス 新宿.rb 36th #shinjukurb管理画面の作り方ディスカス 新宿.rb 36th #shinjukurb
管理画面の作り方ディスカス 新宿.rb 36th #shinjukurb
 
プロトタイプとMVPの開発上のギャップの大きさ。リンスタ関ヶ原 東軍先鋒 #devlove
プロトタイプとMVPの開発上のギャップの大きさ。リンスタ関ヶ原 東軍先鋒 #devloveプロトタイプとMVPの開発上のギャップの大きさ。リンスタ関ヶ原 東軍先鋒 #devlove
プロトタイプとMVPの開発上のギャップの大きさ。リンスタ関ヶ原 東軍先鋒 #devlove
 
ベトナムのホーチミン・ハノイ・ ダナンを1週間見て回った話
ベトナムのホーチミン・ハノイ・ダナンを1週間見て回った話ベトナムのホーチミン・ハノイ・ダナンを1週間見て回った話
ベトナムのホーチミン・ハノイ・ ダナンを1週間見て回った話
 
IVS CTO Night 2015 Winter LT資料 / SideCI
IVS CTO Night 2015 Winter LT資料 / SideCIIVS CTO Night 2015 Winter LT資料 / SideCI
IVS CTO Night 2015 Winter LT資料 / SideCI
 
毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話
毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話
毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話
 
Sidekiq Proを1年ほど使ってみて良かったところ、困ったところ | 新宿.rb 29th #shinjukurb
Sidekiq Proを1年ほど使ってみて良かったところ、困ったところ | 新宿.rb 29th #shinjukurbSidekiq Proを1年ほど使ってみて良かったところ、困ったところ | 新宿.rb 29th #shinjukurb
Sidekiq Proを1年ほど使ってみて良かったところ、困ったところ | 新宿.rb 29th #shinjukurb
 
ActiveResourceモデルによるAPIの隠蔽の怖い話 ~レスポンスタイムへの致命的影響~ at #shinjukurb
ActiveResourceモデルによるAPIの隠蔽の怖い話~レスポンスタイムへの致命的影響~ at #shinjukurbActiveResourceモデルによるAPIの隠蔽の怖い話~レスポンスタイムへの致命的影響~ at #shinjukurb
ActiveResourceモデルによるAPIの隠蔽の怖い話 ~レスポンスタイムへの致命的影響~ at #shinjukurb
 
Ruby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorb
Ruby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorbRuby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorb
Ruby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorb
 
開発メンバーを増やすときの 秩序だったプラクティス with SideCI
開発メンバーを増やすときの秩序だったプラクティス with SideCI開発メンバーを増やすときの秩序だったプラクティス with SideCI
開発メンバーを増やすときの 秩序だったプラクティス with SideCI
 
PHPMD, PHP_CodeSniffer x SideCIによる継続的コードチェック
PHPMD, PHP_CodeSniffer x SideCIによる継続的コードチェックPHPMD, PHP_CodeSniffer x SideCIによる継続的コードチェック
PHPMD, PHP_CodeSniffer x SideCIによる継続的コードチェック
 
CIツールのまとめとSide CI - CIツール勉強会@福岡
CIツールのまとめとSide CI - CIツール勉強会@福岡CIツールのまとめとSide CI - CIツール勉強会@福岡
CIツールのまとめとSide CI - CIツール勉強会@福岡
 
API通信周りの継続的なテストの仕組み~SideCIでの実践~
API通信周りの継続的なテストの仕組み~SideCIでの実践~API通信周りの継続的なテストの仕組み~SideCIでの実践~
API通信周りの継続的なテストの仕組み~SideCIでの実践~
 
Git plus something / Git+何かで更にGitを使いこなす
Git plus something / Git+何かで更にGitを使いこなすGit plus something / Git+何かで更にGitを使いこなす
Git plus something / Git+何かで更にGitを使いこなす
 
About SideCI
About SideCIAbout SideCI
About SideCI
 
ただのSEが初めてArduinoで遊んでみたw(今更 : 品モノラボ #9
ただのSEが初めてArduinoで遊んでみたw(今更 : 品モノラボ #9ただのSEが初めてArduinoで遊んでみたw(今更 : 品モノラボ #9
ただのSEが初めてArduinoで遊んでみたw(今更 : 品モノラボ #9
 
スタートアップの開発体制、流れ POPULAR PATTERN
スタートアップの開発体制、流れ POPULAR PATTERNスタートアップの開発体制、流れ POPULAR PATTERN
スタートアップの開発体制、流れ POPULAR PATTERN
 
CIを取り入れ始めて超楽になったこと
CIを取り入れ始めて超楽になったことCIを取り入れ始めて超楽になったこと
CIを取り入れ始めて超楽になったこと
 

Dernier

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 

Dernier (10)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

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

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