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

Build Self-Organized Team through Test Automation with Karate

Build Self-Organized Team through Test Automation with Karate

「DevOpsDays Taipei 2019」(2019-10-16,17,18)での発表資料です。
(Agenda上のタイトルは"Karate for DevOps, with DevOps")
https://devopsdays.tw/

我々SET(Software Engineer in Test)が、テスト自動化支援活動を通してLINE社内のあるAPI開発チームの自己組織化をなし得るに至った物語を、ケーススタディとしてお伝えいたします。
また、その中で重要な役割を担ったKarateというAPI Testing Frameworkについてご紹介いたします。

- テストの自動化をしてみたものの、なかなかチームに定着しない
- APIの自動テストを作ってみたいけど、どうすればいいか分からない
- (LINEの)SETはどういう活動をしているのか

といった悩みや疑問をお持ちの方々の一助になれれば幸いです。

LINE Developers

October 16, 2019
Tweet

More Decks by LINE Developers

Other Decks in Technology

Transcript

  1. Build Self-Organized Team through Test Automation Hiroyuki Ito, Isao Takahashi

    LINE Corporation. DevOpsDays Taipei 2019 with Karate
  2. Agenda 1. Case Study : Introduce API Testing 2. Karate

    : API Testing Framework 3. Develop the tool to accelerate team
  3. Background Story - Issues šSome team’ product tends to be

    in trouble šBug šMis-configuration šMis-operation šThe team doesn’t aware troubles until customer claims šIt’s huge loss for business (income, reputation)
  4. Background Story - Why? šQA resources were not enough to

    cover their product šThey created E2E test cases in past, but obsoleted šThey understand importance of test, but less knowledge/resources
  5. B.K. – Write & Maintain API Test by SET šWe‘ve

    written API Test from API doc and hearing šWith JUnit, which the team used to use for Unit Test šIt worked, but less contribute from the team !
  6. B.K. – Write & Maintain API Test by SET šIt

    worked, but less contribute from the team ! Still difficult to write? We do too much?
  7. What is Karate? API Testing Framework written in Java Write

    like Cucumber Run like JUnit Testing Mocking Perf-Testing https://github.com/intuit/karate Native Support for JSON-based REST API
  8. How Good is Karate? Simple for Simple Case Cucumber Compatible

    Reusable Test Case https://github.com/intuit/karate Extensible for Complex Case
  9. A.K. – Rewrite API Test with Karate šRewrite all test

    cases by SET šIntroduce Karate to the team B.K. : Before Karate A.K : After Karate_
  10. A.K. – Rewrite API Test with Karate šRewrite all test

    cases by SET šIntroduce Karate to the team šThe team started writing test cases by themselves! !
  11. New Issue Emerged šThe team write test cases, and SET

    reviews šSET maintains CI Job šResolve unmatched version between deployed product and test šExclude specific test case temporarily šHigh cost when trouble occurs
  12. Chatbot for Managing CI Job šConfirm current configuration šModify configuration

    šTarget branch šTarget label for test šExecute Job on demand
  13. A.B. – Write & Maintain Test by Team šThe team

    writes/reviews test cases by their own šThe team configures/runs CI Job how/when they want šNow we SET don’t support what did B.K. !
  14. What was Changed? šReduce trouble šFind trouble earlier šIn Development,

    Release, and Operation š1 week -> 10 min. to detect regression šThink and act by their own
  15. Episodes šTest found Regression Bug! But, the team didn’t aware

    it was bug ! šTest failed randomly. And, the team utilized it for improvement "
  16. Episodes šTest found Regression Bug! But, the team didn’t aware

    it was bug ! šTest failed randomly. And, the team utilized it for improvement
  17. Episodes šTest found Regression Bug! But, the team didn’t aware

    it was bug šTest failed randomly. And, the team utilized it for improvement !
  18. How SET Works šSpend time for communication rather than getting

    domain knowledge šDelegate actions gradually šDevelop if necessary
  19. Self-Organized Teams Make … šProactive behavior ! šThink, Decide and

    Act šHave confidence that they can solve issues šOwnership to contribute for Product, and Business !
  20. Current Action – Reduce MTTR More Quickly šNow, we can

    notice troubles from test report šHowever, we are still struggling for … “where is cause hidden?” !