SlideShare a Scribd company logo
1 of 61
Download to read offline
Cookpad Tech Kitchen #2
~ continuous delivery for iOS ~
Cookpad(domestic)
2
Cookpad(domestic)
3
2016年12月期 第2四半期
https://cf.cpcdn.com/info/assets/wp-content/uploads/20160809153218/2016.2Qir.pdf
Cookpad(world)
4
Cookpad(world)
5
2016年12月期 第2四半期
https://cf.cpcdn.com/info/assets/wp-content/uploads/20160809153218/2016.2Qir.pdf
my.name // Kazuaki Matsuo
my.role // Test Engineer
my. // @Kazu_cocoa
my. // KazuCocoa
my. // kazucocoa.wordpress.com
let my = Profile()
6
Agenda
✓About our development style
✓ relationship between
departments
✓ Dev process / flow
✓Ice break
✓ Test strategy
✓ Test tools / tips
✓Testing strategy and what
test we run
✓ UI Testing
8
Our relationship
~ departments ~
9
Relationship(2014)
mobile first department
Mobile app engineersService engineers
10
Relationship(2015)
mobile infrastructure
11
Mobile app engineersService engineers
Relationship(2016)
mobile infrastructure
12
Mobile app engineersService engineers
Our relationship
~ roles in iOS development ~
13
Owner
test engineers
designers
directors
iOS
engineers
Our roles(2016)
14
Our dev cycle
Our dev process
15
previous
release
Deadline of
Pull Request
Code
Freeze
submit release
about a month
5 days2 weeks 3 days 4 days
Dev cycle
🍎🍏
16
Dev process
🍎
design/implement/check
🍏
17
submit release
Today’s focus point
18
Today’s focus point
Dev Flow
~ PR ~
Pact for iOS
UI Testing
19
Today’s focus point
UI Testing
20
Today’s focus point
Pact for iOS
21
Today’s focus point
Dev Flow
~ PR ~
22
What I talked
23
✓ About Cookpad
✓ Our relationship between departments
✓ Our role in iOS development
✓ Our development cycle and process
✓ Who is going to proceed talking each
topics
My role and work
~ Focus on technical activities ~
24
~ pyramid ~
25
Our test strategy
Small
Medium
Large
Enormous
manual
Our test strategy
26
http://techlife.cookpad.com/entry/2016/08/13/test-size-for-mobile
Small
Medium
Large
Enormous
http://techlife.cookpad.com/entry/2016/08/13/test-size-for-mobile
Our test strategy
27
manual
✓ Automated tests
✓ running tests, judgement the results
✓ GUI Testing
✓ HTTP Requests check
✓ …
✓ Manual tests
✓ new features
✓ difficult to run automatically
✓ exploratory testing
What we check
in test size L/E
28
✓ Automated tests
✓ running tests, judgement the results
✓ GUI Testing
✓ HTTP Requests check
✓ …
✓ Manual tests
✓ new features
✓ difficult to run automatically
✓ exploratory testing
What we check
in test size L/E
29
~ GUI Test / Scenario Test ~
~ L/E size ~
UI Testing
30
✓ Run tests based on scenarios
✓ We cover over 80% screen transitions
✓ Frequency we run tests
✓ arbitrary timing or before release the
app
Test cases
31
✓ Scenario based automated test
✓ Capture HTTP requests
✓ Screen captures
✓ Image diff
Our automated tests
32
✓ Unexpected broken scenario
✓ Unexpected broken network traffic
✓ Unexpected broken layout
✓ Crashes
What we can find out
33
Unexpected broken
network traffic
34
Unexpected broken
network traffic
35
Example of traffics
36
only for iOS8.2
Unexpected broken
layouts
Order of Dialog Button
is revered
37
only for iOS8.2
Unexpected broken
layouts
Here is diff
38
Expected layouts
except for iOS8.2
This order is correct
39
✓ Easy to figure out what kind of
unexpected defects caused
✓ Regression test
✓ Humans can do other creative activities,
other tasks and so on while running the
automated tests
Advantage of
automated tests
40
✓ If we run all tests with manual
✓ Scenario/GUI diff
✓ It takes around a few hours per a
device at least
✓ We run several devices per release
✓ We can reduce human resources to do
this kind of tasks
Costs
41
iOS 8.0 8.1 8.2 8.3 8.4 9.0 9.1 9.2 9.3 10.0
iPho
ne
◯ ◯ ◯ ◯ ◯ ◯ ◯ ◯ -
iPad ◯ ◯ ◯ ◯ ◯ ◯ ◯ ◯ -
iPad
Pro
◯ ◯ ◯ ◯ -
✓ ◯: select devices we run tests
✓ 6~8 devices per a release
✓ iOS8.0 was removed from Xcode
✓ Do test partially with manual
Combination
42
http://www.slideshare.net/KazuMatsu/20141018-selenium-appiumcookpad
Architecture
Test scenario / wrapper / frameworks
43
✓ We should update scenario every
release
✓ BTW, other libraries and wrappers
are updated only to solve unstable
environment
✓ We can update scenario within a day
✓ Include libraries and wrappers
✓ We can do other tasks except for
automated test
Maintenance costs
44
✓ Currently, we try convert
Objective-C to Swift
Code changes
45
✓ Keeping 99.9% crash free users
Crashes(Answer)
46
✓ What is our motivation to enhance
test automation
✓ 2014/1~: I joined to Cookpad
✓ I’m first test engineer
✓Test is not only my activity
✓We’d like to ensure minimum quality
to release the application
Motivation
47
~ our work ~
UI Testing
48
✓ include libraries and scenarios
✓ Appium 0.18.0 ~>
How long have we
developed this tests?
49
✓ We should define concrete plans to
tests
✓ What kind of test should we plan?
✓ We should consider software design,
configuration and so on against
software tests
✓ I used Mindmap to arrange test targets
How to design tests
50
Maindmap
51
Example of mind maps
52
~ tool stack for iOS ~
UI Testing
53
✓ UI Testing
✓ Appium (JavaScript)
✓ Turnip/RSpec (Ruby)
✓ EarlGrey (Objective-C/Swift)
✓ WebDriverAgent(Objective-C)
✓ image diff
✓ kobold (JavaScript)
✓ Others
✓ wiremock (Jave)
✓ http_proxy (Elixir)
Tool stack for iOS
54
✓ UI Testing
✓ Appium (JavaScript)
✓ Turnip/RSpec (Ruby)
✓ EarlGrey (Objective-C/Swift)
✓ WebDriverAgent(Objective-C)
✓ image diff
✓ kobold (JavaScript)
✓ Others
✓ wiremock (Jave)
✓ http_proxy (Elixir)
Tool stack for iOS
55
Appium
56
✓ Backend differ from:
✓ Appium 1.6.x
✓ WebDriverAgent for xcuitest strategy
✓ UIAutomator for appium strategy
✓ Before Appium 1.5.x
✓ UIAutomator for appium strategy
✓ Appium try to solve problems between
iOS <=> Appium Server
✓ Users only know about interface
against Appium server
Appium
57
EarlGrey
58
✓ XCUITest supports over iOS9
✓ Cookpad supports iOS8.0
✓ Lifecycle of XCUITest is same as
XCTest
✓ So, we can’t clean environment
every tests.
✓ e.g. Permission dialog
✓ This make tests flaky.
✓ BTW, we should do XCUITest based UI
Testing in the future.
How about XCUITest ?
59
Others
✓ image diff
✓ kobold (JavaScript)
✓ Others
✓ wiremock (Jave)
✓ http_proxy (Elixir)
60
End
61

