SlideShare a Scribd company logo
1 of 44
Download to read offline
Testing
continous Integration
continous Delivery
…in the real world!
Roc Boronat
I develop Android things
– I wanna learn about testing! – Roc 2014
tests
introducing
unitary tests
integration tests
instrumentation tests
we started with unitary tests to
develop regular expressions
^[6789]{1}[0-9]{8}$
^0{2}[0-9]{11,}
we started with unitary tests to
develop regular expressions
we started with unitary tests to
develop regular expressions
we started with unitary tests to
develop regular expressions
we started with unitary tests to
develop regular expressions
given
when
then
given
when
then
we started with unitary tests to
parse deeplink URL’s
this happens at
we started with unitary tests to
parse deeplink URL’s
this happens at
we started with unitary tests to
parse deeplink URL’s
this happens at
we started with unitary tests to
improve an invoice generator
Customer can have a insurance… or not
The insurance can have a coverage limit… or not
The insurance can have a franchise deductible… or not
The insurance company can pay the VAT of the amount… or not
we started with unitary tests to
improve an invoice generator
we started with unitary tests to
improve an invoice generator
we started with unitary tests to
refactor legacy code
this happens at
we started with unitary tests to
refactor legacy code
Sandro Mancuso
craftedws.blogspot.com
Testing and Refactoring Legacy Code
youtu.be/_NnElPO5BU0
Legacy Code Rules
• You cannot change production code if not covered by tests
… just automated refactorings (via IDE) are allowed, if needed to write the test
this happens at
we started with unitary tests to
refactor legacy code
Sandro Mancuso
craftedws.blogspot.com
Testing and Refactoring Legacy Code
youtu.be/_NnElPO5BU0
this happens at
last tips about unitary tests
follow the given-when-then style
test one thing at a time
test the domain: is easy and valuable
frustration is the first step towards improvement
know the tools: JUnit + AssertJ + Mockito
unitary tests
integration tests
instrumentation tests
we started with integration test to
develop an API module
this happens at
quit smoking with your phone
tips about integration tests
develop the API module by TDD
check that your customer’s API has not changed
monitor your own API using a CI tool
unitary tests
integration tests
instrumentation tests
we started with instrumentation test to
test an app end to end
this happens at
we started with instrumentation test to
test an app end to end
this happens at
we started with instrumentation test to
test an app end to end
this happens at
tips about instrumentation tests
simple way to do «defensive testing»
fast way to develop «deep screens»
Espresso has been a game changer
They use to fail at CI tools
extra point: TDD
test-driven development
extra point: TDD
test-driven development
extra point 2: EDD?
error-driven development
Someone found a bug?
Write a test that reproduces it before fixing it!
extra point 2: EDD?
error-driven development
this happens at
continous *
introducing
continous integration
continous delivery
we started with continous integration to
fail fast
this happens at
quit smoking with your phone
we started with continous integration to
fail fast
this happens at
quit smoking with your phone
we started with continous integration to
maintain code quality
this happens at
we started with continous integration to
maintain code quality
this happens at
continous integration
continous delivery
we started with continous delivery to
launch releases from SourceTree
Group of Betatesters 0,5% of users
this happens at
quit smoking with your phone
we started with continous delivery to
update stakeholders
the product owners have
the last developed feature
in their phones
this happens at
we started with continous delivery to
launch releases from Terminal
Group of Betatesters Alpha Release
this happens at
Roc Boronat
roc@fewlaps.com

More Related Content

What's hot

Code review
Code reviewCode review
Code review
Aleksey Solntsev
 
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools Visual Testing: Quality and Speed -- by GIl Tayar, Applitools
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools
Applitools
 
How to be proud when you are done
How to be proud when you are doneHow to be proud when you are done
How to be proud when you are done
Aleksey Solntsev
 
Testing Android apps with Robotium
Testing Android apps with RobotiumTesting Android apps with Robotium
Testing Android apps with Robotium
Stephen Gilmore
 

What's hot (19)

