SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
Name: Matsuo Kazuaki
Twitter: @Kazu_cocoa
Job:(Mobile)Test Engineer
@Cookpad
index
• Our philosophy
• Development - Web applications
• Development - Mobile applications
• Conclusion
•
•
•
•
•
•
•
•
•
•
•
•
Our Manifesto
User First
Our Philosophy
Our
Huge Rails Application
Web Application
(include API Server)
Web Site
% rake stats
+----------------------+-------+-------+---------+---------+-----+-------+
| Name | Lines | LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Controllers | 49708 | 40012 | 537 | 4054 | 7 | 7 |
| Helpers | 15122 | 12420 | 15 | 1432 | 95 | 6 |
| Models | 98535 | 77593 | 1786 | 8670 | 4 | 6 |
| Mailers | 2122 | 1698 | 41 | 198 | 4 | 6 |
| Workers | 639 | 540 | 20 | 31 | 1 | 15 |
| Chanko units | 12544 | 10354 | 6 | 255 | 42 | 38 |
| Libraries | 49927 | 41289 | 603 | 3724 | 6 | 9 |
| Feature specs | 45798 | 37707 | 0 | 208 | 0 | 179 |
| Request specs | 39112 | 33563 | 0 | 16 | 0 | 2095 |
| Routing specs | 664 | 536 | 0 | 0 | 0 | 0 |
| Controller specs | 60829 | 50293 | 7 | 127 | 18 | 394 |
| Helper specs | 79735 | 65835 | 5 | 73 | 14 | 899 |
| Model specs | 151719|125330 | 6 | 128 | 21 | 977 |
| Worker specs | 862 | 715 | 0 | 1 | 0 | 713 |
| Chanko unit specs | 10396 | 8379 | 0 | 9 | 0 | 929 |
| Library specs | 23528 | 19679 | 27 | 128 | 4 | 151 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total |641240 |525943 | 3053 | 19054 | 6 | 25 |
+----------------------+-------+-------+---------+---------+-----+-------+
Code LOC: 183906 Test LOC: 342037 Code to Test Ratio: 1:1.9
% bundle show | wc -l
284
Deployment PipelinePR
merge
pull
tag
deploy
deploy
• Frequent small release
• 10+ deploy per a day
• To decrease incident risk per deploy
• Minimise period of incidents
• Roll back with low risk
• Finish rollback within 1 min
Release cycle
Development style
• Team exist in each departments
• Basically, they don’t have any test
engineers.
• One monolithic application
• Challenging to Microservices…
• Each developers are in charge of their
own implemented feature.
Must write test code
• All developers should implement test
code before merge pr to master.
• Why…
• To keep development cycle
• We can’t estimate side-effect
Automated Test
• Must implement specs when implement features
• RSpec based tests
• 20000+ RSpec examples
• It takes many hours finishing all test.
• Capybara
• with Headless browser
Hand Test
• Checked on production test
• Before release
• Checked feature by developers
• Tests on development phase
• User test(Internal benchmark)
• Security Test
• and so on…
Priority in test code
• Keep test quick
• We want to keep release cycle quick.
• Developed RRRSpec to keep speed
• Finish all spec test cases around
5 hour => Finish within 10 minutes
Tools developed by Cookpad
• Chanko
• protect incidents
• RRRSpec
• Distributed Rspec framework
• Switch_point
• change target DB
• Database_rewinder
• fast database cleaner
• Kage
• proxy to send copied real request to test
environments.
Challenge to Microservices
• Cookpad is a huge monolithic
application
Challenge to Microservices
• Many small web applications
• Keep release cycle quickly
• Stable and quick deploy
• ex. mamiya(our original tool)
How to keep stable them?
• Dependency
• Distributed Computing…
It’s one of my task… 😢
Mobile Application
(iOS/Android)
Release flow
PipelinePR
merge
pull
tag
publish
tointernal
• Around 2 week release cycle
• Decide which feature implement in
which cycle by each departments
• High release cycle lead
unpleasant
• Optimize to Google Play / App Store
Release
Development
• mobile-infra
• iOS/Android engineers: 3
• Test Engineer: 1 <= ME!!✊
• Each departments
• Android / iOS engineers
• API engineers (also develop web site)
• Not one team develop our application.
Test Level
• Unit Test
• Integration Test
• Feature Test
• Performance / GUI and so on.
• Make more efficient for tests
Develop/Test Tools
• Debug
• Stetho, PonyDebugger
• Enhance Testability
• AndroidJUnit4 and Java libraries
• XCTest, Mocks
• Appium, Espresso, UIAutomation
• Reporting
• Turnip / turnip_formatter
• kobold
Challenge to continuous
stable release…
• Reduce review load
• Dokumi
• Comment the result of static
analytics automatically.
• Enhance testability
• DI into Android…
• Establish hermetic environment
Other tests
• Performance
• Security
• Attractive
and so on…
Conclusion
• We test to keep high speed
development cycle.
• We challenge to Microservices.
• We challenge how to value mobile
applications.
Thank you.

