SlideShare a Scribd company logo
Automated testing
Why?
Markko Paas
markko.paas@gmail.com
goodies
levels
crosstab
lessons
✓ Product quality
Frequency and severity of defects
✓ Documentation
Business requirements
Technical specification
The authorization page
✓ should be at the correct url (3531ms)
✓ should display client_not_specified if client_id is missing as a parameter (2818ms)
✓ should display invalid_redirect_uri if wrong redirect_uri is sent as a parameter (2796ms)
✓ should display invalid_redirect_uri if client does not have a redirect_uri configured (2789ms)
✓ should redirect to the login page if the user is not logged in (2434ms)
✓ should redirect back to client with an access token on successful login (6149ms)
✓ should go back to client, when clicking on browser back button after successful login (5674ms)
When the user is already logged in
✓ should redirect back to client with an access token (1975ms)
✓ should redirect back to client with an id_token if the requested scope includes openid (2036ms)
✓ should redirect back to client with an id_token that contains the provided nonce (2150ms)
✓ should redirect back to client with a code as a query parameter (2100ms)
✓ should redirect back to client with a code and id_token if response_type includes both (2232ms)
✓ should go back to client, when clicking on browser back button (2448ms)
✓ should redirect to the login page if the login state has expired (4210ms)
✓ Continuous integration and deployment
Rapid cycles = early feedback
Smaller scope = smaller risk
Effort
per
feature
Time
✓ Refactoring
Gerard Meszaros (2003)
✓ Efficiency
Category Business value
Product quality Frequency and severity of defects
Continuous integration and deployment Rapid cycles
Documentation
Business requirements Efficiency of team communication
Technical specification Effort for understanding the system
Development
Enables refactoring Cost of new features and bugfixes
Modular design Cost of new features and bugfixes
Reduce interactive debugging Cost of new features and bugfixes
Component2 Component3
C3mock
Component1
Unit1 Unit2
component test
unit test
U2mock
unit test
manual exploratory test
end-to-end test
acceptance test
minutes / hours
~10 s / ~ 10 min
~10 ms / ~ 10 s
~30 s / ~ 2 min
✓ goodies
✓ levels
crosstab
lessons
Production
bug
prevention
Continuous
integration
and
deployment
Documentation Development support
Business
requirements
Technical
specification
Enables
refactoring
Flexible
design
Reduce
interactive
debugging
Exploratory ■
Prod-Smoke ▪ ■
Acceptance ▪ ■ ■
End-to-end ▪ ■ ▪
Component ▪ ■ ■ ■
Unit ▫ ■ ■ ▪ ■ ■
Unit tests - focus on describing the intention
Coverage 100%
Atomic
Independent
Aggressive maintenance
Critical code review
Production
bug
prevention
Continuous
integration
and
deployment
Documentation Development support
Business
requirements
Technical
specification
Enables
refactoring
Flexible
design
Reduce
interactive
debugging
Unit ▫ ■ ■ ▪ ■ ■
Component tests - focus on enabling refactoring
Cover 100% interface
Avoid referring internals
Mock dependencies
Production
bug
prevention
Continuous
integration
and
deployment
Documentation Development support
Business
requirements
Technical
specification
Enables
refactoring
Flexible
design
Reduce
interactive
debugging
Component ▪ ■ ■ ■
Recap
- Code review is your only chance for testing the readability of the specification
- Don’t let unit tests pile up and rot
- Acceptance tests and contract tests for business requirements tracking
- Unit tests for technical specification
- Maintain component tests interface-coverage
Why not?
References
Meszaros G. (2007). xUnit Test Patterns: Refactoring Test Code. Addison Wesley
http://xunitpatterns.com/~gerard/xpau2003-test-automation-manifesto-paper.pdf
http://xunitpatterns.com/~gerard/xunitTutorialSlides-V1.pdf
Clemson T. (2014). Testing Strategies in a Microservice Architecture
http://martinfowler.com/articles/microservice-testing/

