20130831 no ruby no test #kanrk05

Post on 18-Nov-2014

1.168 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

No TestNo Ruby

2013.8.31 関西Ruby会議05

福井修@iR3

13年8月31日土曜日

ルビールビールビーRuby大好き

福井修@iR3

2012 Rubykaja

sendagaya.rb

#七輪life

Ruby関西cofounder2009Ruby会議スタッフ

&スポンサー13年8月31日土曜日

2002年KOFにて Matzを囲む13年8月31日土曜日

るびま42号 テスト記事wrote♪

13年8月31日土曜日

刻言道場「まいトレ」

http://maitore.net/

販売管理・在庫管理システム

株式会社 iRubySystems

13年8月31日土曜日

本日はテストの話

13年8月31日土曜日

タイトルまずはじめに

の話から

13年8月31日土曜日

No Test

No Ruby

13年8月31日土曜日

?

13年8月31日土曜日

さて

13年8月31日土曜日

Rubyなしでは生きていけない

Rubyのない人生なんて

13年8月31日土曜日

2011 最後のRuby会議LT

13年8月31日土曜日

Account会計から逃れられない

11

■,

July 16-18 2011

13年8月31日土曜日

会計なしでは人生は送れない

会計のない人生はない

13年8月31日土曜日

No Test

No Ruby

13年8月31日土曜日

TestなしではRubyはない

TestのないRubyなんて

13年8月31日土曜日

?私はRubyを作っているコミッタ

ではないので ちとひっかかる

なんとなくわからなくはないが

13年8月31日土曜日

テーマを決めたときは「TestなしでRubyで作ったシステムのリリースはない」くらいの意図だった

13年8月31日土曜日

わかりにくいので出直します

13年8月31日土曜日

2013.8.31 関西Ruby会議05

福井修@iR3

No RubyNo Test

13年8月31日土曜日

Test

テストから逃れられない

13 August 31 2013

13年8月31日土曜日

RubyなしではTestはできない

Rubyのないテストなんて

13年8月31日土曜日

!13年8月31日土曜日

テストから検証に「検証自動化」もっと大事!手になじむRuby製のツールをもっと

検証に活用しよう!!

本日の結論

13年8月31日土曜日

TurnipとかCapybaraとかsystemuとかexpectとか

いろいろ

Ruby製のテストや検証に使えるツール

13年8月31日土曜日

ではまず世間のテストツールを鳥瞰

13年8月31日土曜日

出典テストツールの導入状況/キーマンズネットhttp://www.keyman.or.jp/at/dev/debug/30004610/

13年8月31日土曜日

世間ではテストツール導入済みは8.5%

13年8月31日土曜日

単体テストがメイン

テストの記録やレポート

JavaがメインRubyは1.8%

導入されたテストツールの用途

13年8月31日土曜日

テストは大事といいながらテストツールはまだまだこれから

13年8月31日土曜日

テスト自動化STAR Software Testing Automation Research groupテスト自動化研究会

テスト自動化エンジニア Automator という職種

TABOK「自動テストに関する知識体系(BOK)」

「テストツール丸わかりガイド」http://aster.or.jp/business/testtool_wg/pdf/

Testtool_beginningGuide_Version1.0.0.pdf ASTER テストツールWG NPO法人ソフトウェアテスト技術振興協会

13年8月31日土曜日

「テストツール丸わかりガイド」より

13年8月31日土曜日

世間の動向

13年8月31日土曜日

継続的インテグレーション継続的デリバリー

C I13年8月31日土曜日

13年8月31日土曜日

「継続的デリバリー」より

13年8月31日土曜日

DevOps

継続的インテグレーション

継続的デリバリー

13年8月31日土曜日

自論      展開

13年8月31日土曜日

DevOps

DevOpsBiz

DevVerOpsBizVerfication

13年8月31日土曜日

ベリフィケーション 【 verfication 】 と バリデーション 【 validation 】

妥当性を確認する, 実証(する)

(正しいということの)確認; 立証,検証,証明

正しいということを検証するという意味では

ベリフィケーション

が使われる。

13年8月31日土曜日

では「本番系で検証をする」

「テストは開発系でせえよ」となる

というのには違和感

「本番系でテストをする」

というのはどう? →とても納得感あり

そうか「エンドツーエンド回帰テスト」は「エンドツーエンド検証」

と言う方がよさげという気づき!!!

13年8月31日土曜日

開発Dev

運用Ops

検証Ver

開発Dev

運用Ops

正しいということを検証するという

ベリフィケーション を経て受け渡し13年8月31日土曜日

開発Dev

運用Ops

