SlideShare a Scribd company logo
Test Automation Pyramid
T. Alexander Lystad, Chief QA Architect, VESD
Test Automation
Why?
Allows you to test more with less effort
Allows you to deploy/release more quickly and more frequently
Higher quality software
How?
As a natural part of the development process
A story is not done until appropriate automated tests are passing
Test Automation Pyramid
Shows different technical levels on which
you can have automated tests
A model
Going up
Scope increases
Execution time increases
Effort increases
Guideline for relative distribution of your
testing effort
Unit Tests
Testing smallest possible parts of the system
in isolation
Use of test doubles to replace dependencies
Dummies, stubs, spies, fakes, mocks
Smallest scope
Easier to locate and understand errors
Best performance
Execute early and often
Won’t catch all defects
Component Integration Tests
● Testing that multiple components work
together
● Test doubles are not used for the integration(s)
you want to test
● Varying scope
● Good performance
● Won’t catch all defects
API Tests
Testing that your APIs behave as expected
REST
SOAP
...
Big scope
Involves many components
Decent performance
Won’t catch all defects
UI Tests
End-to-end testing
Maximum scope
Can catch many problems
Worst performance
Don't use UI for setup and teardown
Parallelize
Can be brittle, flaky and a lot of work to maintain
Test critical user workflows
Won’t catch all defects
Exploratory Testing
Manual testing
Not regression testing
Experience + creativity
Used to learn about the system, discover defects
and to improve automated testing
Can be based on a mission/test charter or persona
Test for accurate and helpful error messages when registering
an expense incorrectly
Test for unexpected results
when configuring company
details in two different tabs
Impatient manager new to the system
Where is…?
● Acceptance testing
● BDD
● Smoke testing
● Security testing
● Performance testing
● System testing
● System integration testing
● …
What should I aim for?
Depends, discuss in your team
As an example, Google suggests
70% unit tests
20% integration tests
10% end-to-end tests
Tools
Selenium WebDriver (VAFT)
JAutomate, Sikuli
SoapUI, RestSharp
JIRA Capture
Hour-glassIce cream cone
Anti-patterns
Other Test Automation Pyramids
Testing Week Task
Confluence: Test Automation Pyramid - Testing Week 2015
How does your team's test automation effort fit into the Test Automation Pyramid,
how does your pyramid look today, and how can it improve going forward?
Example workflow
Idea → Production
Example workflow
Design process
Acceptance criteria drafted
Example workflow
Refinement process
3 amigos: PO/BA + dev +
QA/tester
Acceptance criteria finalized
Acceptance tests finalized
Risks and mitigation
What should be tested, on
which level
Example workflow
Implementation
Developers have a clear picture
of what is expected
Decided automated tests are
implemented as part of story
development
Example workflow: Test execution
Balance between quick feedback
and discovering problems early
During implementation
After implementation
At the beginning of your delivery
pipeline (CI server)
After deployments
Internal Test
User Acceptance
Production
Exploratory testing
Summary
The test automation pyramid is a useful thinking tool and discussion reference
Make conscious decisions about what to test on which level, and also where you
run which tests
Try to distribute your tests optimally
High quality
High velocity
Medium effort
Discuss with your team
Do the Testing Week task
Questions or comments?
Ad

More Related Content

What's hot (20)

Shift Left Testing: A New Paradigm Shift To Quality
Shift Left Testing: A New Paradigm Shift To QualityShift Left Testing: A New Paradigm Shift To Quality
Shift Left Testing: A New Paradigm Shift To Quality
Pooja Wandile
 
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
Naresh Jain
 
Saving Time By Testing With Jest
Saving Time By Testing With JestSaving Time By Testing With Jest
Saving Time By Testing With Jest
Ben McCormick
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
Archana Krushnan
 
Introduction to Agile Testing
Introduction to Agile TestingIntroduction to Agile Testing
Introduction to Agile Testing
Raymond Adrian (Rad) Butalid
 
Automation testing & Unit testing
Automation testing & Unit testingAutomation testing & Unit testing
Automation testing & Unit testing
Kapil Rajpurohit
 