More Related Content

Viewers also liked

UK Expertise on Future Cities
UK Expertise on Future CitiesUK Expertise on Future Cities
Slideshare showcase
Slideshare showcase Slideshare showcase
Slideshare showcase Koren Wong
 
The CLIC project accelerator overview
The CLIC project accelerator overviewThe CLIC project accelerator overview
The CLIC project accelerator overview
asafrona
 
Compact Linear Collider (CLIC)
Compact Linear Collider (CLIC)Compact Linear Collider (CLIC)
Compact Linear Collider (CLIC)
asafrona
 
CLIC Accelerator: status, plans and outlook
CLIC Accelerator: status, plans and outlook CLIC Accelerator: status, plans and outlook
CLIC Accelerator: status, plans and outlook
asafrona
 
Test Driven Development using QUnit
Test Driven Development using QUnitTest Driven Development using QUnit
Test Driven Development using QUnit
satejsahu
 
Mocha.js
Mocha.jsMocha.js
Mocha.js
LearningTech
 
2016 Summer - Araport Project Overview Leaflet
2016 Summer - Araport Project Overview Leaflet2016 Summer - Araport Project Overview Leaflet
2016 Summer - Araport Project Overview Leaflet
Araport
 
iDiffIR: Identifying differential intron retention from RNA-seq
iDiffIR: Identifying differential intron retention from RNA-seqiDiffIR: Identifying differential intron retention from RNA-seq
iDiffIR: Identifying differential intron retention from RNA-seq
Araport
 
PMR metabolomics and transcriptomics database and its RESTful web APIs: A dat...
PMR metabolomics and transcriptomics database and its RESTful web APIs: A dat...PMR metabolomics and transcriptomics database and its RESTful web APIs: A dat...
PMR metabolomics and transcriptomics database and its RESTful web APIs: A dat...
Araport
 
Austin Slide Show 2011
Austin Slide Show 2011Austin Slide Show 2011
Austin Slide Show 2011unkraut
 
Επτανησιακή Zωγραφική Τέχνη
Επτανησιακή Zωγραφική ΤέχνηΕπτανησιακή Zωγραφική Τέχνη
Επτανησιακή Zωγραφική ΤέχνηMichelangelo705
 
The DATALAB - building a world-class innovation centre in data science
The DATALAB - building a world-class innovation centre in data scienceThe DATALAB - building a world-class innovation centre in data science
The DATALAB - building a world-class innovation centre in data science
University of Glasgow Research Strategy & Innovation Office
 

Viewers also liked (15)

UK Expertise on Future Cities
UK Expertise on Future CitiesUK Expertise on Future Cities
UK Expertise on Future Cities
 
Slideshare showcase
Slideshare showcase Slideshare showcase
Slideshare showcase
 
Plataforma
PlataformaPlataforma
Plataforma
 
The CLIC project accelerator overview
The CLIC project accelerator overviewThe CLIC project accelerator overview
The CLIC project accelerator overview
 
Compact Linear Collider (CLIC)
Compact Linear Collider (CLIC)Compact Linear Collider (CLIC)
Compact Linear Collider (CLIC)
 
CLIC Accelerator: status, plans and outlook
CLIC Accelerator: status, plans and outlook CLIC Accelerator: status, plans and outlook
CLIC Accelerator: status, plans and outlook
 
Test Driven Development using QUnit
Test Driven Development using QUnitTest Driven Development using QUnit
Test Driven Development using QUnit
 
Mocha.js
Mocha.jsMocha.js
Mocha.js
 
2016 Summer - Araport Project Overview Leaflet
2016 Summer - Araport Project Overview Leaflet2016 Summer - Araport Project Overview Leaflet
2016 Summer - Araport Project Overview Leaflet
 
