SlideShare a Scribd company logo
1 of 21
TM
Rahul Verma
Founder, Test Mile
www.TestMile.com
ful
UI Test Automation
®
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
In my line of work as a consultant,
I review
Test automation implementations.
Here are some honest findings.
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
Most Test
Automation
Engineers
Tooling
Experts
This
small dot
is
designers
Skill Ratio I observed
Minimal
Programming
knowledge
Jugaad
Automation.
Know tools
and
programming
very well.
Poor at
Design.
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
Where do I fit in?
My primary focus is OOP modeling in test
automation.
I work with engineers who know tools well and
help them in design aspects around them.
In the process, I’m learning a bit of tooling.
I’m not a great designer. It’s just that I have
looked at lots and lots of code for last 10 years.
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
Most Test
Automation
Engineers
Tooling
Experts
Code Reduction I achieved
with OOP design
90-97%
>50%
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
These numbers are shocking.
Borderline unbelievable.
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
One of the core reasons I found is this:
Despite most open source tools being based on OOP, and
despite most engineers using an OOP language,
Test Automation Engineers’ thinking is procedural.
OOP Models are almost non-existant;
Except random inheritance scattered here and there.
I’ve nothing against procedural programming. However, this
nature of mash-up is mostly a disaster.
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
A Simple Example…
In Selenium WebDriver, you can find an element using the webdriver or
an element.
I’ve seen a variety of implementations with if-elses, switch cases,
overloading etc, some decent some horrible.
All of them failed to acknowledge that both WebDriver and
WebElement implement SearchContext interface. So, one method
without if-else, switch-case or similar constructs, is sufficient if the
argument it takes is SearchContext instead of WebDriver or
WebElement.
Same is true for Window and UiItem in case of White framework. They
implement a common interface for finding. Looking for an answer 
Find it!
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
This simple change would have a cascading effect on calling
code as there would be only one type of call for different
situations. Try it.
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
Over the course of last few years, I started
implemented various OOP based implementations
to bring code reduction.
This is where I realized that I could put together my
ideas in a place which is open to all for reference.
As I deal with more an more projects and with
inputs from community, it could be pretty helpful
for testing community.
ful
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
This led to development of MEANINGful model of
UI automation.
The goal of this presentation is give you a quick
introduction to the model and share an open-
source, mostly completed implementation with
you for reference.
ful
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
The MEANINGful model is an OOP Pluralistic model that
goes beyond Page-Object design and acknowledges 7
primary components in UI automation.
Maker
Element
Automator
Name Store
Identifier
Notifier
GUI
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
In the interest of the wider audience,
Let me show you technically toned down
version of the model.
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
Maker
NameStore
GUI
Automator
Element
Notifier
Identifier
Dispatch
notification
Create
(with
Builders/
Factories)
Create
Element
Proxy
Get
Element Meta Data
By Name
Proxy
Pass
Element Meta Data
Get
Element Meta Data
By Name
(Nested Elements)
Meaning of
Element Meta Data
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
Meaningful model has the following benefits:
• Supports multiple automation tool integration.
• Higher level identifiers, Multiple identifiers for same
control (OR/AND relationship)
• Multiple formats for externalization of identification
relationships
• Nested Guis
• Higher level API for multi-element match
• Same Element API for automator based or Gui based
automation.
• A considerable reduction in code along with
robustness.
• And more…
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
You can take these ideas and try something of
your own.
In the process,
You can also choose to refer my work.
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
Daksha is a free, Apache 2 Licensed,
open-source Java framework
that I am creating.
Target is to have a MEANINGful implementation
which is freely accessible to the community for
reference.
Currently Daksha includes support for
Selenium, Appium and Sikuli.
API completion is in progress for the said libs.
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
Daksha UI Automation Variants Walkthrough
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
For a more involved discussion:
You can reach out directly to RV@testmile.com
Try out Daksha.
It’s less than 2 months old.
So, if you find a problem.
You are likely right about it.
Share your feedback.
*Notifier component is not yet developed. I am working on arriving
at the right approach yet.
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
Thanks For Listening to
Me
© 2017-18 – Test Mile Software Testing Pvt Ltd www.TestMile.com
Write to
support@testmile.com
Link
www.testmile.com/daksha
Interested?
© 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com
ful
®
Picture Credits
https://all-free-download.com/free-vector/download/the-creative-letters-designed-10-vector_181566.html
http://www.afromum.com/wp-content/uploads/2015/12/Think-Outside-The-Box-Concept-48782561.jpg
https://www.thebeijinger.com/files/u95720/Confused_Dog.jpg
I’ve tried to keep a track of all images used. Please let me know if your link reference
is not there, so that I can include the same.

