SlideShare a Scribd company logo
1 of 30
Download to read offline
#expoQA23
MADRID 31st of May to 1st of June 2023
Gaspar Nagy
RAMP up your testing solution:
test automation patterns
ExpoQA 2023, Madrid
Copyright © Gaspar Nagy
#expoQA23
MADRID 31st of May to 1st of June 2023
Gáspár Nagy
coach, trainer and bdd addict
creator of SpecFlow
gaspar@specsolutions.eu
https://specsolutions.eu
@gasparnagy
Find them on Amazon & Leanpub through http://bddbooks.com!
Copyright © Gaspar Nagy
#expoQA23
MADRID 31st of May to 1st of June 2023
Copyright © Gaspar Nagy
#expoQA23
MADRID 31st of May to 1st of June 2023
Today
• About design patterns
• Challenges of test automation today
• Benefits of using design patterns for test automation solutions
• Characteristics of test automation design patterns
• Documenting test automation design patterns
Copyright © Gaspar Nagy
Design Patterns
recognized construct that works
Why design patterns?
Source: Wikipedia
Better
Faster
Easier collaboration
Copyright © Gaspar Nagy
Challenges of Test
Automation
Why to build a good quality test automation
Photo by Denys Nevozhai on Unsplash
$$$
$$
$
Tests automation as “first class citizen”
Photo by Gaspar Nagy
Coding standards
Reviews
Tests
…
Test automation is difficult
Source: NASA
Test automation is difficult
Source: NASA
Requires “smart” solutions
Needs time and efforts
Involves expertise, research & collaboration
Copyright © Gaspar Nagy
How could patterns
help?
Tests are mostly composed of “usual tasks”
Columbia TriStar Film Distributors International
Reset database to a baseline
Perform an action and capture result
Query state to verify expectations
“Design patterns” can be used & reused!
Photo by Markus Spiske on Unsplash
• Patterns for “Reset database to a baseline”
1. Restore baseline database backup
2. Create an empty database and insert base data records
3. Use in-memory database
4. Use file-based database and copy baseline file
5. Wrap test to a DB transaction & cancel
6. Truncate (empty) tables used by the tests
7. Track data changes and undo
8. Detect read-only tests and skip reset after them
RAMP up your testing solution
Photo by Erik Brolin on Unsplash
Reusability
Abstraction
Maintainability
Performance
Copyright © Gaspar Nagy
Test Automation
Design Patterns
Copyright © Gaspar Nagy
#expoQA23
MADRID 31st of May to 1st of June 2023
The UI analogy
Hexagonal: Butzin, Bjorn & Golatowski, Frank & Timmermann, Dirk. (2016). Microservices approach for the internet of things. 1-6. 10.1109/ETFA.2016.7733707.
Onion: Basic Rules for effective Onion Architecture by Bran Lim
Hexagonal Architecture Onion Architecture
Hexagonal Architecture Onion Architecture
The UI analogy
Hexagonal: Butzin, Bjorn & Golatowski, Frank & Timmermann, Dirk. (2016). Microservices approach for the internet of things. 1-6. 10.1109/ETFA.2016.7733707.
Onion: Basic Rules for effective Onion Architecture by Bran Lim
Both
• represent an external interface of the application
• are active (click on a button <> perform action on SUT)
• are event-based, async and responsive (display data as arrives <> verify result as
becomes available)
• have simple structure: sequence, containment (e.g. no recursion)
• contain repeating needs (controls <> usual test tasks)
• include a mix of concerns (view/controller <> test-description/actions)
Generic & project-specific patterns
Photo by christian erra on Unsplash
The high level of reusability encourages teams to think about discovering project-
specific patterns.
• Easier to develop (more specific context)
• Easier to document (sometimes the example in the code is enough)
Some test automation patterns are usable in broader context
• They can become part of the tool-belt of the test automation experts
Copyright © Gaspar Nagy
#expoQA23
MADRID 31st of May to 1st of June 2023
Project-specific pattern discovery process
identify repeating task develop pattern for the task
identify solution to be repeated
(feel the need to copy-paste)
probe pattern for other usage
increase abstraction if needed
document pattern apply pattern
extract pattern
&
Patterns
apply develop
Copyright © Gaspar Nagy
Documenting Test
Automation Design
Patterns
Copyright © Gaspar Nagy
#expoQA23
MADRID 31st of May to 1st of June 2023
The book project
How to document the patterns?
• Name & Intent – short summary
• Motivation – situation example
• Applicability – list of useful contexts
• Structure – diagram
• Participants & Collaborations – abstract description of
the pattern
• Consequences – benefits, trade-offs
• Implementation & Sample – implementation notes &
concrete example
Copyright © Gaspar Nagy
#expoQA23
MADRID 31st of May to 1st of June 2023
The Layering Problem
Test Goals Test Actions Auto
Infra
SUT
External
Copyright © Gaspar Nagy
#expoQA23
MADRID 31st of May to 1st of June 2023
Samples
Copyright © Gaspar Nagy
Wrap-up
Copyright © Gaspar Nagy
#expoQA23
MADRID 31st of May to 1st of June 2023
Wrap-up
• Design patterns are powerful tools
• Only good tests make sense
• Tests should really be first class citizens
• Tests composed of “usual tasks”, so design patterns are super-powerful
• You can discover project-specific patterns – this also helps dev-test collaboration
• But many patterns are even more broadly usable
• Think of “UI analogy” and test layers
Copyright © Gaspar Nagy
#expoQA23
MADRID 31st of May to 1st of June 2023
Watch for recurring problems.
Take the time to develop a pattern for them.
(invite devs)
Apply pattern.
Repeat.
#expoQA23
MADRID 31st of May to 1st of June 2023
THANK YOU FOR ATTENDING

