SlideShare a Scribd company logo
http://www.AgileQualityMadeEasy.com
Best Practices for Test Automation
David Tzemach
Write Clear and Efficient Code
Code For People
Just like any other development project, you must
write clear and efficient code that you can run in a
reasonable time. The number of tests run even on
the smallest automation project is often hundreds
and sometimes thousands tests that need to run
over and over again. Therefore, if the code is not
efficient it will affect the timelines and reduce the
number of executions.
Tips To Write Clean And Better Code
One place for all functionality
if there’s a large amount of functionality
you’re keeping all in one place, Separate it
using an additional classes
Use Meaningful Names
The name that you specify in your code
should reveal it’s intent
Write Readable Code For People
Don’t waste another developer time by
writing messy code
Conventions
It keeps things clear and let you know
exactly what you’re working with
Commenting just enough
Comments should be used only when they
are needed
Don’t automate duplicate code
Lines and lines of duplicate code are not
only harder to read than a concise and
elegant solution, but also increase the
chance for error
Uncertainty Is Automation’s Worst Enemy
One of the main criteria to determine the quality of a good automation
project is the ability to provide consistent results every time we run it. If
automation passes successfully in the first run and fails in the second run
without any changes made, we cannot be certain if the failure is due to a
real product bug or a bug in the automation itself.
Uncertainty Is Automation’s Worst Enemy
Make sure that you run on stable environments
How can we reduce uncertainty in an automated environment?
Make sure that new code is approved before releasing it to the main branch
Remove unstable tests
Do not automate unstable functionality
Make sure that each test is verified manually
Make sure that your code is up to date base on functionality changes
Make sure that each test case and code implementation is reviewed
Make sure that you use reliable builds of the application
Make sure that you change the test data when requirements change
Determining Failure Gates
Test fail, what happens now…?
The automation code is designed to find bugs in the
tested application. For that, we must make sure that
in the case of a failure, it is easy to understand the
root cause of the failed test without spending a lot of
time diagnosing the failure.
Therefore, when writing automation, we must think
about different ways to reduce the debugging time,
such as automated bug reporting, logs and any other
information that improves the debugging process.
Automation Reports
Test Automation Reports
After every test execution, generate a report that explains
the test results. These guidelines help keep it efficient:
 In case of failure, provide a link to the debugging information
collected during the execution.
 The report shows the execution start and end times.
 The report shows who the automation owner is.
 The report should be clear to the reader.
 The report contains a link to the labs used to run the tests.
 The report is sent automatically to the relevant people.
 The report contains details about the tests that failed and
passed.
“Automate or Not, that is the question”
Know Which Test Cases to Automate
There are endless test cases that we can run during a
testing cycle, but in reality, we just cannot afford to write
and execute them. Just like in manual testing, we need to
determine which test cases should be automated based on
a few simple factors:
 Automate the test cases that increase the automation ROI.
 Automate any test case that requires high precision.
 Automate any test that is part of the regression cycle.
 Automate test cases that you cannot perform manually.
 Automate any test case that is executed repeatedly.
 Automate any test case that is time-consuming.
 Automate any test case that runs per build.
 Automate high-risk scenarios.
And the test cases that you should not automate
 Do not automate test cases for which the requirements are still changing.
The maintainability of such cases will reduce the automation ROI.
 Do not automate test cases that are part of usability testing.
 Do not automate the application GUI if its objects are frequently modified.
 Do not automate test cases that are not verified manually.
 Do not automate ad-hoc random tests.