More Related Content

What's hot

Learn HTML5 & JEE7 by doing
Learn HTML5 & JEE7 by doingLearn HTML5 & JEE7 by doing
Learn HTML5 & JEE7 by doingMohamed Taman
 
Katalon: Mobile and Browser-Based Automation | Quality Jam 2018
Katalon: Mobile and Browser-Based Automation | Quality Jam 2018Katalon: Mobile and Browser-Based Automation | Quality Jam 2018
Katalon: Mobile and Browser-Based Automation | Quality Jam 2018Katalon Studio
 
Top 5 Javascript Frameworks for Web and Mobile App Development
Top 5 Javascript Frameworks for Web and Mobile App DevelopmentTop 5 Javascript Frameworks for Web and Mobile App Development
Top 5 Javascript Frameworks for Web and Mobile App DevelopmentAjeet Singh
 
Bdd and-testing
Bdd and-testingBdd and-testing
Bdd and-testingmalcolmt
 
Automated Testing With Jasmine, PhantomJS and Jenkins
Automated Testing With Jasmine, PhantomJS and JenkinsAutomated Testing With Jasmine, PhantomJS and Jenkins
Automated Testing With Jasmine, PhantomJS and JenkinsWork at Play
 
Meaningful UI Test Automation
Meaningful UI Test AutomationMeaningful UI Test Automation
Meaningful UI Test AutomationRahul Verma
 
Eight Hours to API Literacy: A Fast, Fun On-ramp for Writers
Eight Hours to API Literacy: A Fast, Fun On-ramp for WritersEight Hours to API Literacy: A Fast, Fun On-ramp for Writers
Eight Hours to API Literacy: A Fast, Fun On-ramp for WritersPronovix
 
API First Workflow: How could we have better API Docs through DevOps pipeline
API First Workflow: How could we have better API Docs through DevOps pipelineAPI First Workflow: How could we have better API Docs through DevOps pipeline
API First Workflow: How could we have better API Docs through DevOps pipelinePronovix
 
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools Visual Testing: Quality and Speed -- by GIl Tayar, Applitools
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools Applitools
 
The UX of DX: User Testing in the Invisible World of APIs
The UX of DX: User Testing in the Invisible World of APIsThe UX of DX: User Testing in the Invisible World of APIs
The UX of DX: User Testing in the Invisible World of APIsPronovix
 
Benefits of AngularJS Development for Your Business - APPNWEB Technologies
Benefits of AngularJS Development for Your Business - APPNWEB TechnologiesBenefits of AngularJS Development for Your Business - APPNWEB Technologies
Benefits of AngularJS Development for Your Business - APPNWEB TechnologiesAPPNWEB Technologies
 
Porównanie architektur MVVM i MVC (iOS)
Porównanie architektur MVVM i MVC (iOS)Porównanie architektur MVVM i MVC (iOS)
Porównanie architektur MVVM i MVC (iOS)intive
 
How to scale your Test Automation
How to scale your Test AutomationHow to scale your Test Automation
How to scale your Test AutomationKlaus Salchner
 