Test Automation - Keytorc Approach
Test Automation - Keytorc Approach Test Automation - Keytorc Approach
Test Automation - Keytorc Approach
Keytorc Software Testing Services
 
Full stack web development
Full stack web developmentFull stack web development
Full stack web development
Crampete
 
Agile and ATDD the perfect couple
Agile and ATDD the perfect coupleAgile and ATDD the perfect couple
Agile and ATDD the perfect couple
Stephen Tucker
 
Track code quality with SonarQube
Track code quality with SonarQubeTrack code quality with SonarQube
Track code quality with SonarQube
Dmytro Patserkovskyi
 
API documentation
API documentationAPI documentation
API documentation
Anindita Basu
 
Continuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQubeContinuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQube
Emre Dündar
 
Robot framework
Robot frameworkRobot framework
Robot framework
Rochak Bhalla
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
Mihai-Cristian Fratila
 
Shift Left Quality Assurance: How to do it. Why it matters.
Shift Left Quality Assurance: How to do it. Why it matters.Shift Left Quality Assurance: How to do it. Why it matters.
Shift Left Quality Assurance: How to do it. Why it matters.
Worksoft
 
Test Strategy
Test StrategyTest Strategy
Test Strategy
Zbyszek Mockun
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
CodeOps Technologies LLP
 
Software Testing
Software TestingSoftware Testing
Software Testing
Inocentshuja Ahmad
 
QA Best Practices in Agile World_new
QA Best Practices in Agile World_newQA Best Practices in Agile World_new
QA Best Practices in Agile World_new
Praveen Dosapati (CSM)
 
AI and Machine Learning for Testers
AI and Machine Learning for TestersAI and Machine Learning for Testers
AI and Machine Learning for Testers
TechWell
 
Shift Left Testing: A New Paradigm Shift To Quality
Shift Left Testing: A New Paradigm Shift To QualityShift Left Testing: A New Paradigm Shift To Quality
Shift Left Testing: A New Paradigm Shift To Quality
Pooja Wandile
 
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
Naresh Jain
 
Saving Time By Testing With Jest
Saving Time By Testing With JestSaving Time By Testing With Jest
Saving Time By Testing With Jest
Ben McCormick
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
Archana Krushnan
 
Automation testing & Unit testing
Automation testing & Unit testingAutomation testing & Unit testing
Automation testing & Unit testing
Kapil Rajpurohit
 
Full stack web development
Full stack web developmentFull stack web development
Full stack web development
Crampete
 
Agile and ATDD the perfect couple
Agile and ATDD the perfect coupleAgile and ATDD the perfect couple
Agile and ATDD the perfect couple
Stephen Tucker
 
Continuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQubeContinuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQube
Emre Dündar
 
Shift Left Quality Assurance: How to do it. Why it matters.
Shift Left Quality Assurance: How to do it. Why it matters.Shift Left Quality Assurance: How to do it. Why it matters.
Shift Left Quality Assurance: How to do it. Why it matters.
Worksoft
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
CodeOps Technologies LLP
 
AI and Machine Learning for Testers
AI and Machine Learning for TestersAI and Machine Learning for Testers
AI and Machine Learning for Testers
TechWell
 

Viewers also liked (20)

Inverting The Testing Pyramid
Inverting The Testing PyramidInverting The Testing Pyramid
Inverting The Testing Pyramid
Naresh Jain
 
JavaScript as a First Class Language
JavaScript as a First Class LanguageJavaScript as a First Class Language
JavaScript as a First Class Language
fabiopereirame
 
Deliver anything, anywhere, anytime
Deliver anything, anywhere, anytimeDeliver anything, anywhere, anytime
Deliver anything, anywhere, anytime
Poornima Durairaj
 
Test pyramid
Test pyramidTest pyramid
Test pyramid
Poornima Durairaj
 
Test Driven Development via Agile Testing
Test Driven Development via Agile TestingTest Driven Development via Agile Testing
Test Driven Development via Agile Testing
Anand Bagmar
 