Know the Answer to “Why Are We Automating?“
“Why Are We Automating?“
Without knowing the answer to the question above,
do not start any automation project.
It is key to understanding the drive behind the
decision to automate and in addition, helps reduce
the expectation gap between the team and
management.
Automate Only What Is Necessary
When designing an automation project, always consider the time and investment factors.
Adding an unnecessary test case affects the ROI of the entire project, so automation should
cover only the necessary test cases. There is no benefit in writing tests that will not
contribute to the test coverage.
In addition, before determining the test cases to automate, ask yourself a few basic
questions:
Automate Only What Is Necessary
What maintenance will be needed to adjust this test in future versions?
What is the preparation required in creating the test?
Can the test case be used in future versions?
Are the test’s expected results defined?
Do you have the test data for this test?
What is the objective of the test case?
Do you have the pass/fail criteria?
Reduce dependencies of tests
Eliminate Dependencies, Don't Manage Them!
When a test fails, we want to find the root cause of the problem as fast as we can. The
last thing we want is to spend time investigating numerous automation steps that affect
the failed test. Independent tests allow you to understand the cause of the failure
faster and remove the dependency on other automation steps. Another advantage of
independent tests is the ability to run each test separately as a single unit without any
relation to the other tests.
No Dependencies
=
Easy Debugging
Increase of automation stability
Improve test execution time
Execute your tests in parallel
You Must Be Familiar with the Application Under Test
Knowledge is power!
Automated testing should be treated in the same way as manual testing, the people responsible
for building and designing the test scenarios must be familiar with the application being tested:
 Know the technologies used to develop the software.
 Know the main flows of the end-to-end scenarios.
 Know the architecture of the application.
 Know which platforms are supported.
Planning Before Implementation
“A Goal without a plan is just a wish”
Just like any other project, we cannot write any code before we know the basic parameters:
 Determine the testing tools and programming language to use.
 Understand the deliverables of the automation project.
 Select the appropriate automation framework.
 Understand the expectations.
 Prepare the automation design.
 Expected test coverage.
Build the Right Automation Team
“Together, ordinary people can achieve extraordinary results.”
Selecting the right automation tool is important, but it is more important to
hire the right people to use it during the development phase:
 Hire an automation architect to design the automation architecture.
 Manual testers should focus on manual testing. If you want them to
automate, make sure that they are dedicated only to the automated
testing work.
 The team must include at least one authority who can lead the
technical aspects and guide the other automation engineers.
 Manual testers are not programmers. Do not ask them to program
without appropriate training.
 Make sure that your team has enough people to meet the project
requirements.
Manual Verification Before Automation
Verify First, Automate Later
Before automating your tests, you must verify that each test case is tested and verified manually. If
you decide to skip this phase, you will have trouble understanding the source of failures during the
automated process.
Another consequence of skipping the manual verification is that it takes more time to stop the
coder’s work and start the investigation about the failure. If you do the manual verification, you
reduce the investigation time, which allows the coder to keep their focus.
Choose an Automation Tool
Which Is Familiar to Your Team Members
You can spend thousands of dollars on the best automation tool, but if your team is not
familiar with it they will not get the most out of it and will probably spend more time in
learning it than on actual development.
Which tool is best for you?
 If your team members have previous experience with an automation tool that meets
the project requirements, select it. Their experience will help you meet targets faster.
 When selecting the tool, ask yourself if you can use it in future projects.
 Select the tool that is most suitable to meet the project requirements.
 Select the automation tool that allows your team to develop in a programming
language that they are familiar with.
How can we reduce uncertainty in an automated environment?
Thank You

More Related Content

What's hot

Test Automation
Test AutomationTest Automation
Test Automation
nikos batsios
 
Test automation process
Test automation processTest automation process
Test automation process
Bharathi Krishnamurthi
 
Automation testing strategy, approach & planning
Automation testing  strategy, approach & planningAutomation testing  strategy, approach & planning
Automation testing strategy, approach & planningSivaprasanthRentala1975
 
Automated vs manual testing
Automated vs manual testingAutomated vs manual testing
Automated vs manual testing
Kanoah
 
automation testing benefits
automation testing benefitsautomation testing benefits
automation testing benefitsnazeer pasha
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
Sauce Labs
 
Test automation methodologies
Test automation methodologiesTest automation methodologies
Test automation methodologies
Mesut Günes
 
Exploratory Testing
Exploratory TestingExploratory Testing
Exploratory Testing
sriks7
 