Visual Testing Automates and Augments Testers - by Diego Lo Giudice, Forrester
Visual Testing Automates and Augments Testers - by Diego Lo Giudice, ForresterVisual Testing Automates and Augments Testers - by Diego Lo Giudice, Forrester
Visual Testing Automates and Augments Testers - by Diego Lo Giudice, ForresterApplitools
 
Building with Visual Studio Online
Building with Visual Studio OnlineBuilding with Visual Studio Online
Building with Visual Studio OnlineJeff Bramwell
 
[Business Strategy] DevOps Implementation Failure. Save It Before You Fail It!
[Business Strategy] DevOps Implementation Failure. Save It Before You Fail It![Business Strategy] DevOps Implementation Failure. Save It Before You Fail It!
[Business Strategy] DevOps Implementation Failure. Save It Before You Fail It!Ajeet Singh
 
UI Automation Quirks
UI Automation QuirksUI Automation Quirks
UI Automation QuirksLucas Pang
 
What is Agile Testing?
What is Agile Testing?What is Agile Testing?
What is Agile Testing?vodQA
 

What's hot (20)

Resume_Eng2
Resume_Eng2Resume_Eng2
Resume_Eng2
 
Dev ops
Dev opsDev ops
Dev ops
 
Learn HTML5 & JEE7 by doing
Learn HTML5 & JEE7 by doingLearn HTML5 & JEE7 by doing
Learn HTML5 & JEE7 by doing
 
Katalon: Mobile and Browser-Based Automation | Quality Jam 2018
Katalon: Mobile and Browser-Based Automation | Quality Jam 2018Katalon: Mobile and Browser-Based Automation | Quality Jam 2018
Katalon: Mobile and Browser-Based Automation | Quality Jam 2018
 
Top 5 Javascript Frameworks for Web and Mobile App Development
Top 5 Javascript Frameworks for Web and Mobile App DevelopmentTop 5 Javascript Frameworks for Web and Mobile App Development
Top 5 Javascript Frameworks for Web and Mobile App Development
 
Bdd and-testing
Bdd and-testingBdd and-testing
Bdd and-testing
 
Automated Testing With Jasmine, PhantomJS and Jenkins
Automated Testing With Jasmine, PhantomJS and JenkinsAutomated Testing With Jasmine, PhantomJS and Jenkins
Automated Testing With Jasmine, PhantomJS and Jenkins
 
Meaningful UI Test Automation
Meaningful UI Test AutomationMeaningful UI Test Automation
Meaningful UI Test Automation
 
Eight Hours to API Literacy: A Fast, Fun On-ramp for Writers
Eight Hours to API Literacy: A Fast, Fun On-ramp for WritersEight Hours to API Literacy: A Fast, Fun On-ramp for Writers
Eight Hours to API Literacy: A Fast, Fun On-ramp for Writers
 
API First Workflow: How could we have better API Docs through DevOps pipeline
API First Workflow: How could we have better API Docs through DevOps pipelineAPI First Workflow: How could we have better API Docs through DevOps pipeline
API First Workflow: How could we have better API Docs through DevOps pipeline
 
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools Visual Testing: Quality and Speed -- by GIl Tayar, Applitools
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools
 
The UX of DX: User Testing in the Invisible World of APIs
The UX of DX: User Testing in the Invisible World of APIsThe UX of DX: User Testing in the Invisible World of APIs
The UX of DX: User Testing in the Invisible World of APIs
 
Benefits of AngularJS Development for Your Business - APPNWEB Technologies
Benefits of AngularJS Development for Your Business - APPNWEB TechnologiesBenefits of AngularJS Development for Your Business - APPNWEB Technologies
Benefits of AngularJS Development for Your Business - APPNWEB Technologies
 
Porównanie architektur MVVM i MVC (iOS)
Porównanie architektur MVVM i MVC (iOS)Porównanie architektur MVVM i MVC (iOS)
Porównanie architektur MVVM i MVC (iOS)
 
