Slide 1

Slide 1 text

Build Self-Organized Team through Test Automation Hiroyuki Ito, Isao Takahashi LINE Corporation. DevOpsDays Taipei 2019 with Karate

Slide 2

Slide 2 text

Key Message Building Self-Organized Team by Complemental Relationship between Product Development Team and SET

Slide 3

Slide 3 text

Agenda 1. Case Study : Introduce API Testing 2. Karate : API Testing Framework 3. Develop the tool to accelerate team

Slide 4

Slide 4 text

1. Case Study : Introduce API Testing

Slide 5

Slide 5 text

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)

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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 !

Slide 8

Slide 8 text

B.K. – Write & Maintain API Test by SET šIt worked, but less contribute from the team ! Still difficult to write? We do too much?

Slide 9

Slide 9 text

! Still difficult to write?

Slide 10

Slide 10 text

2. Karate : API Testing Framework

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

Latest Technology Rader https://www.thoughtworks.com/radar/languages-and-frameworks/karate

Slide 13

Slide 13 text

Example of Karate

Slide 14

Slide 14 text

How Good is Karate? Simple for Simple Case Cucumber Compatible Reusable Test Case https://github.com/intuit/karate Extensible for Complex Case

Slide 15

Slide 15 text

Demo (Live Coding) šWrite -> Execute -> Show Report

Slide 16

Slide 16 text

Demo (Live Coding) š( Live Coding )

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Demo (Live Coding) š(Live Coding   )

Slide 22

Slide 22 text

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_

Slide 23

Slide 23 text

How We Did

Slide 24

Slide 24 text

How We Did Not Enforce, Just Suggest

Slide 25

Slide 25 text

How We Did Not Enforce, Just Suggest Discussion Closely

Slide 26

Slide 26 text

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! !

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

! We do too much?

Slide 29

Slide 29 text

3. Develop the Tool to Accelerate Team

Slide 30

Slide 30 text

Chatbot for Managing CI Job šConfirm current configuration šModify configuration šTarget branch šTarget label for test šExecute Job on demand

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

Why We Did

Slide 33

Slide 33 text

Why We Did Educating Manual Ops is Not Scaled

Slide 34

Slide 34 text

Why We Did Educating Manual Ops is Not Scaled Demotivate Them

Slide 35

Slide 35 text

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. !

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

How SET Works šSpend time for communication rather than getting domain knowledge šDelegate actions gradually šDevelop if necessary

Slide 41

Slide 41 text

Self-Organized Teams Make … šProactive behavior ! šThink, Decide and Act šHave confidence that they can solve issues šOwnership to contribute for Product, and Business !

Slide 42

Slide 42 text

Current Action – Reduce MTTR More Quickly šNow, we can notice troubles from test report šHowever, we are still struggling for … “where is cause hidden?” !

Slide 43

Slide 43 text

Sebas-Report Test Log

Slide 44

Slide 44 text

Test Overview

Slide 45

Slide 45 text

Test Detail

Slide 46

Slide 46 text

HTTP Call Trace

Slide 47

Slide 47 text

Key Message (Again) Building Self-Organized Team by Complemental Relationship between Product Development Team and SET

Slide 48

Slide 48 text

Thank You!