iDiffIR: Identifying differential intron retention from RNA-seq
iDiffIR: Identifying differential intron retention from RNA-seqiDiffIR: Identifying differential intron retention from RNA-seq
iDiffIR: Identifying differential intron retention from RNA-seq
 
PMR metabolomics and transcriptomics database and its RESTful web APIs: A dat...
PMR metabolomics and transcriptomics database and its RESTful web APIs: A dat...PMR metabolomics and transcriptomics database and its RESTful web APIs: A dat...
PMR metabolomics and transcriptomics database and its RESTful web APIs: A dat...
 
Austin Slide Show 2011
Austin Slide Show 2011Austin Slide Show 2011
Austin Slide Show 2011
 
Επτανησιακή Zωγραφική Τέχνη
Επτανησιακή Zωγραφική ΤέχνηΕπτανησιακή Zωγραφική Τέχνη
Επτανησιακή Zωγραφική Τέχνη
 
The DATALAB - building a world-class innovation centre in data science
The DATALAB - building a world-class innovation centre in data scienceThe DATALAB - building a world-class innovation centre in data science
The DATALAB - building a world-class innovation centre in data science
 
scalaAlbi
scalaAlbiscalaAlbi
scalaAlbi
 

Similar to Automated testing - back to the roots

Continuous Testing at Scale the Walmart Way with Test Armada
Continuous Testing at Scale the Walmart Way with Test ArmadaContinuous Testing at Scale the Walmart Way with Test Armada
Continuous Testing at Scale the Walmart Way with Test Armada
Sauce Labs
 
Quality analysis pdf to study For your education
Quality analysis pdf to study For your educationQuality analysis pdf to study For your education
Quality analysis pdf to study For your education
Shraddhatadmare1
 
ANIn chennai Jul 2023 | Accelerating In-Sprint Automation with BDD -Nadheem N...
ANIn chennai Jul 2023 | Accelerating In-Sprint Automation with BDD -Nadheem N...ANIn chennai Jul 2023 | Accelerating In-Sprint Automation with BDD -Nadheem N...
ANIn chennai Jul 2023 | Accelerating In-Sprint Automation with BDD -Nadheem N...
AgileNetwork
 
Drive Faster Quality Insights through Customized Test Automation - Part 2
Drive Faster Quality Insights through Customized Test Automation - Part 2Drive Faster Quality Insights through Customized Test Automation - Part 2
Drive Faster Quality Insights through Customized Test Automation - Part 2
Perfecto by Perforce
 
SDLC Models - testing
SDLC Models - testingSDLC Models - testing
SDLC Models - testing
Prasad Gali
 
Test Automation Frameworks Final
Test Automation Frameworks   FinalTest Automation Frameworks   Final
Test Automation Frameworks Final
Margaret_Dickman
 
Cloud Storage Auditing Protocol with Verifiable Outsourcing of Key Updates
Cloud Storage Auditing Protocol with Verifiable Outsourcing of Key UpdatesCloud Storage Auditing Protocol with Verifiable Outsourcing of Key Updates
Cloud Storage Auditing Protocol with Verifiable Outsourcing of Key Updates
IRJET Journal
 
Orcanos QPack ALM Tool
Orcanos QPack ALM ToolOrcanos QPack ALM Tool
Orcanos QPack ALM Toolorcanos
 
Mercury Testdirector8.0 using Slides
Mercury Testdirector8.0 using SlidesMercury Testdirector8.0 using Slides
Mercury Testdirector8.0 using Slidestelab
 
Softwar tetesting basic
Softwar tetesting basicSoftwar tetesting basic
Softwar tetesting basic
parekhjigarh
 
Learn software testing with tech partnerz 1
Learn software testing with tech partnerz 1Learn software testing with tech partnerz 1
Learn software testing with tech partnerz 1Techpartnerz
 
The Art of Unit Testing - Towards a Testable Design
The Art of Unit Testing - Towards a Testable DesignThe Art of Unit Testing - Towards a Testable Design
The Art of Unit Testing - Towards a Testable Design
Victor Rentea
 
