SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Downloaden Sie, um offline zu lesen
No Test
No Ruby
2013.8.31 関西Ruby会議05
福井修@iR3
13年8月31日土曜日
ルビールビールビー
Ruby大好き
福井修@iR3
2012 Rubykaja
sendagaya.rb
#七輪life
Ruby関西cofounder
2009Ruby会議スタッフ
&スポンサー
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 Ruby
No 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 I
13年8月31日土曜日
13年8月31日土曜日
「継続的デリバリー」より
13年8月31日土曜日
DevOps
継続的インテグレーション
継続的デリバリー
13年8月31日土曜日
テスト自動化動向についてのおすすめ
「夏サミ2013」講演関連資料のまとめ:
http://codezine.jp/article/detail/7305
実践!テスト自動化の勘所
http://itpro.nikkeibp.co.jp/article/COLUMN/
20120919/423524/
DevOpsについてのおすすめ
13年8月31日土曜日
自論      展開
13年8月31日土曜日
DevOps
DevOpsBiz
DevVerOpsBiz
Verfication
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 = :webkit
end
step 'トップページを表示する' do
visit '/'
end
step '対象ページを表示する' do
send 'kanrk05サイトにアクセスする'
send 'トップページを表示する'
end
step ":hoge が表示されていること" do |hoge|
expect(page).to have_content hoge
end
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日土曜日

Weitere ähnliche Inhalte

Mehr von Fukui Osamu

20160529 tokyurubykaigi10
20160529 tokyurubykaigi1020160529 tokyurubykaigi10
20160529 tokyurubykaigi10Fukui Osamu
 
20141129 tokyurubykaigi08
20141129 tokyurubykaigi0820141129 tokyurubykaigi08
20141129 tokyurubykaigi08Fukui Osamu
 
20141101渋谷ruby会議
20141101渋谷ruby会議20141101渋谷ruby会議
20141101渋谷ruby会議Fukui Osamu
 
20140823 devlove甲子園 東日本 心トラック5回裏 #devlove
20140823 devlove甲子園 東日本 心トラック5回裏 #devlove20140823 devlove甲子園 東日本 心トラック5回裏 #devlove
20140823 devlove甲子園 東日本 心トラック5回裏 #devloveFukui Osamu
 
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜Fukui Osamu
 
20131016 エンドツーエンド検証をJenkinsで回す話 #shibuyarb
20131016 エンドツーエンド検証をJenkinsで回す話 #shibuyarb20131016 エンドツーエンド検証をJenkinsで回す話 #shibuyarb
20131016 エンドツーエンド検証をJenkinsで回す話 #shibuyarbFukui Osamu
 
20130921 カジュアルにテストしてフォーマルに検証する #toRuby
20130921 カジュアルにテストしてフォーマルに検証する #toRuby20130921 カジュアルにテストしてフォーマルに検証する #toRuby
20130921 カジュアルにテストしてフォーマルに検証する #toRubyFukui Osamu
 
Herokuで作るdevise認証サイト
Herokuで作るdevise認証サイトHerokuで作るdevise認証サイト
Herokuで作るdevise認証サイトFukui Osamu
 
Rubyistに 不足しているのは会計(そろばん)!
Rubyistに 不足しているのは会計(そろばん)!Rubyistに 不足しているのは会計(そろばん)!
Rubyistに 不足しているのは会計(そろばん)!Fukui Osamu
 
Rubyistに 不足しているのは会計(そろばん)!
Rubyistに 不足しているのは会計(そろばん)!Rubyistに 不足しているのは会計(そろばん)!
Rubyistに 不足しているのは会計(そろばん)!Fukui Osamu
 
20101106 ramaze発表
20101106 ramaze発表20101106 ramaze発表
20101106 ramaze発表Fukui Osamu
 

Mehr von Fukui Osamu (11)

20160529 tokyurubykaigi10
20160529 tokyurubykaigi1020160529 tokyurubykaigi10
20160529 tokyurubykaigi10
 
20141129 tokyurubykaigi08
20141129 tokyurubykaigi0820141129 tokyurubykaigi08
20141129 tokyurubykaigi08
 
20141101渋谷ruby会議
20141101渋谷ruby会議20141101渋谷ruby会議
20141101渋谷ruby会議
 
20140823 devlove甲子園 東日本 心トラック5回裏 #devlove
20140823 devlove甲子園 東日本 心トラック5回裏 #devlove20140823 devlove甲子園 東日本 心トラック5回裏 #devlove
20140823 devlove甲子園 東日本 心トラック5回裏 #devlove
 
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
 
20131016 エンドツーエンド検証をJenkinsで回す話 #shibuyarb
20131016 エンドツーエンド検証をJenkinsで回す話 #shibuyarb20131016 エンドツーエンド検証をJenkinsで回す話 #shibuyarb
20131016 エンドツーエンド検証をJenkinsで回す話 #shibuyarb
 
20130921 カジュアルにテストしてフォーマルに検証する #toRuby
20130921 カジュアルにテストしてフォーマルに検証する #toRuby20130921 カジュアルにテストしてフォーマルに検証する #toRuby
20130921 カジュアルにテストしてフォーマルに検証する #toRuby
 
Herokuで作るdevise認証サイト
Herokuで作るdevise認証サイトHerokuで作るdevise認証サイト
Herokuで作るdevise認証サイト
 
Rubyistに 不足しているのは会計(そろばん)!
Rubyistに 不足しているのは会計(そろばん)!Rubyistに 不足しているのは会計(そろばん)!
Rubyistに 不足しているのは会計(そろばん)!
 
Rubyistに 不足しているのは会計(そろばん)!
Rubyistに 不足しているのは会計(そろばん)!Rubyistに 不足しているのは会計(そろばん)!
Rubyistに 不足しているのは会計(そろばん)!
 
20101106 ramaze発表
20101106 ramaze発表20101106 ramaze発表
20101106 ramaze発表
 

20130831 No Ruby No Test #kanrk05