Más contenido relacionado

Destacado

3Com 3C6120M-TPP
3Com 3C6120M-TPP3Com 3C6120M-TPP
3Com 3C6120M-TPPsavomir
 
07 reason 2006 innovativo diseñovialmásamigable 1introducción
07 reason 2006 innovativo diseñovialmásamigable 1introducción07 reason 2006 innovativo diseñovialmásamigable 1introducción
07 reason 2006 innovativo diseñovialmásamigable 1introducciónSierra Francisco Justo
 
20151021 cookpad talk_test_engineer
20151021 cookpad talk_test_engineer20151021 cookpad talk_test_engineer
20151021 cookpad talk_test_engineerKazuaki Matsuo
 
20160913 cookpad ios_jp
20160913 cookpad ios_jp20160913 cookpad ios_jp
20160913 cookpad ios_jpKazuaki Matsuo
 
3Com 3C10420A
3Com 3C10420A3Com 3C10420A
3Com 3C10420Asavomir
 
ашық сабақ кенжегульжанасы
ашық сабақ  кенжегульжанасыашық сабақ  кенжегульжанасы
ашық сабақ кенжегульжанасыoquzaman
 
Вправи і задачі на засвоєння таблиць додавання і віднімання числа 1
Вправи і задачі на засвоєння таблиць додавання і віднімання числа 1Вправи і задачі на засвоєння таблиць додавання і віднімання числа 1
Вправи і задачі на засвоєння таблиць додавання і віднімання числа 1Ковпитська ЗОШ
 
ARE THE SERVICES DELIVERED EMPLOYABLE? A SCENARIO OF TECHNICAL EDUCATION IN R...
ARE THE SERVICES DELIVERED EMPLOYABLE? A SCENARIO OF TECHNICAL EDUCATION IN R...ARE THE SERVICES DELIVERED EMPLOYABLE? A SCENARIO OF TECHNICAL EDUCATION IN R...
ARE THE SERVICES DELIVERED EMPLOYABLE? A SCENARIO OF TECHNICAL EDUCATION IN R...Prashant Mahajan
 
Downcast Enrollments: A Desperate Need of Holistic Marketing for Technical Ed...
Downcast Enrollments: A Desperate Need of Holistic Marketing for Technical Ed...Downcast Enrollments: A Desperate Need of Holistic Marketing for Technical Ed...
Downcast Enrollments: A Desperate Need of Holistic Marketing for Technical Ed...Prashant Mahajan
 

Destacado (13)

3Com 3C6120M-TPP
3Com 3C6120M-TPP3Com 3C6120M-TPP
3Com 3C6120M-TPP
 
PROCESO DE SELECCION
PROCESO DE SELECCIONPROCESO DE SELECCION
PROCESO DE SELECCION
 
07 reason 2006 innovativo diseñovialmásamigable 1introducción
07 reason 2006 innovativo diseñovialmásamigable 1introducción07 reason 2006 innovativo diseñovialmásamigable 1introducción
07 reason 2006 innovativo diseñovialmásamigable 1introducción
 
20151021 cookpad talk_test_engineer
20151021 cookpad talk_test_engineer20151021 cookpad talk_test_engineer
20151021 cookpad talk_test_engineer
 
20160913 cookpad ios_jp
20160913 cookpad ios_jp20160913 cookpad ios_jp
20160913 cookpad ios_jp
 
3Com 3C10420A
3Com 3C10420A3Com 3C10420A
3Com 3C10420A
 
ашық сабақ кенжегульжанасы
ашық сабақ  кенжегульжанасыашық сабақ  кенжегульжанасы
ашық сабақ кенжегульжанасы
 
T2 e2 luaces-raquel
T2 e2 luaces-raquelT2 e2 luaces-raquel
T2 e2 luaces-raquel
 
ADHD: Mohammad Moosa
ADHD: Mohammad MoosaADHD: Mohammad Moosa
ADHD: Mohammad Moosa
 
Ebau
EbauEbau
Ebau
 
Вправи і задачі на засвоєння таблиць додавання і віднімання числа 1
Вправи і задачі на засвоєння таблиць додавання і віднімання числа 1Вправи і задачі на засвоєння таблиць додавання і віднімання числа 1
Вправи і задачі на засвоєння таблиць додавання і віднімання числа 1
 