Testing Tool Evaluation Criteria
Testing Tool Evaluation CriteriaTesting Tool Evaluation Criteria
Testing Tool Evaluation Criteriabasma_iti_1984
 
Automation Best Practices
Automation Best PracticesAutomation Best Practices
Automation Best Practices
Sauce Labs
 
Automation testing introduction for FujiNet
Automation testing introduction for FujiNetAutomation testing introduction for FujiNet
Automation testing introduction for FujiNet
Hai Tran Son
 
Introduction to Software Test Automation
Introduction to Software Test AutomationIntroduction to Software Test Automation
Introduction to Software Test Automation
Amr Ali (ISTQB CTAL Full, CSM, ITIL Foundation)
 
Test automation framework
Test automation frameworkTest automation framework
Test automation framework
QACampus
 
Automation With A Tool Demo
Automation With A Tool DemoAutomation With A Tool Demo
Automation With A Tool Demo
Nivetha Padmanaban
 
Developing a test automation strategy by Brian Bayer
Developing a test automation strategy by Brian BayerDeveloping a test automation strategy by Brian Bayer
Developing a test automation strategy by Brian Bayer
QA or the Highway
 
6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation Architecture6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation Architecture
Erdem YILDIRIM
 
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
Naresh Jain
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)
Leonard Fingerman
 
Test automation
Test automationTest automation
Test automation
Xavier Yin
 

What's hot (20)

Test Automation
Test AutomationTest Automation
Test Automation
 
Test automation process
Test automation processTest automation process
Test automation process
 
Automation testing strategy, approach & planning
Automation testing  strategy, approach & planningAutomation testing  strategy, approach & planning
Automation testing strategy, approach & planning
 
Automated vs manual testing
Automated vs manual testingAutomated vs manual testing
Automated vs manual testing
 
automation testing benefits
automation testing benefitsautomation testing benefits
automation testing benefits
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
 
Test automation methodologies
Test automation methodologiesTest automation methodologies
Test automation methodologies
 
Exploratory Testing
Exploratory TestingExploratory Testing
Exploratory Testing
 
Testing Tool Evaluation Criteria
Testing Tool Evaluation CriteriaTesting Tool Evaluation Criteria
Testing Tool Evaluation Criteria
 
Automation Best Practices
Automation Best PracticesAutomation Best Practices
Automation Best Practices
 
Automation testing
Automation testingAutomation testing
Automation testing
 
Automation testing introduction for FujiNet
Automation testing introduction for FujiNetAutomation testing introduction for FujiNet
Automation testing introduction for FujiNet
 
Introduction to Software Test Automation
Introduction to Software Test AutomationIntroduction to Software Test Automation
Introduction to Software Test Automation
 
Test automation framework
Test automation frameworkTest automation framework
Test automation framework
 
Automation With A Tool Demo
Automation With A Tool DemoAutomation With A Tool Demo
Automation With A Tool Demo
 
Developing a test automation strategy by Brian Bayer
Developing a test automation strategy by Brian BayerDeveloping a test automation strategy by Brian Bayer
Developing a test automation strategy by Brian Bayer
 
6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation Architecture6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation Architecture
 
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)
 
Test automation
Test automationTest automation
Test automation
 

Similar to Best practices for test automation

Automation testing: how tools are important?
Automation testing: how tools are important?Automation testing: how tools are important?
Automation testing: how tools are important?
MD ISLAM
 
AutomationTesting
AutomationTestingAutomationTesting
AutomationTesting
M. Devi
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
Archana Krushnan
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
Archana Krushnan
 
Why and When to Use Automation in Software Testing
Why and When to Use Automation in Software TestingWhy and When to Use Automation in Software Testing
Why and When to Use Automation in Software Testing
V2Soft
 
How to make Automation an asset for Organization
How to make Automation an asset for OrganizationHow to make Automation an asset for Organization
How to make Automation an asset for Organization
anuvip
 
