SlideShare a Scribd company logo
1 of 18
Download to read offline
How do you implement
Continuous Delivery?

Part 4: Automated Testing
Implementing
automated testing
critique the product

business facing

support programming

technology facing

Implementing
automated
testing

Agile Testing Quadrants

http://www.exampler.com/old-blog/2003/08/22/#agile-testing-project-2
http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/
business facing

support programming

technology facing

Implementing
automated
testing

Agile Testing Quadrants
critique the product

functional tests
prototypes
simulation

showcases
exploratory testing
usability testing

unit tests
component tests
system tests

performance tests
load tests
security tests

http://www.exampler.com/old-blog/2003/08/22/#agile-testing-project-2
http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/
Implementing
automated
testing

Agile Testing Quadrants

Balance your tests
Implementing
automated
testing

Software Testing Pyramid
Manual
Tests
End-to-end
Business facing

Localized
Technology facing

UI tests
Service tests
(API, Integration,
Component)
Unit tests

http://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid
Implementing
automated
testing

Software Testing Pyramid

§  Tests at the bottom of the pyramid focus on
smaller sections of code, e.g. unit tests.

§  These tests are the foundation of a good test
automation strategy, they are quick to run and
there should be many of them.

§  They run at the earlier stages of the pipeline.

Unit tests
Implementing
automated
testing

Software Testing Pyramid

§  Tests in the middle of the pyramid cover larger
aggregation of code - components, services, etc.

§  Service tests provide many advantages of endto-end tests while avoiding UI complexities.

§  They run only after the build has passed unit
level tests.

Service
Tests
Implementing
automated
testing

Software Testing Pyramid

§  Tests at the top cover the "full stack” and are the
slowest to run.

§  Don’t write a test for every acceptance criteria
(antipattern), instead use a few journeys to cover
main areas of the code. 

§  They run only after the build has passed both
the unit level and service level tests.

UI
tests
Implementing
automated
testing

Working practices
ü 

Testers and developers should collaborate to write, run and maintain
tests.

ü 

Siloed testing where development hands over tests to QA not only
creates long feedback loops, but also leads to testers duplicating
automated tests with manual tests.

ü 

Expensive automated testing tools tend to make the feedback loop
worse. Developers should be able to run all tests, including performance
tests, to help them reproduce and diagnose any issue reported by QA.
Implementing
automated
testing

Anti-Pattern: Ice-cream cone
Manual Tests

UI tests
Service tests
(API, Integration,
Component)
Unit
tests

http://watirmelon.com/2012/01/31/introducing-the-software-testing-ice-cream-cone/
Implementing
automated
testing

Anti-Pattern: Ice-cream cone
x 

Avoid inverting your test pyramid

x 

Testing like this through the UI is slow and leads to brittle tests.

x 

Avoid using only a UI-oriented testing tool, as that focuses effort on
writing UI-level automated tests.

x 

If a bug is found by users, manual testing or high level testing, push a
test to catch that lower down the pyramid. 

x 

The only tests at a given level should be to test something that can't be
caught at a lower level, i.e. when testing multiple components together,
your tests should only check component integration, not each
component. That should have be done by lower-level tests.
Implementing
automated
testing

Challenges
q  Flaky tests
q  Tests take too much work to maintain
q  Too much effort to add tests for legacy codebases
Test data
11150 23958945 8594594359
8498343 0 940938493 -9059894
892728937 90808908 323232
Test Data

Types of test data
q  Test-specific data: This is the data that drives the behaviour
under test. It represents the specifics of the case under test.
q  Test reference data: Data that needs to be there but actually
has little bearing upon the behaviour under test.
q  Application reference data: Irrelevant to the behaviour
under test, but needs to be there to allow the application to
start up.
References

Best practices
Avoid dependencies between tests.
Rather than using database dumps, use the
application’s API to set up the correct state.
Don’t use production data.
Deployment Patterns

Stay tuned for Part 5…
go

Continuous Delivery

Learn More

See how Go can help you in
your CD journey

Deploy a great product faster.

Agile teams deliver working software early and often.
Go automates and streamlines the build-test-release
cycle for worry-free, continuous delivery of your
product.

More Related Content

More from ThoughtWorks Studios

Improving business outcomes through rapid data visualisation
Improving business outcomes through rapid data visualisationImproving business outcomes through rapid data visualisation
Improving business outcomes through rapid data visualisationThoughtWorks Studios
 
How to implement continuous delivery with enterprise java middleware?
How to implement continuous delivery with enterprise java middleware?How to implement continuous delivery with enterprise java middleware?
How to implement continuous delivery with enterprise java middleware?ThoughtWorks Studios
 