Amq Overview Continuous Quality Assurance
Amq Overview Continuous Quality AssuranceAmq Overview Continuous Quality Assurance
Amq Overview Continuous Quality Assurance
Sofandre Sya'banu, S.E., M.T.I.
 
Automated Low Level Requirements Testing for DO-178C
Automated Low Level Requirements Testing for DO-178CAutomated Low Level Requirements Testing for DO-178C
Automated Low Level Requirements Testing for DO-178C
QA Systems
 
End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020
Abhijeet Vaikar
 
Modern Testing Strategies for Evolving Ecosystems
Modern Testing Strategies for Evolving EcosystemsModern Testing Strategies for Evolving Ecosystems
Modern Testing Strategies for Evolving Ecosystems
Julian Warszawski
 
puneet_pall_resume
puneet_pall_resumepuneet_pall_resume
puneet_pall_resumepuneet pall
 

Similar to Automated testing - back to the roots (20)

Continuous Testing at Scale the Walmart Way with Test Armada
Continuous Testing at Scale the Walmart Way with Test ArmadaContinuous Testing at Scale the Walmart Way with Test Armada
Continuous Testing at Scale the Walmart Way with Test Armada
 
Quality analysis pdf to study For your education
Quality analysis pdf to study For your educationQuality analysis pdf to study For your education
Quality analysis pdf to study For your education
 
ANIn chennai Jul 2023 | Accelerating In-Sprint Automation with BDD -Nadheem N...
ANIn chennai Jul 2023 | Accelerating In-Sprint Automation with BDD -Nadheem N...ANIn chennai Jul 2023 | Accelerating In-Sprint Automation with BDD -Nadheem N...
ANIn chennai Jul 2023 | Accelerating In-Sprint Automation with BDD -Nadheem N...
 
Drive Faster Quality Insights through Customized Test Automation - Part 2
Drive Faster Quality Insights through Customized Test Automation - Part 2Drive Faster Quality Insights through Customized Test Automation - Part 2
Drive Faster Quality Insights through Customized Test Automation - Part 2
 
SDLC Models - testing
SDLC Models - testingSDLC Models - testing
SDLC Models - testing
 
Test Automation Frameworks Final
Test Automation Frameworks   FinalTest Automation Frameworks   Final
Test Automation Frameworks Final
 
Cloud Storage Auditing Protocol with Verifiable Outsourcing of Key Updates
Cloud Storage Auditing Protocol with Verifiable Outsourcing of Key UpdatesCloud Storage Auditing Protocol with Verifiable Outsourcing of Key Updates
Cloud Storage Auditing Protocol with Verifiable Outsourcing of Key Updates
 
Orcanos QPack ALM Tool
Orcanos QPack ALM ToolOrcanos QPack ALM Tool
Orcanos QPack ALM Tool
 
Mercury Testdirector8.0 using Slides
Mercury Testdirector8.0 using SlidesMercury Testdirector8.0 using Slides
Mercury Testdirector8.0 using Slides
 
Softwar tetesting basic
Softwar tetesting basicSoftwar tetesting basic
Softwar tetesting basic
 
Learn software testing with tech partnerz 1
Learn software testing with tech partnerz 1Learn software testing with tech partnerz 1
Learn software testing with tech partnerz 1
 
The Art of Unit Testing - Towards a Testable Design
The Art of Unit Testing - Towards a Testable DesignThe Art of Unit Testing - Towards a Testable Design
The Art of Unit Testing - Towards a Testable Design
 
Kraig Kottenstette 102016.doc
Kraig Kottenstette 102016.docKraig Kottenstette 102016.doc
Kraig Kottenstette 102016.doc
 
Amq Overview Continuous Quality Assurance
Amq Overview Continuous Quality AssuranceAmq Overview Continuous Quality Assurance
Amq Overview Continuous Quality Assurance
 
