エンドツーエンド検証
をJenkinsで回す話
2013.10.16 at shibuya.rb @iR3

13年10月16日水曜日
ルビールビールビー
Ruby大好き
福井修@iR3
2012 Rubykaja
sendagaya.rb
#七輪life

Ruby関西cofounder
13年10月16日水曜日

2009Ruby会議スタッフ
&スポンサー
結論を先に
• エンドツーエンド検証自動化の波を!
• Gherkin+Capybaraという検証DSLを
Turnipで使うのがよさげ

• Jenkinsでエンドツーエンド検証を回す

13年10月16日水曜日
カジュアルにテストして、
フォーマルに検証する

2013.9.21 toRuby
福井修@iR3
13年10月16日水曜日
経営

評価

Biz

リーン

開発

検証

運用

Dev

Ver

Ops
フォーマル

設計→実装→テスト
↓
↑
ここを俊敏に
繰り返し
やるのがAgile
13年10月16日水曜日

に検証

カジュアル
にテスト
開発

運用

Dev

Ops

開発

検証

運用

Dev

Ver

Ops

正しいということを検証するという
ベリフィケーション を経て受け渡し
13年10月16日水曜日
経営

評価

Biz

リーン

開発

検証

運用

Dev

Ver

Ops
フォーマル

設計→実装→テスト
↓
↑
ここを俊敏に
繰り返し
やるのがAgile
13年10月16日水曜日

に検証

カジュアル
にテスト
DevOps
DevOpsBiz

DevVerOpsBiz
Verfication
13年10月16日水曜日
Andreas Spillner:
“The W-MODEL – Strengthening the Bond Between Development and Test” STAREAST2002

13年10月16日水曜日
高信頼性ソフトウェアのための開発手法ハンドブックより
13年10月16日水曜日
http://www.ipa.go.jp/files/000005144.pdf
13年10月16日水曜日
「継続的デリバリー」より

13年10月16日水曜日
13年10月16日水曜日
経営

評価

Biz

リーン

開発

検証

運用

Dev

Ver

Ops

設計→実装→テスト
↓
↑
ここを俊敏に
繰り返し
やるのがAgile
13年10月16日水曜日

回帰テスト
受け入れテスト
システムテスト
エンドツーエンド検証
TurnipとCapybara

13年10月16日水曜日
Turnipとは?
feature ファイルと step_definitions ファイル
の構成 (Gherkin 書式) を RSpec 内で実行す
ることができるツール(Cucumberを使わない
でRspec一本化できる)
Cucumbe...
13年10月16日水曜日
gherkin書式
システムの振る舞いを記述するための自然言
語に近い書式のこと。
Business Readable DSLとも呼ばれ、ベタなテ
ストコードにメタな説明 (機能・シナリオ・ス
テップ) の層 (レイヤ) を付加し、プログラム
...
demoサイト
関西Ruby会議05用Rails4 demoサイト
高速郵便番号検索
http:/
/kanrk05.ruby.iijgio.com/zipcodes
MOGOKは速い!
mogokでRails4は使える!
mogok無料枠美味...
view01.feature
# encoding: utf-8
# language: ja
機能: 1.画面表示確認
シナリオ: 1.トップページ確認
前提 対象ページを表示する
ならば 'ようこそ 関西Ruby会議05' が表示されて
い...
# encoding: utf-8

common_steps.rb

require 'capybara/rspec'
Capybara.javascript_driver = :webkit
step 'kanrk05サイトにアクセスする'...
エンドツーエンド検証の実行
エンドツーエンド検証スクリプトを個別に実行

$ rspec -r turnip/rspec --drb
spec/features/xxxxx.feature

13年10月16日水曜日
Turnip入門のソースコード
https:/
/github.com/ir3/e2etest

13年10月16日水曜日
エンドツーエンド検証
検証コンテンツ
Gherkin書式
xx.
feature

xx_steps
.rb

本番サーバ
expect

systemu
Turnip
Polterguist

Capybara

selenium

Jenk...
Jenkinsインストール
Mac
$ brew install jenkins
CentOS
まずJava
$ sudo yum -y install java-1.7.0-openjdk
次にJenkins
$ sudo yum insta...
Jenkins稼動
Mac で都度起動
$ java -jar /usr/local/opt/jenkins/libexec/jenkins.war
CentOSで常時起動
環境変数に追加
export JENKINS_HOME=/var/li...
新規作成