A Complete Guide to Codeless Testing.pdf
A Complete Guide to Codeless Testing.pdfA Complete Guide to Codeless Testing.pdf
A Complete Guide to Codeless Testing.pdf
pCloudy
 
Why Automation Fails—in Theory and Practice
Why Automation Fails—in Theory and PracticeWhy Automation Fails—in Theory and Practice
Why Automation Fails—in Theory and Practice
TechWell
 
Comparison manual & automation
Comparison manual & automationComparison manual & automation
Comparison manual & automation
Rashmi Kanta Mohapatra
 
Top Benefits of Automation Testing for a Successful Product Release.pdf
Top Benefits of Automation Testing for a Successful Product Release.pdfTop Benefits of Automation Testing for a Successful Product Release.pdf
Top Benefits of Automation Testing for a Successful Product Release.pdf
pCloudy
 
Top 5 pitfalls of software test automatiion
Top 5 pitfalls of software test automatiionTop 5 pitfalls of software test automatiion
Top 5 pitfalls of software test automatiion
ekatechserv
 
Test automation: Are Enterprises ready to bite the bullet?
Test automation: Are Enterprises ready to bite the bullet?Test automation: Are Enterprises ready to bite the bullet?
Test automation: Are Enterprises ready to bite the bullet?
Aspire Systems
 
Influence of emphasized automation in ci
Influence of emphasized automation in ciInfluence of emphasized automation in ci
Influence of emphasized automation in ci
BugRaptors
 
The Leaders Guide to Getting Started with Automated Testing
The Leaders Guide to Getting Started with Automated TestingThe Leaders Guide to Getting Started with Automated Testing
The Leaders Guide to Getting Started with Automated Testing
James Briers
 
Module 4.pptxbsbsnsnsnsbsbbsjsjzbsbbsbsbsbs
Module 4.pptxbsbsnsnsnsbsbbsjsjzbsbbsbsbsbsModule 4.pptxbsbsnsnsnsbsbbsjsjzbsbbsbsbsbs
Module 4.pptxbsbsnsnsnsbsbbsjsjzbsbbsbsbsbs
Shivang100
 
Automation testing
Automation testingAutomation testing
Automation testing
Arta Doci
 
Top 5 Pitfalls of Test Automation and How To Avoid Them
Top 5 Pitfalls of Test Automation and How To Avoid ThemTop 5 Pitfalls of Test Automation and How To Avoid Them
Top 5 Pitfalls of Test Automation and How To Avoid ThemSundar Sritharan
 
Improving ROI with Scriptless Test Automation
Improving ROI with Scriptless Test AutomationImproving ROI with Scriptless Test Automation
Improving ROI with Scriptless Test Automation
Mindfire LLC
 
Best Practises In Test Automation
Best Practises In Test AutomationBest Practises In Test Automation
Best Practises In Test Automation
99tests
 

Similar to Best practices for test automation (20)

Automation testing: how tools are important?
Automation testing: how tools are important?Automation testing: how tools are important?
Automation testing: how tools are important?
 
AutomationTesting
AutomationTestingAutomationTesting
AutomationTesting
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
 
Why and When to Use Automation in Software Testing
Why and When to Use Automation in Software TestingWhy and When to Use Automation in Software Testing
Why and When to Use Automation in Software Testing
 
How to make Automation an asset for Organization
How to make Automation an asset for OrganizationHow to make Automation an asset for Organization
How to make Automation an asset for Organization
 
A Complete Guide to Codeless Testing.pdf
A Complete Guide to Codeless Testing.pdfA Complete Guide to Codeless Testing.pdf
A Complete Guide to Codeless Testing.pdf
 
Why Automation Fails—in Theory and Practice
Why Automation Fails—in Theory and PracticeWhy Automation Fails—in Theory and Practice
Why Automation Fails—in Theory and Practice
 
Comparison manual & automation
Comparison manual & automationComparison manual & automation
Comparison manual & automation
 
CIO Review QA Mentor
CIO Review QA MentorCIO Review QA Mentor
CIO Review QA Mentor
 