How to scale your Test Automation
How to scale your Test AutomationHow to scale your Test Automation
How to scale your Test Automation
 
Visual Testing Automates and Augments Testers - by Diego Lo Giudice, Forrester
Visual Testing Automates and Augments Testers - by Diego Lo Giudice, ForresterVisual Testing Automates and Augments Testers - by Diego Lo Giudice, Forrester
Visual Testing Automates and Augments Testers - by Diego Lo Giudice, Forrester
 
Building with Visual Studio Online
Building with Visual Studio OnlineBuilding with Visual Studio Online
Building with Visual Studio Online
 
[Business Strategy] DevOps Implementation Failure. Save It Before You Fail It!
[Business Strategy] DevOps Implementation Failure. Save It Before You Fail It![Business Strategy] DevOps Implementation Failure. Save It Before You Fail It!
[Business Strategy] DevOps Implementation Failure. Save It Before You Fail It!
 
UI Automation Quirks
UI Automation QuirksUI Automation Quirks
UI Automation Quirks
 
What is Agile Testing?
What is Agile Testing?What is Agile Testing?
What is Agile Testing?
 

Similar to Meaningful UI Test Automation

Automate testing with behat, selenium, phantom js and nightwatch.js (5)
Automate testing with behat, selenium, phantom js and nightwatch.js (5)Automate testing with behat, selenium, phantom js and nightwatch.js (5)
Automate testing with behat, selenium, phantom js and nightwatch.js (5)Faichi Solutions
 
D-CAST Real Life TestOps Environment
D-CAST Real Life TestOps EnvironmentD-CAST Real Life TestOps Environment
D-CAST Real Life TestOps EnvironmentAdam Sandman
 
Testing a Complex ERP Application Using a Data-Driven Framework
Testing a Complex ERP Application Using a Data-Driven FrameworkTesting a Complex ERP Application Using a Data-Driven Framework
Testing a Complex ERP Application Using a Data-Driven FrameworkAdam Sandman
 
Challenges and Opportunities Faced While Migrating to Selenium
Challenges and Opportunities Faced While Migrating to SeleniumChallenges and Opportunities Faced While Migrating to Selenium
Challenges and Opportunities Faced While Migrating to SeleniumBugRaptors
 
Training Chatbots and Conversational Artificial Intelligence Agents with Amaz...
Training Chatbots and Conversational Artificial Intelligence Agents with Amaz...Training Chatbots and Conversational Artificial Intelligence Agents with Amaz...
Training Chatbots and Conversational Artificial Intelligence Agents with Amaz...Amazon Web Services
 
GaneshaShetty_Automation_Testing_Resume-Final
GaneshaShetty_Automation_Testing_Resume-FinalGaneshaShetty_Automation_Testing_Resume-Final
GaneshaShetty_Automation_Testing_Resume-FinalGanesha Shetty
 
AEM.Design - Project Introduction
AEM.Design - Project IntroductionAEM.Design - Project Introduction
AEM.Design - Project IntroductionMax Barrass
 
Transforming Product Development in the Cloud (ENT306) - AWS re:Invent 2018
Transforming Product Development in the Cloud (ENT306) - AWS re:Invent 2018Transforming Product Development in the Cloud (ENT306) - AWS re:Invent 2018
Transforming Product Development in the Cloud (ENT306) - AWS re:Invent 2018Amazon Web Services
 
Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...
Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...
Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...WSO2
 
Shifting Left: The Top 5 Reasons to Test APIs and Components Early
Shifting Left: The Top 5 Reasons to Test APIs and Components EarlyShifting Left: The Top 5 Reasons to Test APIs and Components Early
Shifting Left: The Top 5 Reasons to Test APIs and Components EarlyNeotys
 