More Related Content

Similar to Ramp up your testing solution, ExpoQA 2023

Towards Design-space Exploration of Component Chains in Vehicle Software
Towards Design-space Exploration of Component Chains in Vehicle SoftwareTowards Design-space Exploration of Component Chains in Vehicle Software
Towards Design-space Exploration of Component Chains in Vehicle SoftwareAlessio Bucaioni
 
Engaging Tech Students Past Traditional Hands On
Engaging Tech Students Past Traditional Hands OnEngaging Tech Students Past Traditional Hands On
Engaging Tech Students Past Traditional Hands OnFiras Obeid
 
ICCCBE2014-YuHsiang
ICCCBE2014-YuHsiangICCCBE2014-YuHsiang
ICCCBE2014-YuHsiangVincent Wen
 
Design and Development of Hybrid Storage Shelf
Design and Development of Hybrid Storage ShelfDesign and Development of Hybrid Storage Shelf
Design and Development of Hybrid Storage ShelfIRJET Journal
 
OpenACC and Open Hackathons Monthly Highlights May 2023.pdf
OpenACC and Open Hackathons Monthly Highlights May  2023.pdfOpenACC and Open Hackathons Monthly Highlights May  2023.pdf
OpenACC and Open Hackathons Monthly Highlights May 2023.pdfOpenACC
 
Role of artificial intellligence in construction engg &amp; management
Role of artificial intellligence in construction engg &amp; managementRole of artificial intellligence in construction engg &amp; management
Role of artificial intellligence in construction engg &amp; managementKundan Sanap
 
Project definition workshop #disummit 2019
Project definition workshop #disummit 2019Project definition workshop #disummit 2019
Project definition workshop #disummit 2019Python Predictions
 
LOKI TECHNICAL SEMINAR not final-1.pptx
LOKI TECHNICAL SEMINAR  not final-1.pptxLOKI TECHNICAL SEMINAR  not final-1.pptx
LOKI TECHNICAL SEMINAR not final-1.pptxdanieldanish5
 
Graph Gurus 15: Introducing TigerGraph 2.4
Graph Gurus 15: Introducing TigerGraph 2.4 Graph Gurus 15: Introducing TigerGraph 2.4
Graph Gurus 15: Introducing TigerGraph 2.4 TigerGraph
 
Ramzi omar design portfolio
Ramzi omar   design portfolioRamzi omar   design portfolio
Ramzi omar design portfolioRamzi Omar
 