Top Benefits of Automation Testing for a Successful Product Release.pdf
Top Benefits of Automation Testing for a Successful Product Release.pdfTop Benefits of Automation Testing for a Successful Product Release.pdf
Top Benefits of Automation Testing for a Successful Product Release.pdf
 
Top 5 pitfalls of software test automatiion
Top 5 pitfalls of software test automatiionTop 5 pitfalls of software test automatiion
Top 5 pitfalls of software test automatiion
 
Test automation: Are Enterprises ready to bite the bullet?
Test automation: Are Enterprises ready to bite the bullet?Test automation: Are Enterprises ready to bite the bullet?
Test automation: Are Enterprises ready to bite the bullet?
 
Influence of emphasized automation in ci
Influence of emphasized automation in ciInfluence of emphasized automation in ci
Influence of emphasized automation in ci
 
The Leaders Guide to Getting Started with Automated Testing
The Leaders Guide to Getting Started with Automated TestingThe Leaders Guide to Getting Started with Automated Testing
The Leaders Guide to Getting Started with Automated Testing
 
Module 4.pptxbsbsnsnsnsbsbbsjsjzbsbbsbsbsbs
Module 4.pptxbsbsnsnsnsbsbbsjsjzbsbbsbsbsbsModule 4.pptxbsbsnsnsnsbsbbsjsjzbsbbsbsbsbs
Module 4.pptxbsbsnsnsnsbsbbsjsjzbsbbsbsbsbs
 
Automation testing
Automation testingAutomation testing
Automation testing
 
Top 5 Pitfalls of Test Automation and How To Avoid Them
Top 5 Pitfalls of Test Automation and How To Avoid ThemTop 5 Pitfalls of Test Automation and How To Avoid Them
Top 5 Pitfalls of Test Automation and How To Avoid Them
 
Improving ROI with Scriptless Test Automation
Improving ROI with Scriptless Test AutomationImproving ROI with Scriptless Test Automation
Improving ROI with Scriptless Test Automation
 
Best Practises In Test Automation
Best Practises In Test AutomationBest Practises In Test Automation
Best Practises In Test Automation
 

More from David Tzemach

The new manager role in scrum teams and beyond | SupremeAgile
The new manager role in scrum teams and beyond | SupremeAgileThe new manager role in scrum teams and beyond | SupremeAgile
The new manager role in scrum teams and beyond | SupremeAgile
David Tzemach
 
Top Agile Myths & Misconceptions
Top Agile Myths & MisconceptionsTop Agile Myths & Misconceptions
Top Agile Myths & Misconceptions
David Tzemach
 
Scrum Master (SM) - Practical Approach
Scrum Master (SM) - Practical ApproachScrum Master (SM) - Practical Approach
Scrum Master (SM) - Practical Approach
David Tzemach
 
Expectations of scrum masters - How to choose a true great scrum master?
Expectations of scrum masters - How to choose a true great scrum master?Expectations of scrum masters - How to choose a true great scrum master?
Expectations of scrum masters - How to choose a true great scrum master?
David Tzemach
 
Top 10 challenges faced by the scrum master
Top 10 challenges faced by the scrum masterTop 10 challenges faced by the scrum master
Top 10 challenges faced by the scrum master
David Tzemach
 
SDLC vs STLC
SDLC vs STLCSDLC vs STLC
SDLC vs STLC
David Tzemach
 
What is component testing | David Tzemach
What is component testing | David TzemachWhat is component testing | David Tzemach
What is component testing | David Tzemach
David Tzemach
 
What is automation testing | David Tzemach
What is automation testing | David TzemachWhat is automation testing | David Tzemach
What is automation testing | David Tzemach
David Tzemach
 
The role of the product owner in scrum team | David Tzemach
The role of the product owner in scrum team | David TzemachThe role of the product owner in scrum team | David Tzemach
The role of the product owner in scrum team | David Tzemach
David Tzemach
 