Software 4.0 | Anand Paropkari | Pune Agile Unconference 2017 | ScaleUp Consu...
Software 4.0 | Anand Paropkari | Pune Agile Unconference 2017 | ScaleUp Consu...Software 4.0 | Anand Paropkari | Pune Agile Unconference 2017 | ScaleUp Consu...
Software 4.0 | Anand Paropkari | Pune Agile Unconference 2017 | ScaleUp Consu...Vineet Patni
 
Automotive Software Cost Estimation - The UCE Approach - Emmanuel Mary
Automotive Software Cost Estimation - The UCE Approach - Emmanuel MaryAutomotive Software Cost Estimation - The UCE Approach - Emmanuel Mary
Automotive Software Cost Estimation - The UCE Approach - Emmanuel MaryNesma
 
You have Selenium... Now what?
You have Selenium... Now what?You have Selenium... Now what?
You have Selenium... Now what?Great Wide Open
 
Augmenting Coded UI
Augmenting Coded UIAugmenting Coded UI
Augmenting Coded UItravisk
 
MageConf 2017, Design API Best Practices
MageConf 2017, Design API Best PracticesMageConf 2017, Design API Best Practices
MageConf 2017, Design API Best PracticesIgor Miniailo
 
Functional and Non-functional Test automation
Functional and Non-functional Test automationFunctional and Non-functional Test automation
Functional and Non-functional Test automationDr Ganesh Iyer
 
DevGeekWeek 2017 Inflectra Meetup in Herzliya Presentation
DevGeekWeek 2017 Inflectra Meetup in Herzliya PresentationDevGeekWeek 2017 Inflectra Meetup in Herzliya Presentation
DevGeekWeek 2017 Inflectra Meetup in Herzliya PresentationAdam Sandman
 
How to Add Test Automation to your Quality Assurance Toolbelt
How to Add Test Automation to your Quality Assurance ToolbeltHow to Add Test Automation to your Quality Assurance Toolbelt
How to Add Test Automation to your Quality Assurance ToolbeltBrett Tramposh
 
D mayo achieving architectural agility agile in gov conf apr 19 2017
D mayo achieving architectural agility agile in gov conf apr 19 2017D mayo achieving architectural agility agile in gov conf apr 19 2017
D mayo achieving architectural agility agile in gov conf apr 19 2017Dave Mayo
 

Similar to Meaningful UI Test Automation (20)

Automate testing with behat, selenium, phantom js and nightwatch.js (5)
Automate testing with behat, selenium, phantom js and nightwatch.js (5)Automate testing with behat, selenium, phantom js and nightwatch.js (5)
Automate testing with behat, selenium, phantom js and nightwatch.js (5)
 
D-CAST Real Life TestOps Environment
D-CAST Real Life TestOps EnvironmentD-CAST Real Life TestOps Environment
D-CAST Real Life TestOps Environment
 
Testing a Complex ERP Application Using a Data-Driven Framework
Testing a Complex ERP Application Using a Data-Driven FrameworkTesting a Complex ERP Application Using a Data-Driven Framework
Testing a Complex ERP Application Using a Data-Driven Framework
 
Challenges and Opportunities Faced While Migrating to Selenium
Challenges and Opportunities Faced While Migrating to SeleniumChallenges and Opportunities Faced While Migrating to Selenium
Challenges and Opportunities Faced While Migrating to Selenium
 
Training Chatbots and Conversational Artificial Intelligence Agents with Amaz...
Training Chatbots and Conversational Artificial Intelligence Agents with Amaz...Training Chatbots and Conversational Artificial Intelligence Agents with Amaz...
Training Chatbots and Conversational Artificial Intelligence Agents with Amaz...
 
GaneshaShetty_Automation_Testing_Resume-Final
GaneshaShetty_Automation_Testing_Resume-FinalGaneshaShetty_Automation_Testing_Resume-Final
GaneshaShetty_Automation_Testing_Resume-Final
 