More Related Content

Similar to 20160913 cookpad ios_en

RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
dcieslak
 
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
Anna Russo
 
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptxOS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
ShivareddyGangam
 
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
Anna Russo
 

Similar to 20160913 cookpad ios_en (20)

Do You Enjoy Espresso in Android App Testing?
Do You Enjoy Espresso in Android App Testing?Do You Enjoy Espresso in Android App Testing?
Do You Enjoy Espresso in Android App Testing?
 
Writing Tests with the Unity Test Framework
Writing Tests with the Unity Test FrameworkWriting Tests with the Unity Test Framework
Writing Tests with the Unity Test Framework
 
Continuous testing at scale
Continuous testing at scaleContinuous testing at scale
Continuous testing at scale
 
Practical Software Testing Tools
Practical Software Testing ToolsPractical Software Testing Tools
Practical Software Testing Tools
 
Udvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load testUdvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load test
 
Integration testing - A&BP CC
Integration testing - A&BP CCIntegration testing - A&BP CC
Integration testing - A&BP CC
 
Reliable mobile test automation
Reliable mobile test automationReliable mobile test automation
Reliable mobile test automation
 
Continuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and JenkinsContinuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and Jenkins
 
RemoteLaunch Overview Presentation (2021)
RemoteLaunch Overview Presentation (2021)RemoteLaunch Overview Presentation (2021)
RemoteLaunch Overview Presentation (2021)
 
