Upgrade to Pro — share decks privately, control downloads, hide ads and more …

継続的なバージョンアップのためのテスト戦略 〜自動テストの導入とコンテナ化〜 / Testing Strategy for Continuous Version Up

s-shirayama
December 15, 2018

継続的なバージョンアップのためのテスト戦略 〜自動テストの導入とコンテナ化〜 / Testing Strategy for Continuous Version Up

PHP Conference 2018 での発表用スライドです。
-----
セキュリティの重要度が叫ばれる昨今、継続的にミドルウェアやフレームワークをアップデートしていくことが求めらています。コンテナ技術の登場により、バージョンアップ自体は比較的簡単に行えるようになってきましたが、バージョンアップ時の予期せぬ不具合のリスクを下げるためのテストには多くのコストがかかってしまいます。本セッションでは、PHPアプリケーションのバージョンアッププロジェクトのテストにおいて、自分たちが何を課題と捉え、どのような戦略を立て、コンテナ技術を使いながら、どのようなテスト自動化を行ったのかについて紹介したいと思います。

s-shirayama

December 15, 2018
Tweet

More Decks by s-shirayama

Other Decks in Technology

Transcript

  1.         Dec 15,

    2018 Shota Shirayama EC Incubation Development Dept. Rakuten, Inc.
  2. 2   #'"+,  $!&% )4… '3 #'" 76

     5 1/%% *0.  -(*0.2
  3. 5  #+ (     , 'Function

     "  X End-to-End ! * X %$   & ") 
  4. 6   •   • "  •

    IF •   •  JS •  !         
  5. 9 #,0&   "* 34( • /5! → %

    •  '.$  2  • ) • /5+  → 1 •  '.$    • 6-)
  6. 10     Web API   

    DB Web "!  PHP 5 → 7  VM ⇒ 
  7. 12 #$ " 1. VM →  ( ) 1.1

      # !   2.  2.1  $"  !   
  8. 18  4?  • "!#2,  • >= 7

     • 6B;@ • - • 4?!#. • CI • 1: (>=/)#Channel) • & /6B%*$;@3 • A "!#$ • $('+# 5< 908 $('+#
  9. 19  4?  • "!#2,  • >= 7

     • 6B;@ • - • 4?!#. • CI • 1: (>=/)#Channel) • & /6B%*$;@3 • A "!#$ • $('+# 5< 908
  10. 21 Codeception • “BDD-styled PHP testing framework” (https://github.com/Codeception/Codeception) • 

    (Guzzle + Symfony BrowserKit) •  (https://github.com/Codeception/robo-paracept) •    (https://github.com/Codeception/c3)
  11. 22  4?  • "!#2,  • >= 7

     • 6B;@ • - • 4?!#. • CI • 1: (>=/)#Channel) • & /6B%*$;@3 • A "!#$ • $('+# 5< 908
  12. 23 $+ !) " ('*%     

        # &          
  13. 25  832  • (54 / (: 17 )

    • (546+  ("!& 32 ) • #$,* • %$9 ! )0 .'-
  14. 26  832  • (54 / (: 17 )

    • (546+  ("!& 32 ) • #$,* • %$9 ! )0 .'-
  15. 27 "'- .7 • 0#84 (jar&! ) • RESTAPI )5/-

    • &*1 %,(+/- • 623 $    http://wiremock.org/ Wiremock
  16. 28 Codeception + Wiremock  APP TEST MOCK & '

    % * ( ) 1.   #" 2. HTTP   3. Mock   4.   !$ 5.   !$ 1.    6. Mock  1.  
  17. 29  832  • (54 / (: 17 )

    • (546+  ("!& 32 ) • #$,* • %$9 ! )0 .'-
  18. 31 &+    Codeceoption → 3  Wiremock

    → 4 $! )% → #"5  CI(.0- → 2/*10- ,' &+
  19. 33  • #,*  • #,0%   •

    #,  • .(21UI.(IF • 45'!!   • +3  -& #,  ”GROWTH” )$ /"