AEM.Design - Project Introduction
AEM.Design - Project IntroductionAEM.Design - Project Introduction
AEM.Design - Project Introduction
 
Transforming Product Development in the Cloud (ENT306) - AWS re:Invent 2018
Transforming Product Development in the Cloud (ENT306) - AWS re:Invent 2018Transforming Product Development in the Cloud (ENT306) - AWS re:Invent 2018
Transforming Product Development in the Cloud (ENT306) - AWS re:Invent 2018
 
Webinar-DevOps.pdf
Webinar-DevOps.pdfWebinar-DevOps.pdf
Webinar-DevOps.pdf
 
Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...
Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...
Trouble with Performance Debugging? Not Anymore with Choreo, the AI-Assisted ...
 
Shifting Left: The Top 5 Reasons to Test APIs and Components Early
Shifting Left: The Top 5 Reasons to Test APIs and Components EarlyShifting Left: The Top 5 Reasons to Test APIs and Components Early
Shifting Left: The Top 5 Reasons to Test APIs and Components Early
 
Software 4.0 | Anand Paropkari | Pune Agile Unconference 2017 | ScaleUp Consu...
Software 4.0 | Anand Paropkari | Pune Agile Unconference 2017 | ScaleUp Consu...Software 4.0 | Anand Paropkari | Pune Agile Unconference 2017 | ScaleUp Consu...
Software 4.0 | Anand Paropkari | Pune Agile Unconference 2017 | ScaleUp Consu...
 
Automotive Software Cost Estimation - The UCE Approach - Emmanuel Mary
Automotive Software Cost Estimation - The UCE Approach - Emmanuel MaryAutomotive Software Cost Estimation - The UCE Approach - Emmanuel Mary
Automotive Software Cost Estimation - The UCE Approach - Emmanuel Mary
 
You have Selenium... Now what?
You have Selenium... Now what?You have Selenium... Now what?
You have Selenium... Now what?
 
Augmenting Coded UI
Augmenting Coded UIAugmenting Coded UI
Augmenting Coded UI
 
MageConf 2017, Design API Best Practices
MageConf 2017, Design API Best PracticesMageConf 2017, Design API Best Practices
MageConf 2017, Design API Best Practices
 
Functional and Non-functional Test automation
Functional and Non-functional Test automationFunctional and Non-functional Test automation
Functional and Non-functional Test automation
 
DevGeekWeek 2017 Inflectra Meetup in Herzliya Presentation
DevGeekWeek 2017 Inflectra Meetup in Herzliya PresentationDevGeekWeek 2017 Inflectra Meetup in Herzliya Presentation
DevGeekWeek 2017 Inflectra Meetup in Herzliya Presentation
 
How to Add Test Automation to your Quality Assurance Toolbelt
How to Add Test Automation to your Quality Assurance ToolbeltHow to Add Test Automation to your Quality Assurance Toolbelt
How to Add Test Automation to your Quality Assurance Toolbelt
 
D mayo achieving architectural agility agile in gov conf apr 19 2017
D mayo achieving architectural agility agile in gov conf apr 19 2017D mayo achieving architectural agility agile in gov conf apr 19 2017
D mayo achieving architectural agility agile in gov conf apr 19 2017
 

More from Rahul Verma

Arjuna - The Case of Web UI Automation with Selenium
Arjuna - The Case of Web UI Automation with SeleniumArjuna - The Case of Web UI Automation with Selenium
Arjuna - The Case of Web UI Automation with SeleniumRahul Verma
 
Bell Bottoms and Beyond
Bell Bottoms and BeyondBell Bottoms and Beyond
Bell Bottoms and BeyondRahul Verma
 
Test Encapsulation - Let Automated Tests Think for Themselves
Test Encapsulation - Let Automated Tests Think for ThemselvesTest Encapsulation - Let Automated Tests Think for Themselves
Test Encapsulation - Let Automated Tests Think for ThemselvesRahul Verma
 
