20130831 no ruby no test #kanrk05
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日土曜日
テスト自動化動向についてのおすすめ
「夏サミ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
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日土曜日