Inverting Test Pyramid - A First Hand Experience Report
Inverting Test Pyramid - A First Hand Experience ReportInverting Test Pyramid - A First Hand Experience Report
Inverting Test Pyramid - A First Hand Experience Report
Naresh Jain
 
The Test Pyramid
The Test PyramidThe Test Pyramid
The Test Pyramid
Thiago Ghisi
 
Testing Frameworks
Testing FrameworksTesting Frameworks
Testing Frameworks
Moataz Nabil
 
Build And Test Automation - Shortening the Feedback Loop
Build And Test Automation - Shortening the Feedback LoopBuild And Test Automation - Shortening the Feedback Loop
Build And Test Automation - Shortening the Feedback Loop
Rally Software
 
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in AgileAnand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar
 
Agile Testing Dilemmas
Agile Testing DilemmasAgile Testing Dilemmas
Agile Testing Dilemmas
Aman King
 
Differences between Testing in Waterfall and Agile
Differences between Testing in Waterfall and AgileDifferences between Testing in Waterfall and Agile
Differences between Testing in Waterfall and Agile
Return on Intelligence
 
Transforming Organizations with CI/CD
Transforming Organizations with CI/CDTransforming Organizations with CI/CD
Transforming Organizations with CI/CD
Cprime
 
Docker in a big company
Docker in a big companyDocker in a big company
Docker in a big company
Docker, Inc.
 
Jenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryJenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous Delivery
Virendra Bhalothia
 
Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees
Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, CloudbeesReduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees
Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees
Docker, Inc.
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
Martin Málek
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
dotCloud
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Robert McDermott
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
Docker, Inc.
 
Inverting The Testing Pyramid
Inverting The Testing PyramidInverting The Testing Pyramid
Inverting The Testing Pyramid
Naresh Jain
 
JavaScript as a First Class Language
JavaScript as a First Class LanguageJavaScript as a First Class Language
JavaScript as a First Class Language
fabiopereirame
 
Deliver anything, anywhere, anytime
Deliver anything, anywhere, anytimeDeliver anything, anywhere, anytime
Deliver anything, anywhere, anytime
Poornima Durairaj
 
Test Driven Development via Agile Testing
Test Driven Development via Agile TestingTest Driven Development via Agile Testing
Test Driven Development via Agile Testing
Anand Bagmar
 
Inverting Test Pyramid - A First Hand Experience Report
Inverting Test Pyramid - A First Hand Experience ReportInverting Test Pyramid - A First Hand Experience Report
Inverting Test Pyramid - A First Hand Experience Report
Naresh Jain
 
Testing Frameworks
Testing FrameworksTesting Frameworks
Testing Frameworks
Moataz Nabil
 
Build And Test Automation - Shortening the Feedback Loop
Build And Test Automation - Shortening the Feedback LoopBuild And Test Automation - Shortening the Feedback Loop
Build And Test Automation - Shortening the Feedback Loop
Rally Software
 
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in AgileAnand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar
 
Agile Testing Dilemmas
Agile Testing DilemmasAgile Testing Dilemmas
Agile Testing Dilemmas
Aman King
 
Differences between Testing in Waterfall and Agile
Differences between Testing in Waterfall and AgileDifferences between Testing in Waterfall and Agile
Differences between Testing in Waterfall and Agile
Return on Intelligence
 
Transforming Organizations with CI/CD
Transforming Organizations with CI/CDTransforming Organizations with CI/CD
Transforming Organizations with CI/CD
Cprime
 
Docker in a big company
Docker in a big companyDocker in a big company
Docker in a big company
Docker, Inc.
 
Jenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryJenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous Delivery
Virendra Bhalothia
 
Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees
Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, CloudbeesReduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees
Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees
Docker, Inc.
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
Martin Málek
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
dotCloud
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Robert McDermott
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
Docker, Inc.
 
Ad

Similar to Test Automation Pyramid (20)

Agile testing
Agile testingAgile testing
Agile testing
Raj Indugula
 
Futureofqa
FutureofqaFutureofqa
Futureofqa
amitagarwal2006
 
Future of QA
Future of QAFuture of QA
Future of QA
amitagarwal2006
 