Jugaadu Automation - The Real Desi Test Automation Story by Rahul Verma
Jugaadu Automation - The Real Desi Test Automation Story by Rahul VermaJugaadu Automation - The Real Desi Test Automation Story by Rahul Verma
Jugaadu Automation - The Real Desi Test Automation Story by Rahul VermaRahul Verma
 
The Dogmatic Agile - Agile Testing Days 2017
The Dogmatic Agile - Agile Testing Days 2017The Dogmatic Agile - Agile Testing Days 2017
The Dogmatic Agile - Agile Testing Days 2017Rahul Verma
 
Arjuna - Reinventing the Test Automation Wheels
Arjuna - Reinventing the Test Automation WheelsArjuna - Reinventing the Test Automation Wheels
Arjuna - Reinventing the Test Automation WheelsRahul Verma
 
The Last Keynote on Software Testing
The Last Keynote on Software TestingThe Last Keynote on Software Testing
The Last Keynote on Software TestingRahul Verma
 
Design of Test Automation - Principles & Patterns
Design of Test Automation  - Principles & PatternsDesign of Test Automation  - Principles & Patterns
Design of Test Automation - Principles & PatternsRahul Verma
 

More from Rahul Verma (8)

Arjuna - The Case of Web UI Automation with Selenium
Arjuna - The Case of Web UI Automation with SeleniumArjuna - The Case of Web UI Automation with Selenium
Arjuna - The Case of Web UI Automation with Selenium
 
Bell Bottoms and Beyond
Bell Bottoms and BeyondBell Bottoms and Beyond
Bell Bottoms and Beyond
 
Test Encapsulation - Let Automated Tests Think for Themselves
Test Encapsulation - Let Automated Tests Think for ThemselvesTest Encapsulation - Let Automated Tests Think for Themselves
Test Encapsulation - Let Automated Tests Think for Themselves
 
Jugaadu Automation - The Real Desi Test Automation Story by Rahul Verma
Jugaadu Automation - The Real Desi Test Automation Story by Rahul VermaJugaadu Automation - The Real Desi Test Automation Story by Rahul Verma
Jugaadu Automation - The Real Desi Test Automation Story by Rahul Verma
 
The Dogmatic Agile - Agile Testing Days 2017
The Dogmatic Agile - Agile Testing Days 2017The Dogmatic Agile - Agile Testing Days 2017
The Dogmatic Agile - Agile Testing Days 2017
 
Arjuna - Reinventing the Test Automation Wheels
Arjuna - Reinventing the Test Automation WheelsArjuna - Reinventing the Test Automation Wheels
Arjuna - Reinventing the Test Automation Wheels
 
The Last Keynote on Software Testing
The Last Keynote on Software TestingThe Last Keynote on Software Testing
The Last Keynote on Software Testing
 
Design of Test Automation - Principles & Patterns
Design of Test Automation  - Principles & PatternsDesign of Test Automation  - Principles & Patterns
Design of Test Automation - Principles & Patterns
 

Recently uploaded

cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
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
 
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 Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
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
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
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
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
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
 
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 Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
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
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
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
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 

