Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20130831 No Ruby No Test #kanrk05

2,160 views

Published on

  • Be the first to comment

20130831 No Ruby No Test #kanrk05

  1. 1. No Test No Ruby 2013.8.31 関西Ruby会議05 福井修@iR3 13年8月31日土曜日
  2. 2. ルビールビールビー Ruby大好き 福井修@iR3 2012 Rubykaja sendagaya.rb #七輪life Ruby関西cofounder 2009Ruby会議スタッフ &スポンサー 13年8月31日土曜日
  3. 3. 2002年KOFにて Matzを囲む 13年8月31日土曜日
  4. 4. るびま42号 テスト記事wrote♪ 13年8月31日土曜日
  5. 5. 刻言道場「まいトレ」 http://maitore.net/ 販売管理・在庫管理システム 株式会社 iRubySystems 13年8月31日土曜日
  6. 6. 本日はテストの話 13年8月31日土曜日
  7. 7. タイトル まずはじめに の話から 13年8月31日土曜日
  8. 8. No Test No Ruby 13年8月31日土曜日
  9. 9. ? 13年8月31日土曜日
  10. 10. さて 13年8月31日土曜日
  11. 11. Rubyなしでは 生きていけない Rubyのない 人生なんて 13年8月31日土曜日
  12. 12. 2011 最後のRuby会議LT 13年8月31日土曜日
  13. 13. Account 会計から逃れられない 11 ■ , July 16-18 2011 13年8月31日土曜日
  14. 14. 会計なしでは 人生は送れない 会計のない 人生はない 13年8月31日土曜日
  15. 15. No Test No Ruby 13年8月31日土曜日
  16. 16. Testなしでは Rubyはない Testのない Rubyなんて 13年8月31日土曜日
  17. 17. ?私はRubyを作っているコミッタ ではないので ちとひっかかる なんとなくわからなくはないが 13年8月31日土曜日
  18. 18. テーマを決めたときは 「TestなしでRubyで 作ったシステムの リリースはない」 くらいの意図だった 13年8月31日土曜日
  19. 19. わかりにくいので 出直します 13年8月31日土曜日
  20. 20. 2013.8.31 関西Ruby会議05 福井修@iR3 No Ruby No Test 13年8月31日土曜日
  21. 21. Test テストから逃れられない 13 August 31 2013 13年8月31日土曜日
  22. 22. Rubyなしでは Testはできない Rubyのない テストなんて 13年8月31日土曜日
  23. 23. ! 13年8月31日土曜日
  24. 24. テストから検証に 「検証自動化」もっと大事! 手になじむRuby製の ツールをもっと 検証に活用しよう!! 本日の結論 13年8月31日土曜日
  25. 25. TurnipとかCapybaraとか systemuとかexpectとか いろいろ Ruby製のテストや検証に使えるツール 13年8月31日土曜日
  26. 26. ではまず世間のテストツールを鳥瞰 13年8月31日土曜日
  27. 27. 出典 テストツールの導入状況/ キーマンズネット http://www.keyman.or.jp/at/dev/ debug/30004610/ 13年8月31日土曜日
  28. 28. 世間ではテストツール導入済みは8.5% 13年8月31日土曜日
  29. 29. 単体テストがメイン テストの記録や レポート Javaがメイン Rubyは1.8% 導入されたテストツールの用途 13年8月31日土曜日
  30. 30. テストは大事といいながら テストツールは まだまだ これから 13年8月31日土曜日
  31. 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日土曜日
  32. 32. 「テストツール丸わかりガイド」より 13年8月31日土曜日
  33. 33. 世間の動向 13年8月31日土曜日
  34. 34. 継続的インテグレーション 継続的デリバリー C I 13年8月31日土曜日
  35. 35. 13年8月31日土曜日
  36. 36. 「継続的デリバリー」より 13年8月31日土曜日
  37. 37. DevOps 継続的インテグレーション 継続的デリバリー 13年8月31日土曜日
  38. 38. テスト自動化動向についてのおすすめ 「夏サミ2013」講演関連資料のまとめ: http://codezine.jp/article/detail/7305 実践!テスト自動化の勘所 http://itpro.nikkeibp.co.jp/article/COLUMN/ 20120919/423524/ DevOpsについてのおすすめ 13年8月31日土曜日
  39. 39. 自論      展開 13年8月31日土曜日
  40. 40. DevOps DevOpsBiz DevVerOpsBiz Verfication 13年8月31日土曜日
  41. 41. ベリフィケーション 【 verfication 】 と バリデーション 【 validation 】 妥当性を確認する, 実証(する) (正しいということの)確認; 立証,検証,証明 正しいということを検証するという意味では ベリフィケーション が使われる。 13年8月31日土曜日
  42. 42. では「本番系で検証をする」 「テストは開発系でせえよ」となる というのには違和感 「本番系でテストをする」 というのはどう? →とても納得感あり そうか「エンドツーエンド回帰テスト」は 「エンドツーエンド検証」 と言う方がよさげという気づき!!! 13年8月31日土曜日
  43. 43. 開発 Dev 運用 Ops 検証 Ver 開発 Dev 運用 Ops 正しいということを検証するという ベリフィケーション を経て受け渡し 13年8月31日土曜日
  44. 44. 開発 Dev 運用 Ops 検証 Ver 設計→実装→テスト ↓↑ ここを俊敏に 繰り返し やるのがAgile 回帰テスト 受け入れテスト システムテスト 経営 Biz 評価 リーン 13年8月31日土曜日
  45. 45. 次はエンドツーエンド検証自動化へ Turnip 13年8月31日土曜日
  46. 46. 念の為に 単体テスト・組み合わせテストの話は TDD/BDD,RSpec,Cucumber の優れた記事をご覧ください そちらの道しるべには↓がおすすめです 「Rspec/Capybara/Turnipの入門記事を 全力でまとめてみた」 http://morizyun.github.io/blog/the-rspec-book- review-rails/ 13年8月31日土曜日
  47. 47. エンドツーエンド検証 TurnipとCapybaraとJenkins 13年8月31日土曜日
  48. 48. Turnipとは? feature ファイルと step_definitions ファイル の構成 (Gherkin 書式) を RSpec 内で実行す ることができるツール(Rspec一本化) Cucumber の面倒さである正規表現を使用し ないという改善(代わりにプレースフォルダ) 13年8月31日土曜日
  49. 49. gherkin書式 システムの振る舞いを記述するための自然言 語に近い書式のこと。 Business Readable DSLとも呼ばれ、ベタなテ ストコードにメタな説明 (機能・シナリオ・ス テップ) の層 (レイヤ) を付加し、プログラム の実装者でなく第三者や受け入れ者が記述し 理解できる (日本語でも記述できる) 道が開か れました。 13年8月31日土曜日
  50. 50. 13年8月31日土曜日
  51. 51. 検証項目列挙方式 単体テスト項目積み上げ ボトムアップアプローチ 機能仕様書から掘り下げ トップダウンアプローチ TDD/BDDの 成果物 Excelシート テスト設計 13年8月31日土曜日
  52. 52. Excelテストケース .feature ファイル xx_step.rb ファイル Excelから文言を抜き出 して.featureの骨組みを 作るツールは作成可能 step.rbファイルを記述するには Capybara,Rspecのmatcherや Web操作仕様の詳細を理解し ておく必要があり習熟コストは かかる 自動化の肝は、.featureファイルとxx_step.rbファイルの作成 この2種類のファイルさえ作成すれば、ツール群で自動実行可能! ただしxx_step.rbに記述できない処理は当然実行できない 13年8月31日土曜日
  53. 53. Jenkins 検証コンテンツ Gherkin書式 RSpec Turnip xx. feature xx_steps .rb Capybara Spork Capybara- webkit Polterguist selenium systemu expect 本番サーバ ステージング サーバ エンドツーエンド検証 13年8月31日土曜日
  54. 54. demoサイト 関西Ruby会議05用Rails4 demoサイト http://kanrk05.ruby.iijgio.com/zipcodes MOGOKは速い! ここにTurnipを使った エンドツーエンド検証を実施 13年8月31日土曜日
  55. 55. # encoding: utf-8 # language: ja 機能: 1.画面表示確認 @javascript シナリオ: 1.トップページ確認 前提 対象ページを表示する ならば 'ようこそ 関西Ruby会議05' が表示されて いること view01.feature 13年8月31日土曜日
  56. 56. # 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日土曜日
  57. 57. ## encoding: utf-8 # language: ja 機能: 2.検索動作確認 @javascript シナリオ: 2.一覧確認 前提 対象ページを表示する かつ 郵便番号一覧 をクリックする ならば Zipcode が表示されていること view02.feature 13年8月31日土曜日
  58. 58. #encoding: utf-8 step '郵便番号一覧 をクリックする' do #click_link '郵便番号一覧' first(:link, '郵便番号一覧').click end view2_steps.rb 13年8月31日土曜日
  59. 59. テストの自動化の課題 本体や環境(ツールのバージョンアップ etc.Capybara1→2)の変更に合わせて、テスト コードをメンテナンスし続ける必要がある。 自動化の範囲を拡げるには、実装コストがかか る。  自動化が困難だったり、非常にコストがかかる 場合には手動のままとする自動化の範囲の見切り が必要。 13年8月31日土曜日
  60. 60.  テストから検証に 「検証自動化」もっと大事! 手になじむRuby製の ツールをもっと 検証に活用しよう!! ご清聴ありがとうございました 13年8月31日土曜日

×