How do you implement Continuous Delivery? Part 3: All about Pipelines
How do you implement Continuous Delivery? Part 3: All about PipelinesHow do you implement Continuous Delivery? Part 3: All about Pipelines
How do you implement Continuous Delivery? Part 3: All about PipelinesThoughtWorks Studios
 
How do you accelerate your enterprise agility?
How do you accelerate your enterprise agility?How do you accelerate your enterprise agility?
How do you accelerate your enterprise agility?ThoughtWorks Studios
 
How do you get accurate visibility on a multi-team project?
How do you get accurate visibility  on a  multi-team project?How do you get accurate visibility  on a  multi-team project?
How do you get accurate visibility on a multi-team project?ThoughtWorks Studios
 
What is the best way to measure progress on an Agile project?
What is the best way to measure progress on an Agile project?What is the best way to measure progress on an Agile project?
What is the best way to measure progress on an Agile project?ThoughtWorks Studios
 
Distributed agile testing_for_enterprises
Distributed agile testing_for_enterprisesDistributed agile testing_for_enterprises
Distributed agile testing_for_enterprisesThoughtWorks Studios
 
Succeeding With Globally Distributed Agile
Succeeding With Globally Distributed AgileSucceeding With Globally Distributed Agile
Succeeding With Globally Distributed AgileThoughtWorks Studios
 
Mingle Case-study with Minnesotta State Colleges and Universities
Mingle Case-study with Minnesotta State Colleges and UniversitiesMingle Case-study with Minnesotta State Colleges and Universities
Mingle Case-study with Minnesotta State Colleges and UniversitiesThoughtWorks Studios
 
Beyond the Scrum: Implementing Lean Software Practices in Your Organization
Beyond the Scrum: Implementing Lean Software Practices in Your OrganizationBeyond the Scrum: Implementing Lean Software Practices in Your Organization
Beyond the Scrum: Implementing Lean Software Practices in Your Organization ThoughtWorks Studios
 
Cloud Computing - Benefits and Challenges
Cloud Computing - Benefits and ChallengesCloud Computing - Benefits and Challenges
Cloud Computing - Benefits and ChallengesThoughtWorks Studios
 

More from ThoughtWorks Studios (18)

Improving business outcomes through rapid data visualisation
Improving business outcomes through rapid data visualisationImproving business outcomes through rapid data visualisation
Improving business outcomes through rapid data visualisation
 
Evolving for Multiple Screens
Evolving for Multiple ScreensEvolving for Multiple Screens
Evolving for Multiple Screens
 
How to implement continuous delivery with enterprise java middleware?
How to implement continuous delivery with enterprise java middleware?How to implement continuous delivery with enterprise java middleware?
How to implement continuous delivery with enterprise java middleware?
 
How do you implement Continuous Delivery? Part 3: All about Pipelines
How do you implement Continuous Delivery? Part 3: All about PipelinesHow do you implement Continuous Delivery? Part 3: All about Pipelines
How do you implement Continuous Delivery? Part 3: All about Pipelines
 
How do you accelerate your enterprise agility?
How do you accelerate your enterprise agility?How do you accelerate your enterprise agility?
How do you accelerate your enterprise agility?
 
How do you measure value?
How do you measure value?How do you measure value?
How do you measure value?
 
How do you get accurate visibility on a multi-team project?
How do you get accurate visibility  on a  multi-team project?How do you get accurate visibility  on a  multi-team project?
How do you get accurate visibility on a multi-team project?
 
What is the best way to measure progress on an Agile project?
What is the best way to measure progress on an Agile project?What is the best way to measure progress on an Agile project?
What is the best way to measure progress on an Agile project?
 
2012 vod qa_keynote
2012 vod qa_keynote2012 vod qa_keynote
2012 vod qa_keynote
 
Distributed agile testing_for_enterprises
Distributed agile testing_for_enterprisesDistributed agile testing_for_enterprises
Distributed agile testing_for_enterprises
 
Tw specifications for-testing1
Tw specifications for-testing1Tw specifications for-testing1
Tw specifications for-testing1
 
Agile Metrics That Matter
Agile Metrics That MatterAgile Metrics That Matter
Agile Metrics That Matter
 
Succeeding With Globally Distributed Agile
Succeeding With Globally Distributed AgileSucceeding With Globally Distributed Agile
Succeeding With Globally Distributed Agile
 
Mingle Case-study with Minnesotta State Colleges and Universities
Mingle Case-study with Minnesotta State Colleges and UniversitiesMingle Case-study with Minnesotta State Colleges and Universities
Mingle Case-study with Minnesotta State Colleges and Universities
 