The complete guide for software integration testing | David Tzemach
The complete guide for software integration testing | David TzemachThe complete guide for software integration testing | David Tzemach
The complete guide for software integration testing | David Tzemach
David Tzemach
 
The complete guide for negative testing | David Tzemach
The complete guide for negative testing | David TzemachThe complete guide for negative testing | David Tzemach
The complete guide for negative testing | David Tzemach
David Tzemach
 
Software testing metrics | David Tzemach
Software testing metrics | David Tzemach Software testing metrics | David Tzemach
Software testing metrics | David Tzemach
David Tzemach
 
An introduction to api testing | David Tzemach
An introduction to api testing | David TzemachAn introduction to api testing | David Tzemach
An introduction to api testing | David Tzemach
David Tzemach
 
Agile scrum roles
Agile scrum rolesAgile scrum roles
Agile scrum roles
David Tzemach
 
Agile vs. waterfall - The fundamentals differences
Agile vs. waterfall - The fundamentals differencesAgile vs. waterfall - The fundamentals differences
Agile vs. waterfall - The fundamentals differences
David Tzemach
 
The evolution of agile development process
The evolution of agile development processThe evolution of agile development process
The evolution of agile development process
David Tzemach
 
The basics of UNIT testing
The basics of UNIT testing The basics of UNIT testing
The basics of UNIT testing
David Tzemach
 
Agile User Stories | The complete Review
Agile User Stories | The complete ReviewAgile User Stories | The complete Review
Agile User Stories | The complete Review
David Tzemach
 
All you need to know about regression testing | David Tzemach
All you need to know about regression testing | David TzemachAll you need to know about regression testing | David Tzemach
All you need to know about regression testing | David Tzemach
David Tzemach
 
User Interface Testing | Best Practices
User Interface Testing | Best Practices User Interface Testing | Best Practices
User Interface Testing | Best Practices
David Tzemach
 

More from David Tzemach (20)

The new manager role in scrum teams and beyond | SupremeAgile
The new manager role in scrum teams and beyond | SupremeAgileThe new manager role in scrum teams and beyond | SupremeAgile
The new manager role in scrum teams and beyond | SupremeAgile
 
Top Agile Myths & Misconceptions
Top Agile Myths & MisconceptionsTop Agile Myths & Misconceptions
Top Agile Myths & Misconceptions
 
Scrum Master (SM) - Practical Approach
Scrum Master (SM) - Practical ApproachScrum Master (SM) - Practical Approach
Scrum Master (SM) - Practical Approach
 
Expectations of scrum masters - How to choose a true great scrum master?
Expectations of scrum masters - How to choose a true great scrum master?Expectations of scrum masters - How to choose a true great scrum master?
Expectations of scrum masters - How to choose a true great scrum master?
 
Top 10 challenges faced by the scrum master
Top 10 challenges faced by the scrum masterTop 10 challenges faced by the scrum master
Top 10 challenges faced by the scrum master
 
SDLC vs STLC
SDLC vs STLCSDLC vs STLC
SDLC vs STLC
 
What is component testing | David Tzemach
What is component testing | David TzemachWhat is component testing | David Tzemach
What is component testing | David Tzemach
 
What is automation testing | David Tzemach
What is automation testing | David TzemachWhat is automation testing | David Tzemach
What is automation testing | David Tzemach
 
The role of the product owner in scrum team | David Tzemach
The role of the product owner in scrum team | David TzemachThe role of the product owner in scrum team | David Tzemach
The role of the product owner in scrum team | David Tzemach
 
The complete guide for software integration testing | David Tzemach
The complete guide for software integration testing | David TzemachThe complete guide for software integration testing | David Tzemach
The complete guide for software integration testing | David Tzemach
 
The complete guide for negative testing | David Tzemach
The complete guide for negative testing | David TzemachThe complete guide for negative testing | David Tzemach
The complete guide for negative testing | David Tzemach
 
Software testing metrics | David Tzemach
Software testing metrics | David Tzemach Software testing metrics | David Tzemach
Software testing metrics | David Tzemach
 