Phrases for resume and interview start Mar31
Phrases for resume and interview  start Mar31Phrases for resume and interview  start Mar31
Phrases for resume and interview start Mar31Sander Stepanov
 
Engineering Large Scale Cyber-Physical Systems
Engineering Large Scale Cyber-Physical SystemsEngineering Large Scale Cyber-Physical Systems
Engineering Large Scale Cyber-Physical SystemsBob Marcus
 
Simpda 2014 - A living story: measuring quality of developments in a large in...
Simpda 2014 - A living story: measuring quality of developments in a large in...Simpda 2014 - A living story: measuring quality of developments in a large in...
Simpda 2014 - A living story: measuring quality of developments in a large in...SpagoWorld
 
Pydata Chicago - work hard once
Pydata Chicago - work hard oncePydata Chicago - work hard once
Pydata Chicago - work hard onceJi Dong
 
Should I Bug You? Identifying Domain Experts in Software Projects Using Code...
 Should I Bug You? Identifying Domain Experts in Software Projects Using Code... Should I Bug You? Identifying Domain Experts in Software Projects Using Code...
Should I Bug You? Identifying Domain Experts in Software Projects Using Code...Christoph Matthies
 
“How to Select, Train, Optimize and Deploy Edge Vision AI Models in Three Day...
“How to Select, Train, Optimize and Deploy Edge Vision AI Models in Three Day...“How to Select, Train, Optimize and Deploy Edge Vision AI Models in Three Day...
“How to Select, Train, Optimize and Deploy Edge Vision AI Models in Three Day...Edge AI and Vision Alliance
 

Similar to Ramp up your testing solution, ExpoQA 2023 (20)

Towards Design-space Exploration of Component Chains in Vehicle Software
Towards Design-space Exploration of Component Chains in Vehicle SoftwareTowards Design-space Exploration of Component Chains in Vehicle Software
Towards Design-space Exploration of Component Chains in Vehicle Software
 
Engaging Tech Students Past Traditional Hands On
Engaging Tech Students Past Traditional Hands OnEngaging Tech Students Past Traditional Hands On
Engaging Tech Students Past Traditional Hands On
 
ICCCBE2014-YuHsiang
ICCCBE2014-YuHsiangICCCBE2014-YuHsiang
ICCCBE2014-YuHsiang
 
Design and Development of Hybrid Storage Shelf
Design and Development of Hybrid Storage ShelfDesign and Development of Hybrid Storage Shelf
Design and Development of Hybrid Storage Shelf
 
SICOMORO
SICOMOROSICOMORO
SICOMORO
 
OpenACC and Open Hackathons Monthly Highlights May 2023.pdf
OpenACC and Open Hackathons Monthly Highlights May  2023.pdfOpenACC and Open Hackathons Monthly Highlights May  2023.pdf
OpenACC and Open Hackathons Monthly Highlights May 2023.pdf
 
Resume
ResumeResume
Resume
 
Role of artificial intellligence in construction engg &amp; management
Role of artificial intellligence in construction engg &amp; managementRole of artificial intellligence in construction engg &amp; management
Role of artificial intellligence in construction engg &amp; management
 
Project definition workshop #disummit 2019
Project definition workshop #disummit 2019Project definition workshop #disummit 2019
Project definition workshop #disummit 2019
 
LOKI TECHNICAL SEMINAR not final-1.pptx
LOKI TECHNICAL SEMINAR  not final-1.pptxLOKI TECHNICAL SEMINAR  not final-1.pptx
LOKI TECHNICAL SEMINAR not final-1.pptx
 
Graph Gurus 15: Introducing TigerGraph 2.4
Graph Gurus 15: Introducing TigerGraph 2.4 Graph Gurus 15: Introducing TigerGraph 2.4
Graph Gurus 15: Introducing TigerGraph 2.4
 
Ramzi omar design portfolio
Ramzi omar   design portfolioRamzi omar   design portfolio
Ramzi omar design portfolio
 
Phrases for resume and interview start Mar31
Phrases for resume and interview  start Mar31Phrases for resume and interview  start Mar31
Phrases for resume and interview start Mar31
 
