SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Generalization in Auto-Testing. How we
put what we had into new Technological
Platform
Dzmitry Harachka, Founder, CEO at
Who is on the phone
•
•
•
•
•
•
•

10 years of Java Development
Eclipse Committer
Founder and CEO at JazzTeam
Worked in different roles from Junior to CEO
Always was close to Test Automation and Processes
Master' Degree in Computer Science, SCJP/SCWCD
Product Owner of XML2Selenium Test Automation
Platform
Agile Java Development
• Java and world of Test Automation
• Java ideally fits TDD and DDT
• Agile/XP promotes Test Automation and Continuous
Integration
• We earn from Test Automation
• Have good experience in Generalization Programming,
including OOP, patterns, frameworks, finishing with
plugin based systems e.g. Eclipse
Generalization
• I would like share ideas behind XML2Selenium
architecture.
• That allows you to apply them in your everyday life.
• This does not mean you need own platform or
framework.
• This talk is not an advert. It reflects our way to make
generalization and allows us to talk to that.
First look at XML2Selenium
XML DSL Language:
example1
XML DSL Language:
example2
More complex test
Reporting: main table
Reporting: filtering area
Reporting: web view
Reporting: BDD
History: huge log files
History: complicated utilities
Blur applied through NDA, that method for typing in edit control
includes try/catch, clipboard and mouse over support, wait for object
Synchronization, DDT values, logging etc.
History: configuration magic
and cross-browser tests.
Local and remote modes.
History: Java stuff applied
History: OOP and Page
Context
Evolution
• Utils
• Many
• Tricky thing to support
• Still need something for storing states
• E.g. singleton containers
• OOP (Page Object etc.)
• We need context
• We need some workflows
• We need reporting/advanced logs/video/dynamic
flows
Evolution: DSL XML
• DSL XML
• Context hidden. Applied to Test Case/Test/Frame.
Support hierarchy
• Variables are just simple
• Reusability
• Reporting
• Plugin based
• Artifacts
• Good for TDD/DDT/BDD
Generalization:
polymorphism
•

Main thing in OOP is polymorphism
• You have a list of different objects
• You would like to make some actions at these objects
• You would like to add new types of object
• You do not want to change something in algorithm
• Plugins = OOP/polymorphism + reflection

•

When you are developer always think in Polymorphic way
• Even factories for test/dummy/mock implementations
• Almost all the patterns

•

Block schemes are not cancelled in OOP! Please run your algorithm in mind
to find bugs in your generalized algorithm
Contexts
•
•
•
•
•
•
•
•
•

Great for de-coupling entities
Rights to write and read from contexts
What could and should be stored in context
Good way to expose API of core functionality
You could introduce tree of contexts, one inside another
We could have several existed contexts
Context could have interceptors
Context could have rich nature e.g. sending events/invoke listeners if some
settings set
Nice to organize in flows and apply some rules. E.g. one component would
like to have in a context certain variable. Another component would expose
some variables to context and if doesn’t do that it is mistake.
Context in XML2Selenium
Plugin development
•
•
•
•
•
•
•
•

OOP
Reflexion
Configuration
Extension points
Core API for plugins
Events subscription
Permissions
Dependencies

•

I need full basis then I am happy!
• It pushes you to make algorithm of a system really generic
• Practice would evolve your system
• The same block scheme. Try to run different combination through you
system
Beginning 
Vertical movements of
projects
•
•
•
•

Copy pasting
Utility
Class
Library
• Share it
• Framework
• Share it
• Good thing when different teams in a company have a way to share
projects
• Maven + Nexus work in Java
DDT in XML2Selenium
JUnit as a running runtime
•
•

Create your own runners
Create your own annotations
CI for your QA framework
Use it for testing itself
• Master build
• Always green, contains all possible XML
combinations
• Smoke Test build
• Not green, allows to have different statuses
• Self Testing build
• Uses XML2Selenium tests to test Smoke Test. Out
manual tester like this build a lot and motivated to
create new tests
• Best Practices build
Sharing ideas
•

•

•

•

Maven and Nexus are good for sharing dependencies, and for dynamical
building of class path
Go for early adoption. Ask you colleagues, customers, friends to check new
thing. Do not say to programmers it is trial check. Introduce real customers
and real processes
Apply processes with 100% of seniority
• Product owner
• Backlog
• Iterations
• Demos
• Manual testers
• Scrum board
Think about open source
XML2Selenium roles
•
•
•
•

Developers of core
Plugin developers
XML2Selenium test developers
XML2Selenium consultants
Future
•
•
•
•

Going into Cloud and SAAS wrapping
Integration with CloudBees
Eclipse Studio to work without XML
XML based debug mode. In WebView to see the
contexts for every line
Questions?