Testing in agile
Testing in agileTesting in agile
Testing in agile
Andrei Metelski
 
Designing Self-maintaining UI Tests for Web Applications
Designing Self-maintaining UI Tests for Web ApplicationsDesigning Self-maintaining UI Tests for Web Applications
Designing Self-maintaining UI Tests for Web Applications
TechWell
 
Enhancing Software Quality
Enhancing Software QualityEnhancing Software Quality
Enhancing Software Quality
Anand Prabhala
 
E2 e test with testcafe
E2 e test with testcafeE2 e test with testcafe
E2 e test with testcafe
Malang QA Community
 
Test automation within a scrum process
Test automation within a scrum processTest automation within a scrum process
Test automation within a scrum process
Kushan Shalindra Amarasiri - Technical QE Specialist
 
Lightning Talks by Globant - Automation (This app runs by itself )
Lightning Talks by Globant -  Automation (This app runs by itself ) Lightning Talks by Globant -  Automation (This app runs by itself )
Lightning Talks by Globant - Automation (This app runs by itself )
Globant
 
QAorHighway2016
QAorHighway2016QAorHighway2016
QAorHighway2016
Bhupesh Dahal
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
Sauce Labs
 
Automation Concepts
Automation ConceptsAutomation Concepts
Automation Concepts
Nishant Worah
 
Making the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To TestingMaking the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To Testing
Cameron Presley
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra Solutions
Quontra Solutions
 
Class 01.pptx
Class 01.pptxClass 01.pptx
Class 01.pptx
ranasinghadebabrata1
 
Relieveing the Testing Bottle Neck - Webinar
Relieveing the Testing Bottle Neck - WebinarRelieveing the Testing Bottle Neck - Webinar
Relieveing the Testing Bottle Neck - Webinar
Cprime
 
Relieving the Testing Bottle Neck in Your Projects | cPrime + QASymphony
Relieving the Testing Bottle Neck in Your Projects | cPrime + QASymphonyRelieving the Testing Bottle Neck in Your Projects | cPrime + QASymphony
Relieving the Testing Bottle Neck in Your Projects | cPrime + QASymphony
QASymphony
 
Software Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails ApplicationsSoftware Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails Applications
Bhavin Javia
 
Are Your Continuous Tests Too Fragile for Agile?
Are Your Continuous Tests Too Fragile for Agile?Are Your Continuous Tests Too Fragile for Agile?
Are Your Continuous Tests Too Fragile for Agile?
Parasoft
 
Ashish Baraiya
Ashish BaraiyaAshish Baraiya
Ashish Baraiya
Ashish Baraiya
 
Designing Self-maintaining UI Tests for Web Applications
Designing Self-maintaining UI Tests for Web ApplicationsDesigning Self-maintaining UI Tests for Web Applications
Designing Self-maintaining UI Tests for Web Applications
TechWell
 
Enhancing Software Quality
Enhancing Software QualityEnhancing Software Quality
Enhancing Software Quality
Anand Prabhala
 
Lightning Talks by Globant - Automation (This app runs by itself )
Lightning Talks by Globant -  Automation (This app runs by itself ) Lightning Talks by Globant -  Automation (This app runs by itself )
Lightning Talks by Globant - Automation (This app runs by itself )
Globant
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
Sauce Labs
 
Making the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To TestingMaking the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To Testing
Cameron Presley
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra Solutions
Quontra Solutions
 
Relieveing the Testing Bottle Neck - Webinar
Relieveing the Testing Bottle Neck - WebinarRelieveing the Testing Bottle Neck - Webinar
Relieveing the Testing Bottle Neck - Webinar
Cprime
 
Relieving the Testing Bottle Neck in Your Projects | cPrime + QASymphony
Relieving the Testing Bottle Neck in Your Projects | cPrime + QASymphonyRelieving the Testing Bottle Neck in Your Projects | cPrime + QASymphony
Relieving the Testing Bottle Neck in Your Projects | cPrime + QASymphony
QASymphony
 