Parents
ParentsParents
Parents
 
Engineering Large Scale Cyber-Physical Systems
Engineering Large Scale Cyber-Physical SystemsEngineering Large Scale Cyber-Physical Systems
Engineering Large Scale Cyber-Physical Systems
 
Simpda 2014 - A living story: measuring quality of developments in a large in...
Simpda 2014 - A living story: measuring quality of developments in a large in...Simpda 2014 - A living story: measuring quality of developments in a large in...
Simpda 2014 - A living story: measuring quality of developments in a large in...
 
Pydata Chicago - work hard once
Pydata Chicago - work hard oncePydata Chicago - work hard once
Pydata Chicago - work hard once
 
Should I Bug You? Identifying Domain Experts in Software Projects Using Code...
 Should I Bug You? Identifying Domain Experts in Software Projects Using Code... Should I Bug You? Identifying Domain Experts in Software Projects Using Code...
Should I Bug You? Identifying Domain Experts in Software Projects Using Code...
 
“How to Select, Train, Optimize and Deploy Edge Vision AI Models in Three Day...
“How to Select, Train, Optimize and Deploy Edge Vision AI Models in Three Day...“How to Select, Train, Optimize and Deploy Edge Vision AI Models in Three Day...
“How to Select, Train, Optimize and Deploy Edge Vision AI Models in Three Day...
 
QuSandbox+NVIDIA Rapids
QuSandbox+NVIDIA RapidsQuSandbox+NVIDIA Rapids
QuSandbox+NVIDIA Rapids
 

More from Gáspár Nagy

BDD Scenarios in a Testing Strategy
BDD Scenarios in a Testing StrategyBDD Scenarios in a Testing Strategy
BDD Scenarios in a Testing StrategyGáspár Nagy
 
BDD Scenarios in a Testing & Traceability Strategy (Webinar 19/02/2021)
BDD Scenarios in a Testing & Traceability Strategy (Webinar 19/02/2021)BDD Scenarios in a Testing & Traceability Strategy (Webinar 19/02/2021)
BDD Scenarios in a Testing & Traceability Strategy (Webinar 19/02/2021)Gáspár Nagy
 
Fighting against technical debt (CukenFest 2020)
Fighting against technical debt (CukenFest 2020)Fighting against technical debt (CukenFest 2020)
Fighting against technical debt (CukenFest 2020)Gáspár Nagy
 
