SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
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.

Weitere ähnliche Inhalte

Andere mochten auch

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
 

Andere mochten auch (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...
 

Ähnlich wie 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
 

Ähnlich wie 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...
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 

Kürzlich hochgeladen (20)

Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 

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.