Outside-in Testing in Vue with Cypress
Outside-in Testing in Vue with CypressOutside-in Testing in Vue with Cypress
Outside-in Testing in Vue with Cypress
 
The four generations of test automation
The four generations of test automationThe four generations of test automation
The four generations of test automation
 
When you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHPWhen you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHP
 
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
 
Code Review: An apple a day
Code Review: An apple a dayCode Review: An apple a day
Code Review: An apple a day
 
7 QA Tests You Should Be Running
7 QA Tests You Should Be Running7 QA Tests You Should Be Running
7 QA Tests You Should Be Running
 
Presentation_TDD
Presentation_TDDPresentation_TDD
Presentation_TDD
 
CP-SAT - Certified Professional Selenium Automation Testing
CP-SAT - Certified Professional Selenium Automation TestingCP-SAT - Certified Professional Selenium Automation Testing
CP-SAT - Certified Professional Selenium Automation Testing
 
ESLint Plugin for UI Tests
ESLint Plugin for UI TestsESLint Plugin for UI Tests
ESLint Plugin for UI Tests
 
Code review
Code reviewCode review
Code review
 
Why is mobile testing important?
Why is mobile testing important?Why is mobile testing important?
Why is mobile testing important?
 
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools Visual Testing: Quality and Speed -- by GIl Tayar, Applitools
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools
 
How to be proud when you are done
How to be proud when you are doneHow to be proud when you are done
How to be proud when you are done
 
D-CAST Real Life TestOps Environment
D-CAST Real Life TestOps EnvironmentD-CAST Real Life TestOps Environment
D-CAST Real Life TestOps Environment
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Testing Android apps with Robotium
Testing Android apps with RobotiumTesting Android apps with Robotium
Testing Android apps with Robotium
 
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
 
Continuous, continuous, continuous
Continuous, continuous, continuousContinuous, continuous, continuous
Continuous, continuous, continuous
 
XP Injection
XP InjectionXP Injection
XP Injection
 

Viewers also liked

Viewers also liked (7)

Redescubre la programación - #MPWAR - #OpenDayLaSalle
Redescubre la programación - #MPWAR - #OpenDayLaSalleRedescubre la programación - #MPWAR - #OpenDayLaSalle
Redescubre la programación - #MPWAR - #OpenDayLaSalle
 
Your code as a crime scene
Your code as a crime sceneYour code as a crime scene
Your code as a crime scene
 
We broke up with the monolith, and started dating #eventSourcing - #symfonyCat
We broke up with the monolith, and started dating #eventSourcing - #symfonyCatWe broke up with the monolith, and started dating #eventSourcing - #symfonyCat
We broke up with the monolith, and started dating #eventSourcing - #symfonyCat
 
Software craftmanship coaching
Software craftmanship coachingSoftware craftmanship coaching
Software craftmanship coaching
 
Scala Json Features and Performance
Scala Json Features and PerformanceScala Json Features and Performance
Scala Json Features and Performance
 
バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuriバッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
 