An introduction to api testing | David Tzemach
An introduction to api testing | David TzemachAn introduction to api testing | David Tzemach
An introduction to api testing | David Tzemach
 
Agile scrum roles
Agile scrum rolesAgile scrum roles
Agile scrum roles
 
Agile vs. waterfall - The fundamentals differences
Agile vs. waterfall - The fundamentals differencesAgile vs. waterfall - The fundamentals differences
Agile vs. waterfall - The fundamentals differences
 
The evolution of agile development process
The evolution of agile development processThe evolution of agile development process
The evolution of agile development process
 
The basics of UNIT testing
The basics of UNIT testing The basics of UNIT testing
The basics of UNIT testing
 
Agile User Stories | The complete Review
Agile User Stories | The complete ReviewAgile User Stories | The complete Review
Agile User Stories | The complete Review
 
All you need to know about regression testing | David Tzemach
All you need to know about regression testing | David TzemachAll you need to know about regression testing | David Tzemach
All you need to know about regression testing | David Tzemach
 
User Interface Testing | Best Practices
User Interface Testing | Best Practices User Interface Testing | Best Practices
User Interface Testing | Best Practices
 

Recently uploaded

Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
XfilesPro
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
KrzysztofKkol1
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
varshanayak241
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 

Recently uploaded (20)

Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 