• Read further at XML2Selenium.com
• zmicer@jazzteam.org

Weitere ähnliche Inhalte

Kürzlich hochgeladen

Kürzlich hochgeladen (20)

Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

Empfohlen

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Empfohlen (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.

  • 1. Generalization in Auto-Testing. How we put what we had into new Technological Platform Dzmitry Harachka, Founder, CEO at
  • 2. Who is on the phone • • • • • • • 10 years of Java Development Eclipse Committer Founder and CEO at JazzTeam Worked in different roles from Junior to CEO Always was close to Test Automation and Processes Master' Degree in Computer Science, SCJP/SCWCD Product Owner of XML2Selenium Test Automation Platform
  • 3. Agile Java Development • Java and world of Test Automation • Java ideally fits TDD and DDT • Agile/XP promotes Test Automation and Continuous Integration • We earn from Test Automation • Have good experience in Generalization Programming, including OOP, patterns, frameworks, finishing with plugin based systems e.g. Eclipse
  • 4. Generalization • I would like share ideas behind XML2Selenium architecture. • That allows you to apply them in your everyday life. • This does not mean you need own platform or framework. • This talk is not an advert. It reflects our way to make generalization and allows us to talk to that.
  • 5. First look at XML2Selenium
  • 14. History: complicated utilities Blur applied through NDA, that method for typing in edit control includes try/catch, clipboard and mouse over support, wait for object Synchronization, DDT values, logging etc.
  • 15. History: configuration magic and cross-browser tests. Local and remote modes.
  • 17. History: OOP and Page Context
  • 18. Evolution • Utils • Many • Tricky thing to support • Still need something for storing states • E.g. singleton containers • OOP (Page Object etc.) • We need context • We need some workflows • We need reporting/advanced logs/video/dynamic flows
  • 19. Evolution: DSL XML • DSL XML • Context hidden. Applied to Test Case/Test/Frame. Support hierarchy • Variables are just simple • Reusability • Reporting • Plugin based • Artifacts • Good for TDD/DDT/BDD
  • 20. Generalization: polymorphism • Main thing in OOP is polymorphism • You have a list of different objects • You would like to make some actions at these objects • You would like to add new types of object • You do not want to change something in algorithm • Plugins = OOP/polymorphism + reflection • When you are developer always think in Polymorphic way • Even factories for test/dummy/mock implementations • Almost all the patterns • Block schemes are not cancelled in OOP! Please run your algorithm in mind to find bugs in your generalized algorithm
  • 21. Contexts • • • • • • • • • Great for de-coupling entities Rights to write and read from contexts What could and should be stored in context Good way to expose API of core functionality You could introduce tree of contexts, one inside another We could have several existed contexts Context could have interceptors Context could have rich nature e.g. sending events/invoke listeners if some settings set Nice to organize in flows and apply some rules. E.g. one component would like to have in a context certain variable. Another component would expose some variables to context and if doesn’t do that it is mistake.
  • 23. Plugin development • • • • • • • • OOP Reflexion Configuration Extension points Core API for plugins Events subscription Permissions Dependencies • I need full basis then I am happy! • It pushes you to make algorithm of a system really generic • Practice would evolve your system • The same block scheme. Try to run different combination through you system
  • 25. Vertical movements of projects • • • • Copy pasting Utility Class Library • Share it • Framework • Share it • Good thing when different teams in a company have a way to share projects • Maven + Nexus work in Java
  • 27. JUnit as a running runtime • • Create your own runners Create your own annotations
  • 28. CI for your QA framework
  • 29. Use it for testing itself • Master build • Always green, contains all possible XML combinations • Smoke Test build • Not green, allows to have different statuses • Self Testing build • Uses XML2Selenium tests to test Smoke Test. Out manual tester like this build a lot and motivated to create new tests • Best Practices build
  • 30. Sharing ideas • • • • Maven and Nexus are good for sharing dependencies, and for dynamical building of class path Go for early adoption. Ask you colleagues, customers, friends to check new thing. Do not say to programmers it is trial check. Introduce real customers and real processes Apply processes with 100% of seniority • Product owner • Backlog • Iterations • Demos • Manual testers • Scrum board Think about open source
  • 31. XML2Selenium roles • • • • Developers of core Plugin developers XML2Selenium test developers XML2Selenium consultants
  • 32. Future • • • • Going into Cloud and SAAS wrapping Integration with CloudBees Eclipse Studio to work without XML XML based debug mode. In WebView to see the contexts for every line
  • 33. Questions? • Read further at XML2Selenium.com • zmicer@jazzteam.org