Süllyedünk! Ütközés a tesztelési jégheggyel (Teszt & Tea Meeup Budapest, 2018...
Süllyedünk! Ütközés a tesztelési jégheggyel (Teszt & Tea Meeup Budapest, 2018...Süllyedünk! Ütközés a tesztelési jégheggyel (Teszt & Tea Meeup Budapest, 2018...
Süllyedünk! Ütközés a tesztelési jégheggyel (Teszt & Tea Meeup Budapest, 2018...Gáspár Nagy
 
Continuous Behavior - BDD in Continuous Delivery (CoDers Who Test, Gothenburg...
Continuous Behavior - BDD in Continuous Delivery (CoDers Who Test, Gothenburg...Continuous Behavior - BDD in Continuous Delivery (CoDers Who Test, Gothenburg...
Continuous Behavior - BDD in Continuous Delivery (CoDers Who Test, Gothenburg...Gáspár Nagy
 
We are sinking: Hitting the testing iceberg (CukenFest London, 2018)
We are sinking: Hitting the testing iceberg (CukenFest London, 2018)We are sinking: Hitting the testing iceberg (CukenFest London, 2018)
We are sinking: Hitting the testing iceberg (CukenFest London, 2018)Gáspár Nagy
 
Behavior Driven UI Automation (Agile Testing Days 2017, Potsdam)
Behavior Driven UI Automation (Agile Testing Days 2017, Potsdam)Behavior Driven UI Automation (Agile Testing Days 2017, Potsdam)
Behavior Driven UI Automation (Agile Testing Days 2017, Potsdam)Gáspár Nagy
 
Testing is Difficult (Agile in the City Bristol 2017, Lightening talk)
Testing is Difficult (Agile in the City Bristol 2017, Lightening talk)Testing is Difficult (Agile in the City Bristol 2017, Lightening talk)
Testing is Difficult (Agile in the City Bristol 2017, Lightening talk)Gáspár Nagy
 
Scaffolding a legacy app with BDD scenario (Agile in the City Bristol 2017)
Scaffolding a legacy app with BDD scenario (Agile in the City Bristol 2017)Scaffolding a legacy app with BDD scenario (Agile in the City Bristol 2017)
Scaffolding a legacy app with BDD scenario (Agile in the City Bristol 2017)Gáspár Nagy
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (Qualit...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (Qualit...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (Qualit...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (Qualit...Gáspár Nagy
 
A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...
A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...
A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...Gáspár Nagy
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Gáspár Nagy
 
Property Based BDD Examples (ETSI UCAAT 2016, Budapest)
Property Based BDD Examples (ETSI UCAAT 2016, Budapest)Property Based BDD Examples (ETSI UCAAT 2016, Budapest)
Property Based BDD Examples (ETSI UCAAT 2016, Budapest)Gáspár Nagy
 
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...Gáspár Nagy
 
Given/When/Then-ready sprint planning with Example Mapping (Agilia Budapest 2...
Given/When/Then-ready sprint planning with Example Mapping (Agilia Budapest 2...Given/When/Then-ready sprint planning with Example Mapping (Agilia Budapest 2...
Given/When/Then-ready sprint planning with Example Mapping (Agilia Budapest 2...Gáspár Nagy
 
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...Gáspár Nagy
 
Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...
Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...
Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...Gáspár Nagy
 
Folyamatos integráció és kódépítés (ALM Day Budapest, 24/11/2015, Hungarian)
Folyamatos integráció és kódépítés (ALM Day Budapest, 24/11/2015, Hungarian)Folyamatos integráció és kódépítés (ALM Day Budapest, 24/11/2015, Hungarian)
Folyamatos integráció és kódépítés (ALM Day Budapest, 24/11/2015, Hungarian)Gáspár Nagy
 
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)Gáspár Nagy
 

More from Gáspár Nagy (19)

BDD Scenarios in a Testing Strategy
BDD Scenarios in a Testing StrategyBDD Scenarios in a Testing Strategy
BDD Scenarios in a Testing Strategy
 
BDD Scenarios in a Testing & Traceability Strategy (Webinar 19/02/2021)
BDD Scenarios in a Testing & Traceability Strategy (Webinar 19/02/2021)BDD Scenarios in a Testing & Traceability Strategy (Webinar 19/02/2021)
BDD Scenarios in a Testing & Traceability Strategy (Webinar 19/02/2021)
 
Fighting against technical debt (CukenFest 2020)
Fighting against technical debt (CukenFest 2020)Fighting against technical debt (CukenFest 2020)
Fighting against technical debt (CukenFest 2020)
 
Süllyedünk! Ütközés a tesztelési jégheggyel (Teszt & Tea Meeup Budapest, 2018...
Süllyedünk! Ütközés a tesztelési jégheggyel (Teszt & Tea Meeup Budapest, 2018...Süllyedünk! Ütközés a tesztelési jégheggyel (Teszt & Tea Meeup Budapest, 2018...
Süllyedünk! Ütközés a tesztelési jégheggyel (Teszt & Tea Meeup Budapest, 2018...
 
Continuous Behavior - BDD in Continuous Delivery (CoDers Who Test, Gothenburg...
Continuous Behavior - BDD in Continuous Delivery (CoDers Who Test, Gothenburg...Continuous Behavior - BDD in Continuous Delivery (CoDers Who Test, Gothenburg...
Continuous Behavior - BDD in Continuous Delivery (CoDers Who Test, Gothenburg...
 
We are sinking: Hitting the testing iceberg (CukenFest London, 2018)
We are sinking: Hitting the testing iceberg (CukenFest London, 2018)We are sinking: Hitting the testing iceberg (CukenFest London, 2018)
We are sinking: Hitting the testing iceberg (CukenFest London, 2018)
 
Behavior Driven UI Automation (Agile Testing Days 2017, Potsdam)
Behavior Driven UI Automation (Agile Testing Days 2017, Potsdam)Behavior Driven UI Automation (Agile Testing Days 2017, Potsdam)
Behavior Driven UI Automation (Agile Testing Days 2017, Potsdam)
 
Testing is Difficult (Agile in the City Bristol 2017, Lightening talk)
Testing is Difficult (Agile in the City Bristol 2017, Lightening talk)Testing is Difficult (Agile in the City Bristol 2017, Lightening talk)
Testing is Difficult (Agile in the City Bristol 2017, Lightening talk)
 
Scaffolding a legacy app with BDD scenario (Agile in the City Bristol 2017)
Scaffolding a legacy app with BDD scenario (Agile in the City Bristol 2017)Scaffolding a legacy app with BDD scenario (Agile in the City Bristol 2017)
Scaffolding a legacy app with BDD scenario (Agile in the City Bristol 2017)
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (Qualit...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (Qualit...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (Qualit...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (Qualit...
 
A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...
A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...
A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
 
Property Based BDD Examples (ETSI UCAAT 2016, Budapest)
Property Based BDD Examples (ETSI UCAAT 2016, Budapest)Property Based BDD Examples (ETSI UCAAT 2016, Budapest)
Property Based BDD Examples (ETSI UCAAT 2016, Budapest)
 
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (HUSTEF 2...
 
Given/When/Then-ready sprint planning with Example Mapping (Agilia Budapest 2...
Given/When/Then-ready sprint planning with Example Mapping (Agilia Budapest 2...Given/When/Then-ready sprint planning with Example Mapping (Agilia Budapest 2...
Given/When/Then-ready sprint planning with Example Mapping (Agilia Budapest 2...
 
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
 
Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...
Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...
Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...
 
Folyamatos integráció és kódépítés (ALM Day Budapest, 24/11/2015, Hungarian)
Folyamatos integráció és kódépítés (ALM Day Budapest, 24/11/2015, Hungarian)Folyamatos integráció és kódépítés (ALM Day Budapest, 24/11/2015, Hungarian)
Folyamatos integráció és kódépítés (ALM Day Budapest, 24/11/2015, Hungarian)
 
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)
Given/When/Then-ready sprint planning (Agile Tour Vienna 2015)
 

Recently uploaded

Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 

Recently uploaded (20)

Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 

Ramp up your testing solution, ExpoQA 2023

  • 1. #expoQA23 MADRID 31st of May to 1st of June 2023 Gaspar Nagy RAMP up your testing solution: test automation patterns ExpoQA 2023, Madrid
  • 2. Copyright © Gaspar Nagy #expoQA23 MADRID 31st of May to 1st of June 2023 Gáspár Nagy coach, trainer and bdd addict creator of SpecFlow gaspar@specsolutions.eu https://specsolutions.eu @gasparnagy Find them on Amazon & Leanpub through http://bddbooks.com!
  • 3. Copyright © Gaspar Nagy #expoQA23 MADRID 31st of May to 1st of June 2023
  • 4. Copyright © Gaspar Nagy #expoQA23 MADRID 31st of May to 1st of June 2023 Today • About design patterns • Challenges of test automation today • Benefits of using design patterns for test automation solutions • Characteristics of test automation design patterns • Documenting test automation design patterns
  • 5. Copyright © Gaspar Nagy Design Patterns recognized construct that works
  • 6. Why design patterns? Source: Wikipedia Better Faster Easier collaboration
  • 7. Copyright © Gaspar Nagy Challenges of Test Automation
  • 8. Why to build a good quality test automation Photo by Denys Nevozhai on Unsplash $$$ $$ $
  • 9. Tests automation as “first class citizen” Photo by Gaspar Nagy Coding standards Reviews Tests …
  • 10. Test automation is difficult Source: NASA
  • 11. Test automation is difficult Source: NASA Requires “smart” solutions Needs time and efforts Involves expertise, research & collaboration
  • 12. Copyright © Gaspar Nagy How could patterns help?
  • 13. Tests are mostly composed of “usual tasks” Columbia TriStar Film Distributors International Reset database to a baseline Perform an action and capture result Query state to verify expectations
  • 14. “Design patterns” can be used & reused! Photo by Markus Spiske on Unsplash • Patterns for “Reset database to a baseline” 1. Restore baseline database backup 2. Create an empty database and insert base data records 3. Use in-memory database 4. Use file-based database and copy baseline file 5. Wrap test to a DB transaction & cancel 6. Truncate (empty) tables used by the tests 7. Track data changes and undo 8. Detect read-only tests and skip reset after them
  • 15. RAMP up your testing solution Photo by Erik Brolin on Unsplash Reusability Abstraction Maintainability Performance
  • 16. Copyright © Gaspar Nagy Test Automation Design Patterns
  • 17. Copyright © Gaspar Nagy #expoQA23 MADRID 31st of May to 1st of June 2023 The UI analogy Hexagonal: Butzin, Bjorn & Golatowski, Frank & Timmermann, Dirk. (2016). Microservices approach for the internet of things. 1-6. 10.1109/ETFA.2016.7733707. Onion: Basic Rules for effective Onion Architecture by Bran Lim Hexagonal Architecture Onion Architecture
  • 18. Hexagonal Architecture Onion Architecture The UI analogy Hexagonal: Butzin, Bjorn & Golatowski, Frank & Timmermann, Dirk. (2016). Microservices approach for the internet of things. 1-6. 10.1109/ETFA.2016.7733707. Onion: Basic Rules for effective Onion Architecture by Bran Lim Both • represent an external interface of the application • are active (click on a button <> perform action on SUT) • are event-based, async and responsive (display data as arrives <> verify result as becomes available) • have simple structure: sequence, containment (e.g. no recursion) • contain repeating needs (controls <> usual test tasks) • include a mix of concerns (view/controller <> test-description/actions)
  • 19. Generic & project-specific patterns Photo by christian erra on Unsplash The high level of reusability encourages teams to think about discovering project- specific patterns. • Easier to develop (more specific context) • Easier to document (sometimes the example in the code is enough) Some test automation patterns are usable in broader context • They can become part of the tool-belt of the test automation experts
  • 20. Copyright © Gaspar Nagy #expoQA23 MADRID 31st of May to 1st of June 2023 Project-specific pattern discovery process identify repeating task develop pattern for the task identify solution to be repeated (feel the need to copy-paste) probe pattern for other usage increase abstraction if needed document pattern apply pattern extract pattern
  • 22. Copyright © Gaspar Nagy Documenting Test Automation Design Patterns
  • 23. Copyright © Gaspar Nagy #expoQA23 MADRID 31st of May to 1st of June 2023 The book project
  • 24. How to document the patterns? • Name & Intent – short summary • Motivation – situation example • Applicability – list of useful contexts • Structure – diagram • Participants & Collaborations – abstract description of the pattern • Consequences – benefits, trade-offs • Implementation & Sample – implementation notes & concrete example
  • 25. Copyright © Gaspar Nagy #expoQA23 MADRID 31st of May to 1st of June 2023 The Layering Problem Test Goals Test Actions Auto Infra SUT External
  • 26. Copyright © Gaspar Nagy #expoQA23 MADRID 31st of May to 1st of June 2023 Samples
  • 27. Copyright © Gaspar Nagy Wrap-up
  • 28. Copyright © Gaspar Nagy #expoQA23 MADRID 31st of May to 1st of June 2023 Wrap-up • Design patterns are powerful tools • Only good tests make sense • Tests should really be first class citizens • Tests composed of “usual tasks”, so design patterns are super-powerful • You can discover project-specific patterns – this also helps dev-test collaboration • But many patterns are even more broadly usable • Think of “UI analogy” and test layers
  • 29. Copyright © Gaspar Nagy #expoQA23 MADRID 31st of May to 1st of June 2023 Watch for recurring problems. Take the time to develop a pattern for them. (invite devs) Apply pattern. Repeat.
  • 30. #expoQA23 MADRID 31st of May to 1st of June 2023 THANK YOU FOR ATTENDING