13年10月16日水曜日
命名

13年10月16日水曜日
13年10月16日水曜日
設定

13年10月16日水曜日
13年10月16日水曜日
13年10月16日水曜日
sporkにてRailsをプレロードしている前提でdrb経由
rspec からfeatureファイルの実行を指示

オプションは.rspecで指定できるがあえて個

別指定する。 ビルド(テスト)を並列実行す
る場合はsporkのポート番号を変...
出来上がり
13年10月16日水曜日
Jenkinsビルド要求前に

spork でRailsをプレロード
$ spork rspec

~/e2etest
Using RSpec, Unknown
Loading Spork.prefork block...
Spork is r...
実行要求

13年10月16日水曜日
おまけ DSL 7レンジャー
Rails,sinatraはWebのDSL
RSpecはテストのDSL
ChefはシステムアドミストレーションのDSL
Fluentdはマシン間配送のDSL
+
Gherkinは仕様記述DSL
Capybaraはe...
ご清聴ありがとうございました
• エンドツーエンド検証自動化の波を!
• Gherkin+Capybaraという検証DSLを
Turnipで使うのがよさげ

• Jenkinsでエンドツーエンド検証を回す

13年10月16日水曜日
Upcoming SlideShare
Loading in …5
×

20131016 エンドツーエンド検証をJenkinsで回す話 #shibuyarb

2,199 views

Published on

・エンドツーエンド検証自動化の波を!
・Gherkin+Capybaraという検証DSLをTurnipで使うのがよさげ
・Jenkinsでエンドツーエンド検証を回す

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,199
On SlideShare
0
From Embeds
0
Number of Embeds
66
Actions
Shares
0
Downloads
12
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