Building and deploying microservices with event sourcing, CQRS and Docker (QC...
Building and deploying microservices with event sourcing, CQRS and Docker (QC...Building and deploying microservices with event sourcing, CQRS and Docker (QC...
Building and deploying microservices with event sourcing, CQRS and Docker (QC...
 

Similar to Testing, CI and CD in the real world

Similar to Testing, CI and CD in the real world (20)

12 top app testing tools
12 top app testing tools12 top app testing tools
12 top app testing tools
 
Openbar Kontich // Mobile app automation on a budget by Wim Vervust & Bram Thys
Openbar Kontich // Mobile app automation on a budget by Wim Vervust & Bram ThysOpenbar Kontich // Mobile app automation on a budget by Wim Vervust & Bram Thys
Openbar Kontich // Mobile app automation on a budget by Wim Vervust & Bram Thys
 
iPhone Development Overview
iPhone Development OverviewiPhone Development Overview
iPhone Development Overview
 
Testing beyond the default click-paths
Testing beyond  the default click-pathsTesting beyond  the default click-paths
Testing beyond the default click-paths
 
Sayanti Mondal CV
Sayanti Mondal CVSayanti Mondal CV
Sayanti Mondal CV
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Developer meets esper
Developer meets esperDeveloper meets esper
Developer meets esper
 
Pair programming pair testing working together with the developers by Simon ...
Pair programming  pair testing working together with the developers by Simon ...Pair programming  pair testing working together with the developers by Simon ...
Pair programming pair testing working together with the developers by Simon ...
 
Dev fest2015androidunittestingbyoyewaleademolasao
Dev fest2015androidunittestingbyoyewaleademolasaoDev fest2015androidunittestingbyoyewaleademolasao
Dev fest2015androidunittestingbyoyewaleademolasao
 
software testing trends set to define the industry in 2024
software testing trends set to define the industry in 2024software testing trends set to define the industry in 2024
software testing trends set to define the industry in 2024
 
Continuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQContinuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQ
 
Mobile and Web App Testing for Visual Studio Teams
Mobile and Web App Testing for Visual Studio TeamsMobile and Web App Testing for Visual Studio Teams
Mobile and Web App Testing for Visual Studio Teams
 
Muzammil exp testing
Muzammil exp testingMuzammil exp testing
Muzammil exp testing
 
Juc oct 2014 final
Juc oct 2014 finalJuc oct 2014 final
Juc oct 2014 final
 
Zado Success Story - Mobile Automation using Selenium Robotium
Zado Success Story - Mobile Automation using Selenium RobotiumZado Success Story - Mobile Automation using Selenium Robotium
Zado Success Story - Mobile Automation using Selenium Robotium
 
Resume
ResumeResume
Resume
 
Test studio
Test studioTest studio
Test studio
 
What Is Mobile Device Testing and Best Practices For Mobile Testing_.pdf
What Is Mobile Device Testing and Best Practices For Mobile Testing_.pdfWhat Is Mobile Device Testing and Best Practices For Mobile Testing_.pdf
What Is Mobile Device Testing and Best Practices For Mobile Testing_.pdf
 
Visual Studio Mobile Center: A story about mobile DevOps
Visual Studio Mobile Center: A story about mobile DevOpsVisual Studio Mobile Center: A story about mobile DevOps
Visual Studio Mobile Center: A story about mobile DevOps
 
OMSOFTWARE NEW Service
OMSOFTWARE NEW ServiceOMSOFTWARE NEW Service
OMSOFTWARE NEW Service
 

More from Roc Boronat

Barcelona Bicing: Next steps
Barcelona Bicing: Next stepsBarcelona Bicing: Next steps
Barcelona Bicing: Next steps
Roc Boronat
 

More from Roc Boronat (10)

Introducing EDD: Error Driven Development
Introducing EDD: Error Driven DevelopmentIntroducing EDD: Error Driven Development
Introducing EDD: Error Driven Development
 
From CVS to GIT
From CVS to GITFrom CVS to GIT
From CVS to GIT
 
Introducing Clean Architecture
Introducing Clean ArchitectureIntroducing Clean Architecture
Introducing Clean Architecture
 
Testing, CI and CD in the real world
Testing, CI and CD in the real worldTesting, CI and CD in the real world
Testing, CI and CD in the real world
 
The chromecast's guide to the galaxy
The chromecast's guide to the galaxyThe chromecast's guide to the galaxy
The chromecast's guide to the galaxy
 
Sessió motivacional
Sessió motivacionalSessió motivacional
Sessió motivacional
 
QuitNow!
QuitNow!QuitNow!
QuitNow!
 
Hello NFC!
Hello NFC!Hello NFC!
Hello NFC!
 
Barcelona Bicing: Next steps
Barcelona Bicing: Next stepsBarcelona Bicing: Next steps
Barcelona Bicing: Next steps
 
Hello GoogleMaps!
Hello GoogleMaps!Hello GoogleMaps!
Hello GoogleMaps!
 

Testing, CI and CD in the real world