ARE THE SERVICES DELIVERED EMPLOYABLE? A SCENARIO OF TECHNICAL EDUCATION IN R...
ARE THE SERVICES DELIVERED EMPLOYABLE? A SCENARIO OF TECHNICAL EDUCATION IN R...ARE THE SERVICES DELIVERED EMPLOYABLE? A SCENARIO OF TECHNICAL EDUCATION IN R...
ARE THE SERVICES DELIVERED EMPLOYABLE? A SCENARIO OF TECHNICAL EDUCATION IN R...
 
Downcast Enrollments: A Desperate Need of Holistic Marketing for Technical Ed...
Downcast Enrollments: A Desperate Need of Holistic Marketing for Technical Ed...Downcast Enrollments: A Desperate Need of Holistic Marketing for Technical Ed...
Downcast Enrollments: A Desperate Need of Holistic Marketing for Technical Ed...
 

Similar a 20150423 m3

Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nltieleman
 
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nlbartzon
 
IDEAS Global A.I. Conference 2022.pdf
IDEAS Global A.I. Conference 2022.pdfIDEAS Global A.I. Conference 2022.pdf
IDEAS Global A.I. Conference 2022.pdfManimuthu Ayyannan
 
MySQL Enterprise Monitor
MySQL Enterprise MonitorMySQL Enterprise Monitor
MySQL Enterprise MonitorMario Beck
 
Maximo Administration Training - Copy.pptx
Maximo Administration Training - Copy.pptxMaximo Administration Training - Copy.pptx
Maximo Administration Training - Copy.pptxhassansakr14
 
Hitchhiker's Guide to free Oracle tuning tools
Hitchhiker's Guide to free Oracle tuning toolsHitchhiker's Guide to free Oracle tuning tools
Hitchhiker's Guide to free Oracle tuning toolsBjoern Rost
 
DevOps in the Cloud with Microsoft Azure
DevOps in the Cloud with Microsoft AzureDevOps in the Cloud with Microsoft Azure
DevOps in the Cloud with Microsoft Azuregjuljo
 
How to Leverage SAFe 5.0 for Your Enterprise Cloud Strategy
How to Leverage SAFe 5.0 for Your Enterprise Cloud StrategyHow to Leverage SAFe 5.0 for Your Enterprise Cloud Strategy
How to Leverage SAFe 5.0 for Your Enterprise Cloud StrategyCprime
 
Migrate to platform of your choice
Migrate to platform of your choiceMigrate to platform of your choice
Migrate to platform of your choiceAshnikbiz
 
Fast, Flexible Application Development with Oracle Database Cloud Service
Fast, Flexible Application Development with Oracle Database Cloud ServiceFast, Flexible Application Development with Oracle Database Cloud Service
Fast, Flexible Application Development with Oracle Database Cloud ServiceGustavo Rene Antunez
 
170215 msa intro
170215 msa intro170215 msa intro
170215 msa introSonic leigh
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolith Stay productive while slicing up the monolith
Stay productive while slicing up the monolith Markus Eisele
 
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Vimal Suba
 
Harnessing Configuration for Web GIS Application Development
Harnessing Configuration for Web GIS Application DevelopmentHarnessing Configuration for Web GIS Application Development
Harnessing Configuration for Web GIS Application DevelopmentGeCo in the Rockies
 
AWS Certified DevOps Engineer: What it is and how to get certified
AWS Certified DevOps Engineer: What it is and how to get certifiedAWS Certified DevOps Engineer: What it is and how to get certified
AWS Certified DevOps Engineer: What it is and how to get certifiedInfosec
 
PostgreSQL: Past present Future
PostgreSQL: Past present FuturePostgreSQL: Past present Future
PostgreSQL: Past present FuturePGConf APAC
 
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Chris Haddad
 

Similar a 20150423 m3 (20)

Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nl
 
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nl
 
IDEAS Global A.I. Conference 2022.pdf
IDEAS Global A.I. Conference 2022.pdfIDEAS Global A.I. Conference 2022.pdf
IDEAS Global A.I. Conference 2022.pdf
 
MySQL Enterprise Monitor
MySQL Enterprise MonitorMySQL Enterprise Monitor
MySQL Enterprise Monitor
 
Data Stack Summit 2023
Data Stack Summit 2023Data Stack Summit 2023
Data Stack Summit 2023
 
Maximo Administration Training - Copy.pptx
Maximo Administration Training - Copy.pptxMaximo Administration Training - Copy.pptx
Maximo Administration Training - Copy.pptx
 