Best practices for test automation

  • 2. Write Clear and Efficient Code
  • 3. Code For People Just like any other development project, you must write clear and efficient code that you can run in a reasonable time. The number of tests run even on the smallest automation project is often hundreds and sometimes thousands tests that need to run over and over again. Therefore, if the code is not efficient it will affect the timelines and reduce the number of executions.
  • 4. Tips To Write Clean And Better Code One place for all functionality if there’s a large amount of functionality you’re keeping all in one place, Separate it using an additional classes Use Meaningful Names The name that you specify in your code should reveal it’s intent Write Readable Code For People Don’t waste another developer time by writing messy code Conventions It keeps things clear and let you know exactly what you’re working with Commenting just enough Comments should be used only when they are needed Don’t automate duplicate code Lines and lines of duplicate code are not only harder to read than a concise and elegant solution, but also increase the chance for error
  • 6. One of the main criteria to determine the quality of a good automation project is the ability to provide consistent results every time we run it. If automation passes successfully in the first run and fails in the second run without any changes made, we cannot be certain if the failure is due to a real product bug or a bug in the automation itself. Uncertainty Is Automation’s Worst Enemy Make sure that you run on stable environments How can we reduce uncertainty in an automated environment? Make sure that new code is approved before releasing it to the main branch Remove unstable tests Do not automate unstable functionality Make sure that each test is verified manually Make sure that your code is up to date base on functionality changes Make sure that each test case and code implementation is reviewed Make sure that you use reliable builds of the application Make sure that you change the test data when requirements change
  • 8. Test fail, what happens now…? The automation code is designed to find bugs in the tested application. For that, we must make sure that in the case of a failure, it is easy to understand the root cause of the failed test without spending a lot of time diagnosing the failure. Therefore, when writing automation, we must think about different ways to reduce the debugging time, such as automated bug reporting, logs and any other information that improves the debugging process.
  • 10. Test Automation Reports After every test execution, generate a report that explains the test results. These guidelines help keep it efficient:  In case of failure, provide a link to the debugging information collected during the execution.  The report shows the execution start and end times.  The report shows who the automation owner is.  The report should be clear to the reader.  The report contains a link to the labs used to run the tests.  The report is sent automatically to the relevant people.  The report contains details about the tests that failed and passed.
  • 11. “Automate or Not, that is the question”
  • 12. Know Which Test Cases to Automate There are endless test cases that we can run during a testing cycle, but in reality, we just cannot afford to write and execute them. Just like in manual testing, we need to determine which test cases should be automated based on a few simple factors:  Automate the test cases that increase the automation ROI.  Automate any test case that requires high precision.  Automate any test that is part of the regression cycle.  Automate test cases that you cannot perform manually.  Automate any test case that is executed repeatedly.  Automate any test case that is time-consuming.  Automate any test case that runs per build.  Automate high-risk scenarios.
  • 13. And the test cases that you should not automate  Do not automate test cases for which the requirements are still changing. The maintainability of such cases will reduce the automation ROI.  Do not automate test cases that are part of usability testing.  Do not automate the application GUI if its objects are frequently modified.  Do not automate test cases that are not verified manually.  Do not automate ad-hoc random tests.
  • 14. Know the Answer to “Why Are We Automating?“
  • 15. “Why Are We Automating?“ Without knowing the answer to the question above, do not start any automation project. It is key to understanding the drive behind the decision to automate and in addition, helps reduce the expectation gap between the team and management.
  • 16. Automate Only What Is Necessary
  • 17. When designing an automation project, always consider the time and investment factors. Adding an unnecessary test case affects the ROI of the entire project, so automation should cover only the necessary test cases. There is no benefit in writing tests that will not contribute to the test coverage. In addition, before determining the test cases to automate, ask yourself a few basic questions: Automate Only What Is Necessary What maintenance will be needed to adjust this test in future versions? What is the preparation required in creating the test? Can the test case be used in future versions? Are the test’s expected results defined? Do you have the test data for this test? What is the objective of the test case? Do you have the pass/fail criteria?
  • 19. Eliminate Dependencies, Don't Manage Them! When a test fails, we want to find the root cause of the problem as fast as we can. The last thing we want is to spend time investigating numerous automation steps that affect the failed test. Independent tests allow you to understand the cause of the failure faster and remove the dependency on other automation steps. Another advantage of independent tests is the ability to run each test separately as a single unit without any relation to the other tests. No Dependencies = Easy Debugging Increase of automation stability Improve test execution time Execute your tests in parallel
  • 20. You Must Be Familiar with the Application Under Test
  • 21. Knowledge is power! Automated testing should be treated in the same way as manual testing, the people responsible for building and designing the test scenarios must be familiar with the application being tested:  Know the technologies used to develop the software.  Know the main flows of the end-to-end scenarios.  Know the architecture of the application.  Know which platforms are supported.
  • 23. “A Goal without a plan is just a wish” Just like any other project, we cannot write any code before we know the basic parameters:  Determine the testing tools and programming language to use.  Understand the deliverables of the automation project.  Select the appropriate automation framework.  Understand the expectations.  Prepare the automation design.  Expected test coverage.
  • 24. Build the Right Automation Team
  • 25. “Together, ordinary people can achieve extraordinary results.” Selecting the right automation tool is important, but it is more important to hire the right people to use it during the development phase:  Hire an automation architect to design the automation architecture.  Manual testers should focus on manual testing. If you want them to automate, make sure that they are dedicated only to the automated testing work.  The team must include at least one authority who can lead the technical aspects and guide the other automation engineers.  Manual testers are not programmers. Do not ask them to program without appropriate training.  Make sure that your team has enough people to meet the project requirements.
  • 27. Verify First, Automate Later Before automating your tests, you must verify that each test case is tested and verified manually. If you decide to skip this phase, you will have trouble understanding the source of failures during the automated process. Another consequence of skipping the manual verification is that it takes more time to stop the coder’s work and start the investigation about the failure. If you do the manual verification, you reduce the investigation time, which allows the coder to keep their focus.
  • 28. Choose an Automation Tool Which Is Familiar to Your Team Members
  • 29. You can spend thousands of dollars on the best automation tool, but if your team is not familiar with it they will not get the most out of it and will probably spend more time in learning it than on actual development. Which tool is best for you?  If your team members have previous experience with an automation tool that meets the project requirements, select it. Their experience will help you meet targets faster.  When selecting the tool, ask yourself if you can use it in future projects.  Select the tool that is most suitable to meet the project requirements.  Select the automation tool that allows your team to develop in a programming language that they are familiar with. How can we reduce uncertainty in an automated environment?