検証Ver

設計→実装→テスト↓↑

ここを俊敏に繰り返し

やるのがAgile

回帰テスト受け入れテストシステムテスト

経営Biz

評価リーン

13年8月31日土曜日

次はエンドツーエンド検証自動化へTurnip

13年8月31日土曜日

念の為に単体テスト・組み合わせテストの話は

TDD/BDD,RSpec,Cucumberの優れた記事をご覧ください

そちらの道しるべには↓がおすすめです「Rspec/Capybara/Turnipの入門記事を

全力でまとめてみた」http://morizyun.github.io/blog/the-rspec-book-

review-rails/

13年8月31日土曜日

エンドツーエンド検証TurnipとCapybaraとJenkins

13年8月31日土曜日

Turnipとは?

feature ファイルと step_definitions ファイルの構成 (Gherkin 書式) を RSpec 内で実行することができるツール(Rspec一本化)

Cucumber の面倒さである正規表現を使用しないという改善(代わりにプレースフォルダ)

13年8月31日土曜日

gherkin書式システムの振る舞いを記述するための自然言語に近い書式のこと。

Business Readable DSLとも呼ばれ、ベタなテストコードにメタな説明 (機能・シナリオ・ステップ) の層 (レイヤ) を付加し、プログラムの実装者でなく第三者や受け入れ者が記述し理解できる (日本語でも記述できる) 道が開かれました。

13年8月31日土曜日

13年8月31日土曜日

検証項目列挙方式

単体テスト項目積み上げボトムアップアプローチ

機能仕様書から掘り下げトップダウンアプローチ

TDD/BDDの成果物

Excelシートテスト設計

13年8月31日土曜日

Excelテストケース .feature ファイル

xx_step.rb ファイル

Excelから文言を抜き出して.featureの骨組みを作るツールは作成可能

step.rbファイルを記述するにはCapybara,RspecのmatcherやWeb操作仕様の詳細を理解しておく必要があり習熟コストはかかる

自動化の肝は、.featureファイルとxx_step.rbファイルの作成

この2種類のファイルさえ作成すれば、ツール群で自動実行可能! ただしxx_step.rbに記述できない処理は当然実行できない

13年8月31日土曜日

Jenkins

検証コンテンツGherkin書式

RSpec

Turnip

xx.feature

xx_steps.rb

Capybara

Spork

Capybara-webkit

Polterguist

selenium

systemu

expect

本番サーバ

ステージングサーバ

エンドツーエンド検証

13年8月31日土曜日

demoサイト

関西Ruby会議05用Rails4 demoサイトhttp://kanrk05.ruby.iijgio.com/zipcodes

MOGOKは速い!

ここにTurnipを使ったエンドツーエンド検証を実施

13年8月31日土曜日

# encoding: utf-8# language: ja機能: 1.画面表示確認 @javascript シナリオ: 1.トップページ確認 前提 対象ページを表示する ならば 'ようこそ 関西Ruby会議05' が表示されていること

view01.feature

13年8月31日土曜日

# encoding: utf-8

require 'capybara/rspec'Capybara.javascript_driver = :webkit

step 'kanrk05サイトにアクセスする' do

Capybara.app_host = "http://kanrk05.ruby.iijgio.com/" Capybara.current_driver = :webkitend

step 'トップページを表示する' do

visit '/'end

step '対象ページを表示する' do

send 'kanrk05サイトにアクセスする'

send 'トップページを表示する'

end

step ":hoge が表示されていること" do |hoge|

expect(page).to have_content hogeend

common_steps.rb

13年8月31日土曜日

## encoding: utf-8# language: ja機能: 2.検索動作確認 @javascript シナリオ: 2.一覧確認 前提 対象ページを表示する かつ 郵便番号一覧 をクリックする ならば Zipcode が表示されていること

view02.feature

13年8月31日土曜日

#encoding: utf-8

step '郵便番号一覧 をクリックする' do

#click_link '郵便番号一覧'

first(:link, '郵便番号一覧').click

end

view2_steps.rb

13年8月31日土曜日

テストの自動化の課題本体や環境(ツールのバージョンアップ

etc.Capybara1→2)の変更に合わせて、テストコードをメンテナンスし続ける必要がある。

自動化の範囲を拡げるには、実装コストがかかる。

 自動化が困難だったり、非常にコストがかかる場合には手動のままとする自動化の範囲の見切りが必要。

13年8月31日土曜日

 テストから検証に「検証自動化」もっと大事!手になじむRuby製のツールをもっと

検証に活用しよう!!

ご清聴ありがとうございました

13年8月31日土曜日

top related