Hitchhiker's Guide to free Oracle tuning tools
Hitchhiker's Guide to free Oracle tuning toolsHitchhiker's Guide to free Oracle tuning tools
Hitchhiker's Guide to free Oracle tuning tools
 
DevOps in the Cloud with Microsoft Azure
DevOps in the Cloud with Microsoft AzureDevOps in the Cloud with Microsoft Azure
DevOps in the Cloud with Microsoft Azure
 
How to Leverage SAFe 5.0 for Your Enterprise Cloud Strategy
How to Leverage SAFe 5.0 for Your Enterprise Cloud StrategyHow to Leverage SAFe 5.0 for Your Enterprise Cloud Strategy
How to Leverage SAFe 5.0 for Your Enterprise Cloud Strategy
 
Migrate to platform of your choice
Migrate to platform of your choiceMigrate to platform of your choice
Migrate to platform of your choice
 
Elastic-Engineering
Elastic-EngineeringElastic-Engineering
Elastic-Engineering
 
Fast, Flexible Application Development with Oracle Database Cloud Service
Fast, Flexible Application Development with Oracle Database Cloud ServiceFast, Flexible Application Development with Oracle Database Cloud Service
Fast, Flexible Application Development with Oracle Database Cloud Service
 
Key Factors To Ensure Test Automation Framework Success
Key Factors To Ensure Test Automation Framework SuccessKey Factors To Ensure Test Automation Framework Success
Key Factors To Ensure Test Automation Framework Success
 
170215 msa intro
170215 msa intro170215 msa intro
170215 msa intro
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolith Stay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
 
Harnessing Configuration for Web GIS Application Development
Harnessing Configuration for Web GIS Application DevelopmentHarnessing Configuration for Web GIS Application Development
Harnessing Configuration for Web GIS Application Development
 
AWS Certified DevOps Engineer: What it is and how to get certified
AWS Certified DevOps Engineer: What it is and how to get certifiedAWS Certified DevOps Engineer: What it is and how to get certified
AWS Certified DevOps Engineer: What it is and how to get certified
 
PostgreSQL: Past present Future
PostgreSQL: Past present FuturePostgreSQL: Past present Future
PostgreSQL: Past present Future
 
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
 

Más de Kazuaki Matsuo

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.0Kazuaki Matsuo
 
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.0Kazuaki Matsuo
 
20210616-career-example-at-icare
20210616-career-example-at-icare20210616-career-example-at-icare
20210616-career-example-at-icareKazuaki Matsuo
 
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)Kazuaki Matsuo
 
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)Kazuaki Matsuo
 
Xcode 11におけるXCUITestの挙動
Xcode 11におけるXCUITestの挙動Xcode 11におけるXCUITestの挙動
Xcode 11におけるXCUITestの挙動Kazuaki Matsuo
 
20191130 system-automation-conference
20191130 system-automation-conference20191130 system-automation-conference
20191130 system-automation-conferenceKazuaki Matsuo
 
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 applicationsKazuaki Matsuo
 
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 wayKazuaki Matsuo
 
Go ahead outside Japan
Go ahead outside JapanGo ahead outside Japan
Go ahead outside JapanKazuaki Matsuo
 
CookpadTechConf2018-(Mobile)TestAutomation
CookpadTechConf2018-(Mobile)TestAutomationCookpadTechConf2018-(Mobile)TestAutomation
CookpadTechConf2018-(Mobile)TestAutomationKazuaki Matsuo
 
20171215 andoird-test-night
20171215 andoird-test-night20171215 andoird-test-night
20171215 andoird-test-nightKazuaki Matsuo
 
20170726 ios test_night_no
20170726 ios test_night_no20170726 ios test_night_no
20170726 ios test_night_noKazuaki Matsuo
 
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-communityKazuaki Matsuo
 
20170529 clem kazuaki_matsuo
20170529 clem kazuaki_matsuo20170529 clem kazuaki_matsuo
20170529 clem kazuaki_matsuoKazuaki Matsuo
 
20170302 tryswift tasting_tests
20170302 tryswift tasting_tests20170302 tryswift tasting_tests
20170302 tryswift tasting_testsKazuaki Matsuo
 

Más de 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
 
20170302 tryswift tasting_tests
20170302 tryswift tasting_tests20170302 tryswift tasting_tests
20170302 tryswift tasting_tests
 
20161126 to ruby
20161126 to ruby20161126 to ruby
20161126 to ruby
 
20160914 te engineer
20160914 te engineer20160914 te engineer
20160914 te engineer
 

Último

WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
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 SoftwareJim McKeeth
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
%+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
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 