Software Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails ApplicationsSoftware Quality and Test Strategies for Ruby and Rails Applications
Software Quality and Test Strategies for Ruby and Rails Applications
Bhavin Javia
 
Are Your Continuous Tests Too Fragile for Agile?
Are Your Continuous Tests Too Fragile for Agile?Are Your Continuous Tests Too Fragile for Agile?
Are Your Continuous Tests Too Fragile for Agile?
Parasoft
 
Ad

More from T. Alexander Lystad (7)

Lichess.org: Serving 5 Million Chess Games a Day with 125 Volunteers and €5 D...
Lichess.org: Serving 5 Million Chess Games a Day with 125 Volunteers and €5 D...Lichess.org: Serving 5 Million Chess Games a Day with 125 Volunteers and €5 D...
Lichess.org: Serving 5 Million Chess Games a Day with 125 Volunteers and €5 D...
T. Alexander Lystad
 
3 types of monitoring for 2020
3 types of monitoring for 20203 types of monitoring for 2020
3 types of monitoring for 2020
T. Alexander Lystad
 
Best practices for running Windows workloads on AWS - AWS Summit Stockholm (M...
Best practices for running Windows workloads on AWS - AWS Summit Stockholm (M...Best practices for running Windows workloads on AWS - AWS Summit Stockholm (M...
Best practices for running Windows workloads on AWS - AWS Summit Stockholm (M...
T. Alexander Lystad
 
AWS in Visma 2015-2018: Lessons Learned
AWS in Visma 2015-2018: Lessons LearnedAWS in Visma 2015-2018: Lessons Learned
AWS in Visma 2015-2018: Lessons Learned
T. Alexander Lystad
 
Visma Cloud Delivery Model - 3 years and 40 teams later (DevOpsDays Oslo 2018)
Visma Cloud Delivery Model - 3 years and 40 teams later (DevOpsDays Oslo 2018)Visma Cloud Delivery Model - 3 years and 40 teams later (DevOpsDays Oslo 2018)
Visma Cloud Delivery Model - 3 years and 40 teams later (DevOpsDays Oslo 2018)
T. Alexander Lystad
 
Feature toggling
Feature togglingFeature toggling
Feature toggling
T. Alexander Lystad
 
Agility in 2016
Agility in 2016Agility in 2016
Agility in 2016
T. Alexander Lystad
 
Lichess.org: Serving 5 Million Chess Games a Day with 125 Volunteers and €5 D...
Lichess.org: Serving 5 Million Chess Games a Day with 125 Volunteers and €5 D...Lichess.org: Serving 5 Million Chess Games a Day with 125 Volunteers and €5 D...
Lichess.org: Serving 5 Million Chess Games a Day with 125 Volunteers and €5 D...
T. Alexander Lystad
 
Best practices for running Windows workloads on AWS - AWS Summit Stockholm (M...
Best practices for running Windows workloads on AWS - AWS Summit Stockholm (M...Best practices for running Windows workloads on AWS - AWS Summit Stockholm (M...
Best practices for running Windows workloads on AWS - AWS Summit Stockholm (M...
T. Alexander Lystad
 
AWS in Visma 2015-2018: Lessons Learned
AWS in Visma 2015-2018: Lessons LearnedAWS in Visma 2015-2018: Lessons Learned
AWS in Visma 2015-2018: Lessons Learned
T. Alexander Lystad
 
Visma Cloud Delivery Model - 3 years and 40 teams later (DevOpsDays Oslo 2018)
Visma Cloud Delivery Model - 3 years and 40 teams later (DevOpsDays Oslo 2018)Visma Cloud Delivery Model - 3 years and 40 teams later (DevOpsDays Oslo 2018)
Visma Cloud Delivery Model - 3 years and 40 teams later (DevOpsDays Oslo 2018)
T. Alexander Lystad
 

Recently uploaded (20)

Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
AxisTechnolabs
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRYLEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
NidaFarooq10
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
AxisTechnolabs
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRYLEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
NidaFarooq10
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 

Test Automation Pyramid

  • 1. Test Automation Pyramid T. Alexander Lystad, Chief QA Architect, VESD
  • 2. Test Automation Why? Allows you to test more with less effort Allows you to deploy/release more quickly and more frequently Higher quality software How? As a natural part of the development process A story is not done until appropriate automated tests are passing
  • 3. Test Automation Pyramid Shows different technical levels on which you can have automated tests A model Going up Scope increases Execution time increases Effort increases Guideline for relative distribution of your testing effort
  • 4. Unit Tests Testing smallest possible parts of the system in isolation Use of test doubles to replace dependencies Dummies, stubs, spies, fakes, mocks Smallest scope Easier to locate and understand errors Best performance Execute early and often Won’t catch all defects
  • 5. Component Integration Tests ● Testing that multiple components work together ● Test doubles are not used for the integration(s) you want to test ● Varying scope ● Good performance ● Won’t catch all defects
  • 6. API Tests Testing that your APIs behave as expected REST SOAP ... Big scope Involves many components Decent performance Won’t catch all defects
  • 7. UI Tests End-to-end testing Maximum scope Can catch many problems Worst performance Don't use UI for setup and teardown Parallelize Can be brittle, flaky and a lot of work to maintain Test critical user workflows Won’t catch all defects
  • 8. Exploratory Testing Manual testing Not regression testing Experience + creativity Used to learn about the system, discover defects and to improve automated testing Can be based on a mission/test charter or persona Test for accurate and helpful error messages when registering an expense incorrectly Test for unexpected results when configuring company details in two different tabs Impatient manager new to the system
  • 9. Where is…? ● Acceptance testing ● BDD ● Smoke testing ● Security testing ● Performance testing ● System testing ● System integration testing ● …
  • 10. What should I aim for? Depends, discuss in your team As an example, Google suggests 70% unit tests 20% integration tests 10% end-to-end tests
  • 11. Tools Selenium WebDriver (VAFT) JAutomate, Sikuli SoapUI, RestSharp JIRA Capture
  • 14. Testing Week Task Confluence: Test Automation Pyramid - Testing Week 2015 How does your team's test automation effort fit into the Test Automation Pyramid, how does your pyramid look today, and how can it improve going forward?
  • 17. Example workflow Refinement process 3 amigos: PO/BA + dev + QA/tester Acceptance criteria finalized Acceptance tests finalized Risks and mitigation What should be tested, on which level
  • 18. Example workflow Implementation Developers have a clear picture of what is expected Decided automated tests are implemented as part of story development
  • 19. Example workflow: Test execution Balance between quick feedback and discovering problems early During implementation After implementation At the beginning of your delivery pipeline (CI server) After deployments Internal Test User Acceptance Production Exploratory testing
  • 20. Summary The test automation pyramid is a useful thinking tool and discussion reference Make conscious decisions about what to test on which level, and also where you run which tests Try to distribute your tests optimally High quality High velocity Medium effort Discuss with your team Do the Testing Week task

Editor's Notes

  • #2: My name is Alexander, and I’m usually one floor above, working on Quality Assurance stuff, although I am here quite often as well I want to give an introduction to the test automation pyramid, a concept which I think it is useful for everyone involved in the development process to know about, so hopefully we have many different roles in the audience Im going to start off with some observations about test automation in general
  • #3: When you boil it all down, we usually do test automation because it allows us to test more with less effort You invest some time into designing, implementing and maintaining your automated tests, and from that investment you get certain benefits: Don’t need to spend time and effort to do manual testing, at least not regression testing We can test things that are not possible or practical to do manually In some ways, automated tests are more accurate and more reliable Run tests all the time, continuous verification and quick feedback on that your service works as expect while we are constantly changing it When more and more of your test effort is automated, you can release in a shorter amount of time, and also more frequently which should be a goal in itself Result hopefully, is higher software quality Test automation should be done as a natural part of the development process, and not as an afterthought or something to be done when you have time If you do that, you will accumulate technical debt, that you will suffer for later A story is not done until appropriate automated tests are passing What is appropriate? That depends on many different factors, which is why it should be discussed in the team prior to implementation of a user story In that discussion you can use the test automation pyramid
  • #4: Shows different technical levels on which you can have automated tests: Unit Tests, Component Integration Tests, ... An important thing to mention is that this is a model. It is a thinking tool, something to be used as a reference, and it is imperfect by definition. You can create a pyramid like this in many different ways, and I will show you some examples of that later. As you move up in the pyramid, the scope of the tests increase, and their execution time, and the effort needed to create/run/maintain them Model argues that you should probably have more unit tests than component integration tests, more component integration tests than API tests, more UI tests than API tests, and so on. We’ll get into why as we go through the layers.
  • #5: With unit tests you want to test the smallest possible parts of the system in isolation To achieve that you replace dependencies with test doubles Dummies, stubs, spies, fakes, mocks An example for those who are not developers: If you’re creating a unit test for unit A, and unit A depends on unit B. In your unit test, you replace unit B with a test double that you create and control. So your unit test for unit A is not relying on unit B at all. Because we have replaced the dependencies that to unit B, our unit test has a very small scope. If it fails, we know exactly where the problem is - in unit A. The small scope is also why unit tests have the best performance in the pyramid. When you replace all the dependencies, so you are not writing to hard drive, talking to a database or integrating with an external system, and so on But even with a great unit test suite, you need another line of defense
  • #6: We already know that our units work as we expect them to, in isolation, now we want to make sure that they work in combination Which is why we don’t use test doubles, at least not for the integrations that we are interesting in testing So in my previous example, we would test unit A and B together, without using a test double You can have small component integration test like that, testing only two components, or you have bigger component integration tests, involving a bigger part of the system So the scope of these tests vary, but in general the performance is still pretty good, even though unit tests are faster
  • #7: Most services expose a lot of important functionality through APIs As an example, you might have a REST API that is used by your front-end, used by your mobile app, and used by external systems integrating with your system Now, you could consider API tests as being very large component integration tests, because the API relies on many different components on lower levels But when you are testing APIs, you have a different focus You are testing the system from more of a business and user perspective, thinking about how your API will be used You want to guarantee that your API can be used in a certain way, and that it behaves as it should Generally, API tests have a large scope, but they are still pretty fast, at least much faster than UI Tests If you know that your UI relies on a solid API, you don’t need a huge number of UI tests, which brings us to the next level
  • #8: Here I want to stress that I mean using the UI to test the application end-to-end, possibly with integrations to other systems. We are not about unit tests or component integration tests in JavaScript - that would be the bottom layer. By definition, these end-to-end tests have the largest scope compared to the other layers, which is Good because they can catch many different types of problems But you need to spend a little bit of time to figure out where the error actually is The large scope is also one reason for UI tests having the worst performance As an example, let's say you are using Selenium WebDriver which allows you to test web applications by automating the browser. In that case you automatically start a browser, download resources, execute JavaScript, the browser makes multiple calls to your REST API, then the backend makes multiple calls to the database, and possibly to other systems But to improve the performance of your UI tests you can Prepare or clean up test data with other means that perform better Run the tests in parallel, but doing that can be a big challenge in itself (tests, application, test infrastructure) Brittle, flaky and a lot of work to maintain: Because the scope of the test is so large. Brittle, meaning that they fail easily. Many things can impact the test, even though you didn’t intend to. Flakey, meaning that they fail inconsistently, for instance because you have a bigger test infrastructure involved that could randomly crash Rant: A flakey test is worse than having no test at all. If a test can fail when nothing is wrong, you will stop taking that test seriously. You will also waste a lot of time, running and re-running the test, investigating the results and so on. If you have flakey tests, address the root cause, and if you can't, delete the test, or switch to another technology. To get back on track: To avoid having too many UI tests you want to identify the most important user workflows in your application, and create tests that emulate a user using going through those workflows In general: Very valuable, but costly (for the same reason)
  • #9: Not a part of the pyramid itself, because it is manual testing but not regression testing Combine experience with the system, and experience as a tester, with creativity to explore the system, looking at the system from new angles, discovering new defects, and using what you learn to improve your automated tests Often, exploratory testing is based on a mission, test charter or persona <some examples> Example: Let’s say you act as this impatient manager, not filling out all the input fields you should and double and triple clicking all the buttons, and you discover a problem when clicking the Save button repeatedly Then you can investigate that, see if you have similar problems elsewhere and if you should have automated tests for catching these problems.
  • #10: So we have covered all the layers, but I am sure someone has been thinking where is this and that form of testing? The pyramid concerns itself with different technical levels of testing, while these examples here are either different motivations for testing, or certain properties you want to test for, and can be done on all or several of these technical levels
  • #12: I wanted to illustrate that there is no silver bullet. You can’t use one single tool for test automation. If you do, you might get this →
  • #13: This is what you don’t want. Ice cream cone: Mostly manual testing, started with Selenium WebDriver. Too many UI tests, so you start with SoapUI to create API tests. Completely opposite of what you want. Hour-glass: Developers write unit tests. Other people who write UI tests. No cooperation. Something to be cognizant of, and to avoid.
  • #14: Here are the test automation pyramids I promised you earlier. As you can see, there are many ways of creating a test automation pyramid. Maybe your system doesn’t have a UI. Or maybe you have some good arguments for why you should have more API tests than component integration tests, which then of course would be fine. It’s not really possible to have one ideal test automation pyramid for everyone, which is why there is a special Testing Week task for this
  • #15: Go to this page on Confluence. Use my example, or create your own pyramid. Make sure you have a common understanding within your team. Try figure how your test effort is distributed today, and how you can improve
  • #16: I want to talk about where the test automation pyramid is relevant in the development process Example workflow from someone having an idea until the idea has been implemented and deployed to Production QP: Where the team builds quality into the product DP: Where you verify quality QP: Quality increases, maximum quality when you push to mainline DP: Confidence increases, maximum confidence when you deploy to Production
  • #17: When the PO or BA is designing a user story they might draft some acceptance criteria - when A, B, and C are true, I consider the story to be fully implemented
  • #18: Then, during refinement/grooming/breakout, different roles collaborate closely, sometimes referred to as the 3 amigos Of course you can have more than 3 people, but all roles should be represented. So you might have a PO/BA, the person with the vision for the user story, a developer, and a QA/tester They make sure they have a common understanding of the story, they finalize the acceptance criteria, they finalize the acceptance tests, and they discuss risks and how to mitigate them In that discussion they plan what should be tested, on which level, and the concept of the pyramid can be very useful
  • #19: If you have done a good job in the refinement phase, developers should have a pretty clear picture of what is expected both in terms of functionality and automated tests Automated tests are implemented as part of the user story
  • #20: Assuming we have a good process for creating automated tests, where and when do we execute the tests? Typically unit tests and component integration tests are executed by developers during implementation, and before they push their changes to the mainline Then, you run the same tests on a CI server, in case someone forgot to run them locally, ‘ to make sure the tests pass on other machines as well, and as the last line of defence before you deploy that new change to the first test environment But then, which tests do you run in the different environments In this example we have 3 test environments, and they have different objectives In the internal test environment, all integrations are mocked, so our system is completely isolated. Because all the integrations are mocked, we are able to run all our API tests and our UI tests, verifying that this version works as expected and won’t cause problems when we promote it to the User Acceptance environment which is where we have real integrations In the User Acceptance environment can run the API and UI tests again, to make sure the system still works with but now with real integrations In the Production environment you probably only run a smoke test Exploratory testing In all environments Developers can do exploratory testing during/after implementation in their development environment QA/testers, or PO/BA can do it in any test environment. You can put a manual step anywhere in this automated delivery pipeline, so it is really up to you to see what fits you Some people are even doing exploratory testing in Production, using feature toggles to turn on a new feature only for internal users who do exploratory testing in Production
  • #21: A quick summary, to wrap up. The test automation pyramid is a useful thinking tool and discussion reference Make conscious decisions about what to test on which level, and also where you run which tests Try to distribute your tests optimally High quality High velocity Medium effort Discuss with your team Do the Testing Week task That’s it for me, do you have any questions or comments?
  • #22: REPEAT THE QUESTION