20131016 エンドツーエンド検証をJenkinsで回す話 #shibuyarb

  1. 1. エンドツーエンド検証 をJenkinsで回す話 2013.10.16 at shibuya.rb @iR3 13年10月16日水曜日
  2. 2. ルビールビールビー Ruby大好き 福井修@iR3 2012 Rubykaja sendagaya.rb #七輪life Ruby関西cofounder 13年10月16日水曜日 2009Ruby会議スタッフ &スポンサー
  3. 3. 結論を先に • エンドツーエンド検証自動化の波を! • Gherkin+Capybaraという検証DSLを Turnipで使うのがよさげ • Jenkinsでエンドツーエンド検証を回す 13年10月16日水曜日
  4. 4. カジュアルにテストして、 フォーマルに検証する 2013.9.21 toRuby 福井修@iR3 13年10月16日水曜日
  5. 5. 経営 評価 Biz リーン 開発 検証 運用 Dev Ver Ops フォーマル 設計→実装→テスト ↓ ↑ ここを俊敏に 繰り返し やるのがAgile 13年10月16日水曜日 に検証 カジュアル にテスト
  6. 6. 開発 運用 Dev Ops 開発 検証 運用 Dev Ver Ops 正しいということを検証するという ベリフィケーション を経て受け渡し 13年10月16日水曜日
  7. 7. 経営 評価 Biz リーン 開発 検証 運用 Dev Ver Ops フォーマル 設計→実装→テスト ↓ ↑ ここを俊敏に 繰り返し やるのがAgile 13年10月16日水曜日 に検証 カジュアル にテスト
  8. 8. DevOps DevOpsBiz DevVerOpsBiz Verfication 13年10月16日水曜日
  9. 9. Andreas Spillner: “The W-MODEL – Strengthening the Bond Between Development and Test” STAREAST2002 13年10月16日水曜日
  10. 10. 高信頼性ソフトウェアのための開発手法ハンドブックより 13年10月16日水曜日
  11. 11. http://www.ipa.go.jp/files/000005144.pdf 13年10月16日水曜日
  12. 12. 「継続的デリバリー」より 13年10月16日水曜日
  13. 13. 13年10月16日水曜日
  14. 14. 経営 評価 Biz リーン 開発 検証 運用 Dev Ver Ops 設計→実装→テスト ↓ ↑ ここを俊敏に 繰り返し やるのがAgile 13年10月16日水曜日 回帰テスト 受け入れテスト システムテスト
  15. 15. エンドツーエンド検証 TurnipとCapybara 13年10月16日水曜日
  16. 16. Turnipとは? feature ファイルと step_definitions ファイル の構成 (Gherkin 書式) を RSpec 内で実行す ることができるツール(Cucumberを使わない でRspec一本化できる) Cucumber の面倒さである正規表現を使用し ないという改善(代わりにプレースフォルダ) 13年10月16日水曜日
  17. 17. 13年10月16日水曜日
  18. 18. gherkin書式 システムの振る舞いを記述するための自然言 語に近い書式のこと。 Business Readable DSLとも呼ばれ、ベタなテ ストコードにメタな説明 (機能・シナリオ・ス テップ) の層 (レイヤ) を付加し、プログラム の実装者でなく第三者や受け入れ者が記述し 理解できる (日本語でも記述できる) 道が開か れました。 13年10月16日水曜日
  19. 19. demoサイト 関西Ruby会議05用Rails4 demoサイト 高速郵便番号検索 http:/ /kanrk05.ruby.iijgio.com/zipcodes MOGOKは速い! mogokでRails4は使える! mogok無料枠美味しい!!! 13年10月16日水曜日
  20. 20. view01.feature # encoding: utf-8 # language: ja 機能: 1.画面表示確認 シナリオ: 1.トップページ確認 前提 対象ページを表示する ならば 'ようこそ 関西Ruby会議05' が表示されて いること 13年10月16日水曜日
  21. 21. # encoding: utf-8 common_steps.rb require 'capybara/rspec' Capybara.javascript_driver = :webkit step 'kanrk05サイトにアクセスする' do Capybara.app_host = "http:/ /kanrk05.ruby.iijgio.com/" Capybara.current_driver = :webkit end step 'トップページを表示する' do visit '/' end step '対象ページを表示する' do send 'kanrk05サイトにアクセスする' send 'トップページを表示する' end step ":hoge が表示されていること" do |hoge| expect(page).to have_content hoge end 13年10月16日水曜日
  22. 22. エンドツーエンド検証の実行 エンドツーエンド検証スクリプトを個別に実行 $ rspec -r turnip/rspec --drb spec/features/xxxxx.feature 13年10月16日水曜日
  23. 23. Turnip入門のソースコード https:/ /github.com/ir3/e2etest 13年10月16日水曜日
  24. 24. エンドツーエンド検証 検証コンテンツ Gherkin書式 xx. feature xx_steps .rb 本番サーバ expect systemu Turnip Polterguist Capybara selenium Jenkins RSpec Spork 13年10月16日水曜日 Capybarawebkit ステージング サーバ
  25. 25. Jenkinsインストール Mac $ brew install jenkins CentOS まずJava $ sudo yum -y install java-1.7.0-openjdk 次にJenkins $ sudo yum install -y jenkins 13年10月16日水曜日
  26. 26. Jenkins稼動 Mac で都度起動 $ java -jar /usr/local/opt/jenkins/libexec/jenkins.war CentOSで常時起動 環境変数に追加 export JENKINS_HOME=/var/lib/jenkins 自動起動 # chkconfig jenkins on 13年10月16日水曜日
  27. 27. 新規作成 13年10月16日水曜日
  28. 28. 命名 13年10月16日水曜日
  29. 29. 13年10月16日水曜日
  30. 30. 設定 13年10月16日水曜日
  31. 31. 13年10月16日水曜日
  32. 32. 13年10月16日水曜日
  33. 33. sporkにてRailsをプレロードしている前提でdrb経由 rspec からfeatureファイルの実行を指示 オプションは.rspecで指定できるがあえて個 別指定する。 ビルド(テスト)を並列実行す る場合はsporkのポート番号を変える為。 13年10月16日水曜日
  34. 34. 出来上がり 13年10月16日水曜日
  35. 35. Jenkinsビルド要求前に spork でRailsをプレロード $ spork rspec ~/e2etest Using RSpec, Unknown Loading Spork.prefork block... Spork is ready and listening on 8989! 13年10月16日水曜日
  36. 36. 実行要求 13年10月16日水曜日
  37. 37. おまけ DSL 7レンジャー Rails,sinatraはWebのDSL RSpecはテストのDSL ChefはシステムアドミストレーションのDSL Fluentdはマシン間配送のDSL + Gherkinは仕様記述DSL Capybaraはe2e検証のDSL 13年10月16日水曜日
  38. 38. ご清聴ありがとうございました • エンドツーエンド検証自動化の波を! • Gherkin+Capybaraという検証DSLを Turnipで使うのがよさげ • Jenkinsでエンドツーエンド検証を回す 13年10月16日水曜日

×