Beyond the Scrum: Implementing Lean Software Practices in Your Organization
Beyond the Scrum: Implementing Lean Software Practices in Your OrganizationBeyond the Scrum: Implementing Lean Software Practices in Your Organization
Beyond the Scrum: Implementing Lean Software Practices in Your Organization
 
Agile Not Fragile
Agile Not FragileAgile Not Fragile
Agile Not Fragile
 
Transitioning To Agile
Transitioning To Agile Transitioning To Agile
Transitioning To Agile
 
Cloud Computing - Benefits and Challenges
Cloud Computing - Benefits and ChallengesCloud Computing - Benefits and Challenges
Cloud Computing - Benefits and Challenges
 

Recently uploaded

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 

Recently uploaded (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 

How do you implement Continuous Delivery? Part 4: Automated Testing

  • 1. How do you implement Continuous Delivery? Part 4: Automated Testing
  • 3. critique the product business facing support programming technology facing Implementing automated testing Agile Testing Quadrants http://www.exampler.com/old-blog/2003/08/22/#agile-testing-project-2 http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/
  • 4. business facing support programming technology facing Implementing automated testing Agile Testing Quadrants critique the product functional tests prototypes simulation showcases exploratory testing usability testing unit tests component tests system tests performance tests load tests security tests http://www.exampler.com/old-blog/2003/08/22/#agile-testing-project-2 http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/
  • 6. Implementing automated testing Software Testing Pyramid Manual Tests End-to-end Business facing Localized Technology facing UI tests Service tests (API, Integration, Component) Unit tests http://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid
  • 7. Implementing automated testing Software Testing Pyramid §  Tests at the bottom of the pyramid focus on smaller sections of code, e.g. unit tests. §  These tests are the foundation of a good test automation strategy, they are quick to run and there should be many of them. §  They run at the earlier stages of the pipeline. Unit tests
  • 8. Implementing automated testing Software Testing Pyramid §  Tests in the middle of the pyramid cover larger aggregation of code - components, services, etc. §  Service tests provide many advantages of endto-end tests while avoiding UI complexities. §  They run only after the build has passed unit level tests. Service Tests
  • 9. Implementing automated testing Software Testing Pyramid §  Tests at the top cover the "full stack” and are the slowest to run. §  Don’t write a test for every acceptance criteria (antipattern), instead use a few journeys to cover main areas of the code.  §  They run only after the build has passed both the unit level and service level tests. UI tests
  • 10. Implementing automated testing Working practices ü  Testers and developers should collaborate to write, run and maintain tests. ü  Siloed testing where development hands over tests to QA not only creates long feedback loops, but also leads to testers duplicating automated tests with manual tests. ü  Expensive automated testing tools tend to make the feedback loop worse. Developers should be able to run all tests, including performance tests, to help them reproduce and diagnose any issue reported by QA.
  • 11. Implementing automated testing Anti-Pattern: Ice-cream cone Manual Tests UI tests Service tests (API, Integration, Component) Unit tests http://watirmelon.com/2012/01/31/introducing-the-software-testing-ice-cream-cone/
  • 12. Implementing automated testing Anti-Pattern: Ice-cream cone x  Avoid inverting your test pyramid x  Testing like this through the UI is slow and leads to brittle tests. x  Avoid using only a UI-oriented testing tool, as that focuses effort on writing UI-level automated tests. x  If a bug is found by users, manual testing or high level testing, push a test to catch that lower down the pyramid.  x  The only tests at a given level should be to test something that can't be caught at a lower level, i.e. when testing multiple components together, your tests should only check component integration, not each component. That should have be done by lower-level tests.
  • 13. Implementing automated testing Challenges q  Flaky tests q  Tests take too much work to maintain q  Too much effort to add tests for legacy codebases
  • 14. Test data 11150 23958945 8594594359 8498343 0 940938493 -9059894 892728937 90808908 323232
  • 15. Test Data Types of test data q  Test-specific data: This is the data that drives the behaviour under test. It represents the specifics of the case under test. q  Test reference data: Data that needs to be there but actually has little bearing upon the behaviour under test. q  Application reference data: Irrelevant to the behaviour under test, but needs to be there to allow the application to start up.
  • 16. References Best practices Avoid dependencies between tests. Rather than using database dumps, use the application’s API to set up the correct state. Don’t use production data.
  • 18. go Continuous Delivery Learn More See how Go can help you in your CD journey Deploy a great product faster. Agile teams deliver working software early and often. Go automates and streamlines the build-test-release cycle for worry-free, continuous delivery of your product.