RemoteLaunch Overview Presentation (2022)
RemoteLaunch Overview Presentation (2022)RemoteLaunch Overview Presentation (2022)
RemoteLaunch Overview Presentation (2022)
 
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
 
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
 
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
 
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptxOS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
 
How to kill test flake in appium
How to kill test flake in appiumHow to kill test flake in appium
How to kill test flake in appium
 
Good practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium testsGood practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium tests
 
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
 
Dev ops presentation
Dev ops presentationDev ops presentation
Dev ops presentation
 
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
 

More from Kazuaki Matsuo

20151213 system test automation conference
20151213 system test automation conference20151213 system test automation conference
20151213 system test automation conference
Kazuaki Matsuo
 

More from Kazuaki Matsuo (20)

2022-jasst-tohoku.pdf
2022-jasst-tohoku.pdf2022-jasst-tohoku.pdf
2022-jasst-tohoku.pdf
 
Add new commands in appium 2.0
Add new commands in appium 2.0Add new commands in appium 2.0
Add new commands in appium 2.0
 
Manage appium dependencies with -appium-home in appium 2.0
Manage appium dependencies with  -appium-home in appium 2.0Manage appium dependencies with  -appium-home in appium 2.0
Manage appium dependencies with -appium-home in appium 2.0
 
20210616-career-example-at-icare
20210616-career-example-at-icare20210616-career-example-at-icare
20210616-career-example-at-icare
 
Chrome Devtools Protocol via Selenium/Appium (English)
Chrome Devtools Protocol via Selenium/Appium (English)Chrome Devtools Protocol via Selenium/Appium (English)
Chrome Devtools Protocol via Selenium/Appium (English)
 
Chrome Devtools Protocol via Selenium/Appium (Japanese)
Chrome Devtools Protocol via Selenium/Appium (Japanese)Chrome Devtools Protocol via Selenium/Appium (Japanese)
Chrome Devtools Protocol via Selenium/Appium (Japanese)
 
Xcode 11におけるXCUITestの挙動
Xcode 11におけるXCUITestの挙動Xcode 11におけるXCUITestの挙動
Xcode 11におけるXCUITestの挙動
 
20191130 system-automation-conference
20191130 system-automation-conference20191130 system-automation-conference
20191130 system-automation-conference
 
Uncovering breaking changes behind UI on mobile applications
Uncovering breaking changes behind UI on mobile applicationsUncovering breaking changes behind UI on mobile applications
Uncovering breaking changes behind UI on mobile applications
 
Start contributing to OSS projects on your way
Start contributing to OSS projects on your wayStart contributing to OSS projects on your way
Start contributing to OSS projects on your way
 
Go ahead outside Japan
Go ahead outside JapanGo ahead outside Japan
Go ahead outside Japan
 
CookpadTechConf2018-(Mobile)TestAutomation
CookpadTechConf2018-(Mobile)TestAutomationCookpadTechConf2018-(Mobile)TestAutomation
CookpadTechConf2018-(Mobile)TestAutomation
 
20171215 andoird-test-night
20171215 andoird-test-night20171215 andoird-test-night
20171215 andoird-test-night
 
20170726 ios test_night_no
20170726 ios test_night_no20170726 ios test_night_no
20170726 ios test_night_no
 
20170701 lets-step-into-the-oss-community
20170701 lets-step-into-the-oss-community20170701 lets-step-into-the-oss-community
20170701 lets-step-into-the-oss-community
 
20170613 tech easy
20170613 tech easy20170613 tech easy
20170613 tech easy
 
20170529 clem kazuaki_matsuo
20170529 clem kazuaki_matsuo20170529 clem kazuaki_matsuo
20170529 clem kazuaki_matsuo
 
20160324 moneyfoward Elixir and Me
20160324 moneyfoward Elixir and Me20160324 moneyfoward Elixir and Me
20160324 moneyfoward Elixir and Me
 
20160219 devsumi cookpad matsuo
20160219 devsumi cookpad matsuo20160219 devsumi cookpad matsuo
20160219 devsumi cookpad matsuo
 
20151213 system test automation conference
20151213 system test automation conference20151213 system test automation conference
20151213 system test automation conference
 

Recently uploaded

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Recently uploaded (20)

Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

20160913 cookpad ios_en