Último (20)

WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
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
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+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...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 

20150423 m3

  • 1.
  • 2. Name: Matsuo Kazuaki Twitter: @Kazu_cocoa Job:(Mobile)Test Engineer @Cookpad
  • 3. index • Our philosophy • Development - Web applications • Development - Mobile applications • Conclusion
  • 9. % rake stats +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC | Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 49708 | 40012 | 537 | 4054 | 7 | 7 | | Helpers | 15122 | 12420 | 15 | 1432 | 95 | 6 | | Models | 98535 | 77593 | 1786 | 8670 | 4 | 6 | | Mailers | 2122 | 1698 | 41 | 198 | 4 | 6 | | Workers | 639 | 540 | 20 | 31 | 1 | 15 | | Chanko units | 12544 | 10354 | 6 | 255 | 42 | 38 | | Libraries | 49927 | 41289 | 603 | 3724 | 6 | 9 | | Feature specs | 45798 | 37707 | 0 | 208 | 0 | 179 | | Request specs | 39112 | 33563 | 0 | 16 | 0 | 2095 | | Routing specs | 664 | 536 | 0 | 0 | 0 | 0 | | Controller specs | 60829 | 50293 | 7 | 127 | 18 | 394 | | Helper specs | 79735 | 65835 | 5 | 73 | 14 | 899 | | Model specs | 151719|125330 | 6 | 128 | 21 | 977 | | Worker specs | 862 | 715 | 0 | 1 | 0 | 713 | | Chanko unit specs | 10396 | 8379 | 0 | 9 | 0 | 929 | | Library specs | 23528 | 19679 | 27 | 128 | 4 | 151 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total |641240 |525943 | 3053 | 19054 | 6 | 25 | +----------------------+-------+-------+---------+---------+-----+-------+ Code LOC: 183906 Test LOC: 342037 Code to Test Ratio: 1:1.9
  • 10. % bundle show | wc -l 284
  • 12. • Frequent small release • 10+ deploy per a day • To decrease incident risk per deploy • Minimise period of incidents • Roll back with low risk • Finish rollback within 1 min Release cycle
  • 13. Development style • Team exist in each departments • Basically, they don’t have any test engineers. • One monolithic application • Challenging to Microservices… • Each developers are in charge of their own implemented feature.
  • 14.
  • 15. Must write test code • All developers should implement test code before merge pr to master. • Why… • To keep development cycle • We can’t estimate side-effect
  • 16. Automated Test • Must implement specs when implement features • RSpec based tests • 20000+ RSpec examples • It takes many hours finishing all test. • Capybara • with Headless browser
  • 17. Hand Test • Checked on production test • Before release • Checked feature by developers • Tests on development phase • User test(Internal benchmark) • Security Test • and so on…
  • 18. Priority in test code • Keep test quick • We want to keep release cycle quick. • Developed RRRSpec to keep speed • Finish all spec test cases around 5 hour => Finish within 10 minutes
  • 19. Tools developed by Cookpad • Chanko • protect incidents • RRRSpec • Distributed Rspec framework • Switch_point • change target DB • Database_rewinder • fast database cleaner • Kage • proxy to send copied real request to test environments.
  • 20. Challenge to Microservices • Cookpad is a huge monolithic application
  • 21. Challenge to Microservices • Many small web applications • Keep release cycle quickly • Stable and quick deploy • ex. mamiya(our original tool)
  • 22. How to keep stable them? • Dependency • Distributed Computing… It’s one of my task… 😢
  • 26. • Around 2 week release cycle • Decide which feature implement in which cycle by each departments • High release cycle lead unpleasant • Optimize to Google Play / App Store Release
  • 27. Development • mobile-infra • iOS/Android engineers: 3 • Test Engineer: 1 <= ME!!✊ • Each departments • Android / iOS engineers • API engineers (also develop web site) • Not one team develop our application.
  • 28. Test Level • Unit Test • Integration Test • Feature Test • Performance / GUI and so on. • Make more efficient for tests
  • 29. Develop/Test Tools • Debug • Stetho, PonyDebugger • Enhance Testability • AndroidJUnit4 and Java libraries • XCTest, Mocks • Appium, Espresso, UIAutomation • Reporting • Turnip / turnip_formatter • kobold
  • 30. Challenge to continuous stable release… • Reduce review load • Dokumi • Comment the result of static analytics automatically. • Enhance testability • DI into Android… • Establish hermetic environment
  • 32. • Performance • Security • Attractive and so on…
  • 33. Conclusion • We test to keep high speed development cycle. • We challenge to Microservices. • We challenge how to value mobile applications.