Automated Low Level Requirements Testing for DO-178C
Automated Low Level Requirements Testing for DO-178CAutomated Low Level Requirements Testing for DO-178C
Automated Low Level Requirements Testing for DO-178C
 
End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020
 
Modern Testing Strategies for Evolving Ecosystems
Modern Testing Strategies for Evolving EcosystemsModern Testing Strategies for Evolving Ecosystems
Modern Testing Strategies for Evolving Ecosystems
 
Resume 2.0
Resume 2.0Resume 2.0
Resume 2.0
 
Resume 2.0
Resume 2.0Resume 2.0
Resume 2.0
 
puneet_pall_resume
puneet_pall_resumepuneet_pall_resume
puneet_pall_resume
 

Recently uploaded

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
abdulrafaychaudhry
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 

Recently uploaded (20)

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 

Automated testing - back to the roots

  • 3. ✓ Product quality Frequency and severity of defects
  • 5. The authorization page ✓ should be at the correct url (3531ms) ✓ should display client_not_specified if client_id is missing as a parameter (2818ms) ✓ should display invalid_redirect_uri if wrong redirect_uri is sent as a parameter (2796ms) ✓ should display invalid_redirect_uri if client does not have a redirect_uri configured (2789ms) ✓ should redirect to the login page if the user is not logged in (2434ms) ✓ should redirect back to client with an access token on successful login (6149ms) ✓ should go back to client, when clicking on browser back button after successful login (5674ms) When the user is already logged in ✓ should redirect back to client with an access token (1975ms) ✓ should redirect back to client with an id_token if the requested scope includes openid (2036ms) ✓ should redirect back to client with an id_token that contains the provided nonce (2150ms) ✓ should redirect back to client with a code as a query parameter (2100ms) ✓ should redirect back to client with a code and id_token if response_type includes both (2232ms) ✓ should go back to client, when clicking on browser back button (2448ms) ✓ should redirect to the login page if the login state has expired (4210ms)
  • 6. ✓ Continuous integration and deployment Rapid cycles = early feedback Smaller scope = smaller risk
  • 9. Category Business value Product quality Frequency and severity of defects Continuous integration and deployment Rapid cycles Documentation Business requirements Efficiency of team communication Technical specification Effort for understanding the system Development Enables refactoring Cost of new features and bugfixes Modular design Cost of new features and bugfixes Reduce interactive debugging Cost of new features and bugfixes
  • 10. Component2 Component3 C3mock Component1 Unit1 Unit2 component test unit test U2mock unit test manual exploratory test end-to-end test acceptance test minutes / hours ~10 s / ~ 10 min ~10 ms / ~ 10 s ~30 s / ~ 2 min
  • 13. Unit tests - focus on describing the intention Coverage 100% Atomic Independent Aggressive maintenance Critical code review Production bug prevention Continuous integration and deployment Documentation Development support Business requirements Technical specification Enables refactoring Flexible design Reduce interactive debugging Unit ▫ ■ ■ ▪ ■ ■
  • 14. Component tests - focus on enabling refactoring Cover 100% interface Avoid referring internals Mock dependencies Production bug prevention Continuous integration and deployment Documentation Development support Business requirements Technical specification Enables refactoring Flexible design Reduce interactive debugging Component ▪ ■ ■ ■
  • 15. Recap - Code review is your only chance for testing the readability of the specification - Don’t let unit tests pile up and rot - Acceptance tests and contract tests for business requirements tracking - Unit tests for technical specification - Maintain component tests interface-coverage
  • 17.
  • 18. References Meszaros G. (2007). xUnit Test Patterns: Refactoring Test Code. Addison Wesley http://xunitpatterns.com/~gerard/xpau2003-test-automation-manifesto-paper.pdf http://xunitpatterns.com/~gerard/xunitTutorialSlides-V1.pdf Clemson T. (2014). Testing Strategies in a Microservice Architecture http://martinfowler.com/articles/microservice-testing/