Meaningful UI Test Automation

  • 1. TM Rahul Verma Founder, Test Mile www.TestMile.com ful UI Test Automation ®
  • 2. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® In my line of work as a consultant, I review Test automation implementations. Here are some honest findings.
  • 3. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® Most Test Automation Engineers Tooling Experts This small dot is designers Skill Ratio I observed Minimal Programming knowledge Jugaad Automation. Know tools and programming very well. Poor at Design.
  • 4. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® Where do I fit in? My primary focus is OOP modeling in test automation. I work with engineers who know tools well and help them in design aspects around them. In the process, I’m learning a bit of tooling. I’m not a great designer. It’s just that I have looked at lots and lots of code for last 10 years.
  • 5. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® Most Test Automation Engineers Tooling Experts Code Reduction I achieved with OOP design 90-97% >50%
  • 6. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® These numbers are shocking. Borderline unbelievable.
  • 7. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® One of the core reasons I found is this: Despite most open source tools being based on OOP, and despite most engineers using an OOP language, Test Automation Engineers’ thinking is procedural. OOP Models are almost non-existant; Except random inheritance scattered here and there. I’ve nothing against procedural programming. However, this nature of mash-up is mostly a disaster.
  • 8. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® A Simple Example… In Selenium WebDriver, you can find an element using the webdriver or an element. I’ve seen a variety of implementations with if-elses, switch cases, overloading etc, some decent some horrible. All of them failed to acknowledge that both WebDriver and WebElement implement SearchContext interface. So, one method without if-else, switch-case or similar constructs, is sufficient if the argument it takes is SearchContext instead of WebDriver or WebElement. Same is true for Window and UiItem in case of White framework. They implement a common interface for finding. Looking for an answer  Find it!
  • 9. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® This simple change would have a cascading effect on calling code as there would be only one type of call for different situations. Try it.
  • 10. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® Over the course of last few years, I started implemented various OOP based implementations to bring code reduction. This is where I realized that I could put together my ideas in a place which is open to all for reference. As I deal with more an more projects and with inputs from community, it could be pretty helpful for testing community. ful
  • 11. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® This led to development of MEANINGful model of UI automation. The goal of this presentation is give you a quick introduction to the model and share an open- source, mostly completed implementation with you for reference. ful
  • 12. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® The MEANINGful model is an OOP Pluralistic model that goes beyond Page-Object design and acknowledges 7 primary components in UI automation. Maker Element Automator Name Store Identifier Notifier GUI
  • 13. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® In the interest of the wider audience, Let me show you technically toned down version of the model.
  • 14. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® Maker NameStore GUI Automator Element Notifier Identifier Dispatch notification Create (with Builders/ Factories) Create Element Proxy Get Element Meta Data By Name Proxy Pass Element Meta Data Get Element Meta Data By Name (Nested Elements) Meaning of Element Meta Data
  • 15. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® Meaningful model has the following benefits: • Supports multiple automation tool integration. • Higher level identifiers, Multiple identifiers for same control (OR/AND relationship) • Multiple formats for externalization of identification relationships • Nested Guis • Higher level API for multi-element match • Same Element API for automator based or Gui based automation. • A considerable reduction in code along with robustness. • And more…
  • 16. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® You can take these ideas and try something of your own. In the process, You can also choose to refer my work.
  • 17. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® Daksha is a free, Apache 2 Licensed, open-source Java framework that I am creating. Target is to have a MEANINGful implementation which is freely accessible to the community for reference. Currently Daksha includes support for Selenium, Appium and Sikuli. API completion is in progress for the said libs.
  • 18. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® Daksha UI Automation Variants Walkthrough
  • 19. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® For a more involved discussion: You can reach out directly to RV@testmile.com Try out Daksha. It’s less than 2 months old. So, if you find a problem. You are likely right about it. Share your feedback. *Notifier component is not yet developed. I am working on arriving at the right approach yet.
  • 20. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® Thanks For Listening to Me © 2017-18 – Test Mile Software Testing Pvt Ltd www.TestMile.com Write to support@testmile.com Link www.testmile.com/daksha Interested?
  • 21. © 2017-18 Test Mile® Software Testing Pvt Ltd www.TestMile.com ful ® Picture Credits https://all-free-download.com/free-vector/download/the-creative-letters-designed-10-vector_181566.html http://www.afromum.com/wp-content/uploads/2015/12/Think-Outside-The-Box-Concept-48782561.jpg https://www.thebeijinger.com/files/u95720/Confused_Dog.jpg I’ve tried to keep a track of all images used. Please let me know if your link reference is not there, so that I can include the same.