Submit Search
地獄Spec
May 9, 2012
22 likes
4,644 views
Tsunenori Oohara
Railsだったり勉強会 地獄のRspec
Read less
Read more
1 of 46
Download now
Downloaded 40 times
Recommended
「RSpec初心者に送るRSpec最強チュートリアル」発表資料 #sg_study
「RSpec初心者に送るRSpec最強チュートリアル」発表資料 #sg_study
Junichi Ito
「RSpec初心者に送るRSpec最強チュートリアル ~RubyMineもあるよ!~ SonicGarden Study #08 (http://sonicgarden.doorkeeper.jp/events/9696)」で使用した発表資料です。 ライブコーディングで使用した教材は以下になります。 https://leanpub.com/everydayrailsrspec-jp https://github.com/everydayrails/rspec_rails_4
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
Go Sueyoshi (a.k.a sue445)
第一回 目黒スタートアップ勉強会(仮) の飛び入りLTで話した資料です http://connpass.com/event/14407/
gemの複数バージョンカジュアルテスト #shibuyarb
gemの複数バージョンカジュアルテスト #shibuyarb
Go Sueyoshi (a.k.a sue445)
渋谷.rb[:20150520] ( https://shibuyarb.doorkeeper.jp/events/24871 ) のLT資料です 【ブログ版】http://sue445.hatenablog.com/entry/2015/05/20/212000
SIG-Audio#13 アンケート集計結果
SIG-Audio#13 アンケート集計結果
IGDA Japan SIG-Audio
SIG-Audio#13 アンケート集計結果
Arduino系IDE設定切替ツール inoSwitch
Arduino系IDE設定切替ツール inoSwitch
Bizan Nishimura
Arduino系IDEの設定を切り替えるツールです。
Gunmaweb #9 LT
Gunmaweb #9 LT
Makoto Yonezawa
すごいタスク管理(仮)
すごいタスク管理(仮)
Kakigi Katuyuki
LT駆動開発13
「仙台ミラソン」行って来た
「仙台ミラソン」行って来た
Hirokazu Tokuno
オープンデータカフェ会津 vol.8(ファイナル)での発表資料 仙台ミラソンへの参加報告です。
Reinvent first-participation-report
Reinvent first-participation-report
j3miyake
2018/12/7 Tech-in re:Cap & re:Invent初参加報告会の資料です。
再帰、漸化式、差分方程式とアルゴリズム Gx#20
再帰、漸化式、差分方程式とアルゴリズム Gx#20
鉄次 尾形
2015/12/4に行われた Gaiaxグループエンジニア勉強会 #20 で発表したトークのスライドです。
Scala.js
Scala.js
ke-m kamekoopa
結婚記念LT用
from_beginner_to_engineer
from_beginner_to_engineer
Yuka Tokuyama
文系女子がエンジニアになったやつ
RStudioでRをはじめよう(R for Beginner using RStudio)
RStudioでRをはじめよう(R for Beginner using RStudio)
Takashi Minoda
Rを使いはじめたばかりの方を対象にRStudioの簡単な使い方をご紹介。 Introduction to beginner for R using RStudio.
私が見てきたあるセカイの物語 Part I & II
私が見てきたあるセカイの物語 Part I & II
Koichi ITO
表参道.rb #1 (http://omotesandorb.connpass.com/event/14973/)
コンテナー型仮想環境の情報交換会
コンテナー型仮想環境の情報交換会
Naotaka Jay HOTTA
コンテナー型仮想環境でシステムを構築を構築しようと考えている人は、カノジョが喜ぶことをするための時間を作るために、監視はDatadogでを使っちゃいましょうというはなし。 カノジョに取っては、プロメテウスも、ザビックスも、センスも、必要ない。彼氏が自分の嬉しいと思うことに時間を使ってくれるのが一番好き。
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
Seiichiro Ishida
OSC北海道2012ランチョンLT「俺のZabbixがこんなに可愛いわけがない~北海道巡業編~」のスライドです。 OSC北海道: http://www.ospn.jp/osc2012-do/ ランチョンLT Ust: http://www.ustream.tv/recorded/23342457 (最後のセッションです) サーバ擬人化ユーザ会: https://sites.google.com/site/sgijinka/home
Introduction r (R入門)
Introduction r (R入門)
Takashi Minoda
Tokyo.R #91 初心者セッションでの資料。Rの特徴をサラッと説明してる
IT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipm
鉄次 尾形
2013年4月6日に行われた Hachioji.pm#27 の「1枚LT」でトークした際のスライドです。
Fluentd,mongo db,rでお手軽ログ解析環境
Fluentd,mongo db,rでお手軽ログ解析環境
Michitaka Iida
第30回R勉強会@東京(#TokyoR)でのLT資料
Java one 2013 sf 報告会lt
Java one 2013 sf 報告会lt
torutk
ガンダムから学ぶプログラマの心構え
ガンダムから学ぶプログラマの心構え
Yuuki Ooguro
11/11 第2回 ガンダム勉強会@関西で発表した資料です。
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
Drecom Co., Ltd.
@tokorotenによるRails勉強会でPythonの話をするテロ。データマイニングについてのゆるいお話。 以下のプレゼンと同様の内容になります。 http://www.slideshare.net/TokorotenNakayama/rubypythonista3
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
Tokoroten Nakayama
Rails勉強会でRailsにまったく関係ない話をするテロ。
iPhoneアプリ無料勉強会 vol1
iPhoneアプリ無料勉強会 vol1
codeal
【エンジニアインターン】3回完結! iPhoneアプリ無料勉強会の第一回目の講習内容です。iPhoneアプリにおける広告の種類や、マネタイズのための手法を解説しています。
Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-
Hiroki Sakamoto
Tokyo r30 beginner
Tokyo r30 beginner
Takashi Minoda
java-ja TDD 2nd
java-ja TDD 2nd
Takuto Wada
RSpecが遅いからはやくしてみた...................................
RSpecが遅いからはやくしてみた...................................
yutonoda2
ltスライド
Tokyo r38
Tokyo r38
Takashi Minoda
初心者のためのRの使い方
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Go Sueyoshi (a.k.a sue445)
関西ソーシャルゲーム勉強会・2014夏 - 関西ソーシャルゲーム勉強会 Doorkeeper ( http://ksgs.doorkeeper.jp/events/11635 ) で発表した資料です Blog: http://sue445.hatenablog.com/entry/2014/07/12/204741
More Related Content
What's hot
(13)
Reinvent first-participation-report
Reinvent first-participation-report
j3miyake
2018/12/7 Tech-in re:Cap & re:Invent初参加報告会の資料です。
再帰、漸化式、差分方程式とアルゴリズム Gx#20
再帰、漸化式、差分方程式とアルゴリズム Gx#20
鉄次 尾形
2015/12/4に行われた Gaiaxグループエンジニア勉強会 #20 で発表したトークのスライドです。
Scala.js
Scala.js
ke-m kamekoopa
結婚記念LT用
from_beginner_to_engineer
from_beginner_to_engineer
Yuka Tokuyama
文系女子がエンジニアになったやつ
RStudioでRをはじめよう(R for Beginner using RStudio)
RStudioでRをはじめよう(R for Beginner using RStudio)
Takashi Minoda
Rを使いはじめたばかりの方を対象にRStudioの簡単な使い方をご紹介。 Introduction to beginner for R using RStudio.
私が見てきたあるセカイの物語 Part I & II
私が見てきたあるセカイの物語 Part I & II
Koichi ITO
表参道.rb #1 (http://omotesandorb.connpass.com/event/14973/)
コンテナー型仮想環境の情報交換会
コンテナー型仮想環境の情報交換会
Naotaka Jay HOTTA
コンテナー型仮想環境でシステムを構築を構築しようと考えている人は、カノジョが喜ぶことをするための時間を作るために、監視はDatadogでを使っちゃいましょうというはなし。 カノジョに取っては、プロメテウスも、ザビックスも、センスも、必要ない。彼氏が自分の嬉しいと思うことに時間を使ってくれるのが一番好き。
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
Seiichiro Ishida
OSC北海道2012ランチョンLT「俺のZabbixがこんなに可愛いわけがない~北海道巡業編~」のスライドです。 OSC北海道: http://www.ospn.jp/osc2012-do/ ランチョンLT Ust: http://www.ustream.tv/recorded/23342457 (最後のセッションです) サーバ擬人化ユーザ会: https://sites.google.com/site/sgijinka/home
Introduction r (R入門)
Introduction r (R入門)
Takashi Minoda
Tokyo.R #91 初心者セッションでの資料。Rの特徴をサラッと説明してる
IT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipm
鉄次 尾形
2013年4月6日に行われた Hachioji.pm#27 の「1枚LT」でトークした際のスライドです。
Fluentd,mongo db,rでお手軽ログ解析環境
Fluentd,mongo db,rでお手軽ログ解析環境
Michitaka Iida
第30回R勉強会@東京(#TokyoR)でのLT資料
Java one 2013 sf 報告会lt
Java one 2013 sf 報告会lt
torutk
ガンダムから学ぶプログラマの心構え
ガンダムから学ぶプログラマの心構え
Yuuki Ooguro
11/11 第2回 ガンダム勉強会@関西で発表した資料です。
Reinvent first-participation-report
Reinvent first-participation-report
j3miyake
再帰、漸化式、差分方程式とアルゴリズム Gx#20
再帰、漸化式、差分方程式とアルゴリズム Gx#20
鉄次 尾形
Scala.js
Scala.js
ke-m kamekoopa
from_beginner_to_engineer
from_beginner_to_engineer
Yuka Tokuyama
RStudioでRをはじめよう(R for Beginner using RStudio)
RStudioでRをはじめよう(R for Beginner using RStudio)
Takashi Minoda
私が見てきたあるセカイの物語 Part I & II
私が見てきたあるセカイの物語 Part I & II
Koichi ITO
コンテナー型仮想環境の情報交換会
コンテナー型仮想環境の情報交換会
Naotaka Jay HOTTA
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
Seiichiro Ishida
Introduction r (R入門)
Introduction r (R入門)
Takashi Minoda
IT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipm
鉄次 尾形
Fluentd,mongo db,rでお手軽ログ解析環境
Fluentd,mongo db,rでお手軽ログ解析環境
Michitaka Iida
Java one 2013 sf 報告会lt
Java one 2013 sf 報告会lt
torutk
ガンダムから学ぶプログラマの心構え
ガンダムから学ぶプログラマの心構え
Yuuki Ooguro
Similar to 地獄Spec
(20)
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
Drecom Co., Ltd.
@tokorotenによるRails勉強会でPythonの話をするテロ。データマイニングについてのゆるいお話。 以下のプレゼンと同様の内容になります。 http://www.slideshare.net/TokorotenNakayama/rubypythonista3
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
Tokoroten Nakayama
Rails勉強会でRailsにまったく関係ない話をするテロ。
iPhoneアプリ無料勉強会 vol1
iPhoneアプリ無料勉強会 vol1
codeal
【エンジニアインターン】3回完結! iPhoneアプリ無料勉強会の第一回目の講習内容です。iPhoneアプリにおける広告の種類や、マネタイズのための手法を解説しています。
Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-
Hiroki Sakamoto
Tokyo r30 beginner
Tokyo r30 beginner
Takashi Minoda
java-ja TDD 2nd
java-ja TDD 2nd
Takuto Wada
RSpecが遅いからはやくしてみた...................................
RSpecが遅いからはやくしてみた...................................
yutonoda2
ltスライド
Tokyo r38
Tokyo r38
Takashi Minoda
初心者のためのRの使い方
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Go Sueyoshi (a.k.a sue445)
関西ソーシャルゲーム勉強会・2014夏 - 関西ソーシャルゲーム勉強会 Doorkeeper ( http://ksgs.doorkeeper.jp/events/11635 ) で発表した資料です Blog: http://sue445.hatenablog.com/entry/2014/07/12/204741
1ヶ月で作り切る!スタートアップのための Rails 爆速開発術 (20170306)
1ヶ月で作り切る!スタートアップのための Rails 爆速開発術 (20170306)
Masataka Sato
スタートアップでは意思決定の速さからわりとリーンにサービスを作るケースが多いと思います。その中でも、管理画面を先に作ることで CRUD が早くなるため、テストをしやすくしたり、オペレーションでカバーしやすくなります。 カスタマイズ性が少し減りますが、最初のリリース前やリリースしてすぐのケースだと ActiveAdmin などのツールが有効ではないかという提案です。
PreadNet
PreadNet
Junya Kuwada
PredNet on Chainer https://github.com/quadjr/PredNet
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
Hiroyuki Ohnaka
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
OpenJDKのコミッタってどんなことしたらなったの? 解決してきた技術課題の事例から見えてくる必要な知識と技術 (JJUG CCC 2023 Spring) 2023年6月4日(日) NTT データ 技術開発本部 阪田 浩一
Redmineプラグイン導入・開発入門
Redmineプラグイン導入・開発入門
Minoru Maeda
2015年10月02日に開催された「第2回Redmineセミナー 〜利用事例紹介とプラグイン入門〜」で講演した資料です。 イベントURL: http://sanin.itradar.biz/news/2015/09/redmine-seminar-2/
RubyKaigi2011の雰囲気
RubyKaigi2011の雰囲気
Sea Mountain
Infrastructure as Codeってなんだったっけ?
Infrastructure as Codeってなんだったっけ?
Terui Masashi
2016.07.22 - Infrastructure as Code Casual 札幌 2016夏
こんな辛いテストはいやだ
こんな辛いテストはいやだ
Takuya Mikami
社内LTで発表した、テストにまつわるお話の資料です
ソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle).pdf
ソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle).pdf
耕二 阿部
2023/7/20(木)社内勉強会、2023/7/21(金)Twitterスペースの資料です。 学習の振り返り・深掘りにZennのスクラップを用意しました。ご利用ください。 https://zenn.dev/k_abe/scraps/9533a6f533dd8a
第1回 Android勉強会
第1回 Android勉強会
fujikunn
勉強会 第1段
OSC2013 HIROSHIMA ライトニングトーク すごい広島
OSC2013 HIROSHIMA ライトニングトーク すごい広島
Tomohiko Himura
OSC 2013 HIROSHIMA でのライトニングトーク。もっとつくりこめばよかったと後悔している。 http://www.ospn.jp/osc2013-hiroshima/
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
Drecom Co., Ltd.
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
Tokoroten Nakayama
iPhoneアプリ無料勉強会 vol1
iPhoneアプリ無料勉強会 vol1
codeal
Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-
Hiroki Sakamoto
Tokyo r30 beginner
Tokyo r30 beginner
Takashi Minoda
java-ja TDD 2nd
java-ja TDD 2nd
Takuto Wada
RSpecが遅いからはやくしてみた...................................
RSpecが遅いからはやくしてみた...................................
yutonoda2
Tokyo r38
Tokyo r38
Takashi Minoda
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Go Sueyoshi (a.k.a sue445)
1ヶ月で作り切る!スタートアップのための Rails 爆速開発術 (20170306)
1ヶ月で作り切る!スタートアップのための Rails 爆速開発術 (20170306)
Masataka Sato
PreadNet
PreadNet
Junya Kuwada
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
Hiroyuki Ohnaka
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
Redmineプラグイン導入・開発入門
Redmineプラグイン導入・開発入門
Minoru Maeda
RubyKaigi2011の雰囲気
RubyKaigi2011の雰囲気
Sea Mountain
Infrastructure as Codeってなんだったっけ?
Infrastructure as Codeってなんだったっけ?
Terui Masashi
こんな辛いテストはいやだ
こんな辛いテストはいやだ
Takuya Mikami
ソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle).pdf
ソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle).pdf
耕二 阿部
第1回 Android勉強会
第1回 Android勉強会
fujikunn
OSC2013 HIROSHIMA ライトニングトーク すごい広島
OSC2013 HIROSHIMA ライトニングトーク すごい広島
Tomohiko Himura
More from Tsunenori Oohara
(20)
Elixirハンズオン2
Elixirハンズオン2
Tsunenori Oohara
elixir handson #2
meguro.rb LT
meguro.rb LT
Tsunenori Oohara
meguro.rb LT
Elixir解答
Elixir解答
Tsunenori Oohara
四則演算パーサー解答例
Elixir言語紹介
Elixir言語紹介
Tsunenori Oohara
LL2017 in ODC
パンチラに関する考察
パンチラに関する考察
Tsunenori Oohara
パンチラ
how-to-learn-elixir
how-to-learn-elixir
Tsunenori Oohara
how to learn elixir
Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486
Tsunenori Oohara
ElixirConfJapan ohr486
Elixirハンズオン-2017-03-11
Elixirハンズオン-2017-03-11
Tsunenori Oohara
Elixirハンズオン elixir概要
Re:デブ デブナイト vol.2 LT
Re:デブ デブナイト vol.2 LT
Tsunenori Oohara
デブナイト vol.2 LT
失敗という概念が存在しない退屈なweb開発
失敗という概念が存在しない退屈なweb開発
Tsunenori Oohara
失敗Night
Tokyoex6 EEx
Tokyoex6 EEx
Tsunenori Oohara
tokyo.ex EEx
running-elixir-in-production
running-elixir-in-production
Tsunenori Oohara
rubysapporo.beam
hello waf, hello phoenix
hello waf, hello phoenix
Tsunenori Oohara
tokyo.ex #5
tokyo.ex3 LT
tokyo.ex3 LT
Tsunenori Oohara
from beam-lang.tokyo
running web app on elixir
running web app on elixir
Tsunenori Oohara
tokyo.ex #2
Elixir lang bootstrap
Elixir lang bootstrap
Tsunenori Oohara
tokyo.ex #1 LT
Elixirと他言語の比較的紹介ver.2
Elixirと他言語の比較的紹介ver.2
Tsunenori Oohara
ElixirMeetup#2
Elixirについて私が知ってる二、三の事柄
Elixirについて私が知ってる二、三の事柄
Tsunenori Oohara
歌舞伎座Tech9 言語勉強会 elixir枠
elixir in production
elixir in production
Tsunenori Oohara
Elixir Meetup #1 in Drecom
地獄のElixir(目黒スタートアップ勉強会)
地獄のElixir(目黒スタートアップ勉強会)
Tsunenori Oohara
Elixirの紹介
Elixirハンズオン2
Elixirハンズオン2
Tsunenori Oohara
meguro.rb LT
meguro.rb LT
Tsunenori Oohara
Elixir解答
Elixir解答
Tsunenori Oohara
Elixir言語紹介
Elixir言語紹介
Tsunenori Oohara
パンチラに関する考察
パンチラに関する考察
Tsunenori Oohara
how-to-learn-elixir
how-to-learn-elixir
Tsunenori Oohara
Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486
Tsunenori Oohara
Elixirハンズオン-2017-03-11
Elixirハンズオン-2017-03-11
Tsunenori Oohara
Re:デブ デブナイト vol.2 LT
Re:デブ デブナイト vol.2 LT
Tsunenori Oohara
失敗という概念が存在しない退屈なweb開発
失敗という概念が存在しない退屈なweb開発
Tsunenori Oohara
Tokyoex6 EEx
Tokyoex6 EEx
Tsunenori Oohara
running-elixir-in-production
running-elixir-in-production
Tsunenori Oohara
hello waf, hello phoenix
hello waf, hello phoenix
Tsunenori Oohara
tokyo.ex3 LT
tokyo.ex3 LT
Tsunenori Oohara
running web app on elixir
running web app on elixir
Tsunenori Oohara
Elixir lang bootstrap
Elixir lang bootstrap
Tsunenori Oohara
Elixirと他言語の比較的紹介ver.2
Elixirと他言語の比較的紹介ver.2
Tsunenori Oohara
Elixirについて私が知ってる二、三の事柄
Elixirについて私が知ってる二、三の事柄
Tsunenori Oohara
elixir in production
elixir in production
Tsunenori Oohara
地獄のElixir(目黒スタートアップ勉強会)
地獄のElixir(目黒スタートアップ勉強会)
Tsunenori Oohara
地獄Spec
1.
地獄の RSpec 逃げちゃだめだ、逃げちゃだめだ・・・
おおはら@Drecom Co., Ltd.
2.
警告 このプレゼンを見てから7日以内にspecヲ 20コGreenにしないといけません。さもなくば 貴方のプロジェクトは炎上し、メンバーは 疲れ果て疾走し行方不明になる可能性 があります。 貴方のプロジェクト、大丈夫ですか・・・?
3.
提供 DRECOM
R With entertainment
4.
自己紹介 おおはらつねのり アプリケーションエンジニア 所属:広告事業本部 twitterアカウント:@ohrdev
5.
経歴 Rails歴:2年半 札幌の会社からドリコムへ転職 元SIer(元IT亡者) ソーシャルゲームはヤった事ない(シゴトハノゾク)
7.
今日の おはなし
8.
テスト
9.
RSpec
10.
質問1 spec
11.
何
緑 時 赤 最 初 気 。 。
12.
グリーン維 持は大変
13.
質問2 グリーン維 持してる?
14.
理想的な プロジェクト なら・・・
16.
だが現実は キビシイ・・・
18.
現実
20.
うちのシステ ムでRSPEC導 入した時の話
21.
組織(広告事業部)
企画 営業 開発 受注 クライアント カスタマー サポート
22.
サービス(poncan) ソーシャルアプリ向けリワード広告サービス http://www.slideshare.net/CyLab/poncan2 リワード広告とは: ユーザーに広告を提供し、その成果に対して 一定の報酬(ポイント等)を支払うサービス
23.
システム(poncan) Rails2.3.8 + passenger Ruby1.8.7 MySQL5 Memcached(acts_as_cached) Resque/Redis
24.
運用 止めれない(サーバー停止のメンテは基本なし) Migrationは使用しない(できない) →openark kit/oak-online-alter-table (1日のリリース:2.1回) (1日コミット数:22.3回) (毎日リリース・毎週機能追加・拡張)
25.
背景 テストコード(メンテされて)なかった リリースまでに(チェックで)時間かかる 漏れや事故が多い
26.
バグ
事故 漏れ poncan 安心感 テストコード(のメンテ)不足
28.
Specを書けよ デコ助野郎!
29.
RSpec
開発メンバー
30.
①導入前の状態 有効なRSpecほぼ無し 自動生成されたtestunitが少々 誰も動かしていない 当然メンテもしていない
31.
②導入直後にやった事 メンテされていないテストコードは削除 -流用できないコード多数 -そもそも仕様が既に変わっている 自動生成されたコードも削除 テスト用データ -fixturesからFactoryGirlに移行
32.
②失敗・教訓(導入直後) とりあえず動くだけでは不十分 -実行時間が長いと流さなくなる 自動で動かさないと忘れる -autotest使うようにした テストデータを全てFactoryGirlで賄うのは面倒 -マスタデータはfixtures
-トランザクションデータはFactoryGirl
33.
③しばらく経って(1週間位)やった事 Specを書く対象を絞った -まずはmodelから書いていく事にした -controllerは後回し
34.
③失敗・教訓(しばらく経って) ビジネスロジック部分をspecの対象にすべきだった -modelだけでは不十分で、(Fat)controller のロジック部分も対象にしないと無意味 万遍なくspecを書こうとして途方に暮れた -全部書く時間ない・モチベーション下がる -修正の入った箇所から充実させていった
35.
④慣れてきた頃(1ヶ月位)にやった事 CIを導入した -手軽なBigTunaを採用 遅い処理の改善 -テストダブル(モック・スタブ)に置き換え -migrationからschema.rb読み込みに変更
36.
④失敗・教訓(慣れてきた頃) CIの失敗通知が続いてREDに慣れてしまった -失敗だけでなく失敗数も通知するようにした -オールグリーンを目標に設定 -だんだんREDが減っていくのを見てモチベ△ メンバー間のspecの書き方に統一性が無くなってきた -勉強会・共有会で書き方をある程度共有 -THE RSPEC BOOK
37.
⑤充実してきた頃(3ヶ月位)にやった事 カバレッジを指標にした -rake spec:rcov テストデータの整理 -モデル(テーブル)数80くらい
38.
⑤失敗・教訓(充実してきた頃) カバレッジは万能じゃない -「レガシーコード=テストの無いコード」なので意 味はあるが・・・ -Reekを取るようにした(お手軽/ReekViewer) https://github.com/Shinya131/reekviewer FactoryGirlがパンクした -factory.rbに全てぶっ込むのではなく、
factoriesフォルダ以下にファイル分割配置 -リレーション指定やりすぎると破綻(メンテ不能)に
39.
⑥グリーンになって(5ヶ月位)にやった事 trunkとbranchに対してそれぞれCIを回した -管理・配信・配信(mixi特化)アプリごとに、そ れぞれ計6つのCIを回す -trunkとbranchの差分を全てチェック(苦行) レッドからグリーンにするではなく、グリーンを維持する
ように目標をシフト
40.
⑥失敗・教訓(グリーンになって) Trunkはグリーンだけど、branchはレッドという状況に -息の長いbranchだと未マージ・マージ漏れが 発生しうる -特定のコードをbranchにマージする・しないで赤
だったり緑だったりするケースがある なるべくtrunkとbranchの差分を小さくするように意 識
41.
⑦そして今に至る・・・
ビフォー
42.
⑦そして今に至る・・・ アフター
43.
結果どうなった? リリース頻度が加速 -漏れ・事故が少なくなった -即リリース・即bug発見・即修正・即リリース・・・ “ある程度”安心できる trunkとbrunchの差分が減った 100%bug潰すのは無理だけど、即発見・修正はでき る
44.
今後 Rails2.3.8から、Rails3.xにVerUp -Jenkins + rvm
+ rails3.x でCI回す もうなにも怖くない(CIまわしてればある程度) Seleniumで面もチェック -目確認は(最低限しか)したくない 引き続きGREEN維持
45.
まとめ RSpecちゃんとしたら、リリース頻度あがった Specメンテ => CI導入
じゃなくて、 CI導入 => Specメンテ ってするとウマく回った BUG潰し・予防よりもBUGの早期発見・早期修正に役 立った BUGは出る時は出る、Rspec/CIは万能じゃないの で注意
46.
ドリコムメンバー募集 ドリコム広告事業本部では、テスト好きなメンバーを 募集しています。 http://www.drecom.co.jp/recruit/