SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
Lessons Learned When Automating
Tabara de Testare Webinar
Alan Richardson
@EvilTester
alan@compendiumdev.co.uk
EvilTester.com
SeleniumSimplified.com
JavaForTesters.com
CompendiumDev.co.uk
Lessons Learned When Automating
Tabara de Testare Webinar
Alan Richardson
@EvilTester
alan@compendiumdev.co.uk
EvilTester.com
SeleniumSimplified.com
JavaForTesters.com
CompendiumDev.co.uk
Blurb
I've been asked some very challenging questions about lessons
learned, and how decisions are made during the process of automating
and performing technical testing. In this webinar I'm going to answer
them based on my experience. We'll discus how we know 'what to
automate' which means we have to split our analysis into 'detection'
and 'testing'. We'll cover lessons learned from solving problems, and
making mistakes, and steps we can take during the problem
solving process e.g for intermittent failures, and possible tool bugs.
We'll discuss abstraction levels and the different levels of the
technology stack to automate: how to do it, and how we make the
decisions. We'll discuss coding primarily the differences, and the
overlap, between the needs for coding for testing and coding for
production deployment. We'll also cover some WebDriver specific
answers to some of these questions. I'm also going to describe books
and techniques that have helped me over the years when trying to deal
with these questions on production projects. Also we'll take additional
and follow up questions.
Automating
● Words & Definitions
● What to automate?
● Problems encountered automating?
● Levels to automate at?
● Improve testability for automating?
Words & Definitions
● 'test' 'automate' used loosely?
● Can you automate testing?
● What words to use?
What to Automate?
● How to decide if we should automate
something ?
– Any Heuristics?
'Detection' or 'Testing'
● Detect for 'known' problems when they occur
● Test for unknowns and improve process
Detection
● Is it part of the Agile Acceptance criteria?
● Is re-appearance a concern? Bug/Problem
● Is it an area of the system that lacks lower levels of
verification?
● Is it a problem we never want to re-appear?
● Is it a risk/problem that is hard to detect if it manifests?
● Is it a risk/problem that is slow to detect if it manifests?
● Is it intermittent behaviour that we are trying to track
down?
Detection
● Is it part of the Agile Acceptance criteria?
● Is re-appearance a concern? Bug/Problem
● Is it an area of the system that lacks lower
levels of verification?
● Is it a problem we never want to re-appear?
● Is it a risk/problem that is hard to detect if it
manifests?
● Is it a risk/problem that is slow to detect if it
manifests?
● Is it intermittent behaviour that we are trying
to track down?
Process
Coverage
Feedback
Waste
Effective
Debug
Ambush
'Testing'
● Is variability in the scope of data?
● Future value in path/data/ combo execution?
● Am I prepared to do this manually next time?
● How easy to automate this?
● Is this hard/slow to do manually?
● Predictable results checking?
● Explored enough already?
'Testing'
● Is variability in the scope of data?
● Future value in path/data/ combo
execution?
● Am I prepared to do this manually
next time?
● How easy to automate this?
● Is this hard/slow to do manually?
● Predictable results checking?
● Explored enough already?
Variety
Value
Lazy
Time
Risk
Checkable
Information
Secrets of Automating
● Path
– subpaths
● Data
– Variant
– invariant
● Assertion
Login
Enter Details
Create
Entity
Amend
Details
Choose
Option
Logged In
Error
Created
Amend Created
ErrorAmended
!Logged In
Log out
Problems Encountered Automating
● What problems encountered writing automated
tests?
● How to resolve?
● Problems change over time
Problems Encountered At Start
● Lack of tool familiarity
● Tool Immaturity
● Choice of tools, risk of commitment
● Hard to know what are your problems and what
are tool problems
● No Abstractions
Problem Diagnostic
● Isolate issue with a small @Test
● Make issue repeatable
● Debug mode
● Step slowly
– If no problem then synchronisation problem
● View tool source code
● Different version combinations (down, up)
● Identify workarounds
Problems Encountered Now
● Decide on level of abstraction
● Decide on tech stack level to target
● Decide on tooling to use
● Unit test or not Unit test my code
● Synchronisation issues
● Ease of System Automating
● Mobile & New platforms
Levels to automate at
● How do you decide which level to automate at?
● Would you combine levels?
● Do you use abstractions?
– Page Objects? Data Models? Other Models?
How do you decide which level to
automate at? GUI? API? Unit? etc.
● What is your model of the system?
● Where do you trust/value feedback from?
● Where can you automate fast to add value
quickly?
● What are you prepared to maintain?
● What environments do/will you have?
Would you combine levels?
● e.g. using GUI to create account, editing info
and then verifying from the DB if data was
stored properly?
Would you combine levels?
● Yes
● Path Segment (subpath) preconditions
– Create at a level that you trust
● Automate at the level of the risk you want to detect
● Assert at multiple levels based on the conditions you
want to check
– Created – check in DB
– Reported Created – check in API/HTML
– Rendered Created Message – check on GUI
Would you combine levels?
● Yes
● Helps build abstraction layers that are clean
● Avoids frameworks
● Builds libraries
● Can re-use in different ways
Do you use abstractions?
● Page Objects?
– Yes, an abstraction of the physical GUI
– Not just Pages: Components, Navigation
● Data Models?
– Yes, abstraction of persistence, messaging and logical
– Random data generation
– 'Default' data
● Other Models?
– Yes, path and system models
– Layered execution models
● API, GUI as API, Files & Persistence
Improve testability for automating
● Advice to improve testability?
● Tools?
– Re-use abstraction layers (different level of systems
modelled – API, DB, GUI, etc.)
– execute via @Test
– Simple batch scripts
● Use abstractions for exploratory testing
● Executability
– Tool hooks – GUI ids, APIs, no https, etc.
Coding
● How is coding different for testers than for
programmers?
– Any different coding Skills?
– Language usage?
Differences
● Subset of the language
● Junit rather than container
● Coding for efficiency
● YAGNI vs IDKWTAGN
● Multiple Usages vs Controlled Access
● Paths and Libraries vs Applications
● Frameworks vs Libraries
● Coding for Change vs Requirements (Requisite Variety)
Similarities
● Advanced Books
● Static Analysis Tools
● Unit Testing
● TDD
● Naming and Coding Conventions
● Test Execution Runners
● Libraries
● Debugging
Skills
● Same skills required
● Levels of Experiences different
● Developers better be the best at coding
● Project can afford for Testers to be less
experienced coders, supported by developers
Estimation
● “How much time is needed to automate an
application?”
● How do you estimate when you are just starting
to automate?
Estimation
● I tend to avoid these questions, unless they are
part of a sprint planning for estimating the
automating of specific acceptance criteria
● But if I have to...
Estimation
● Same way estimate any development project
● Split into chunks
● Make unknowns, risks and assumptions clear
● Gain experience with tools to identify capabilities
● Experiments to improve estimates and derisk
● Depends on skills and experience
● Depends on levels of change
● What % dedicated to automating vs testing?
● Easier on 'Agile' stories
Tools
● Is there another option (except Selenium
WebDriver) which you would recommend for UI
automation?
Tools
● No
● http://seleniumsimplified.com/2016/01/can-i-
use-selenium-webdriver-to-automate-a-
windows-desktop-application/
● Different technologies require different tools
WebDriver
● Locator strategy tips?
● Problems encountered?
● Implicit & Explicit Waits?
● How to structure project?
● Frameworks?
● Disadvantages?
Location Strategy Tips?
● Aim for an ID
● Optimised hierarchy starting at an ID
● Build less for speed of execution and more
accuracy across multiple pages
● More arguments about managing in the code
Common WebDriver Problems
● Synchronisation
– Add more than you think
– Sync prior to action
– SlowLoadableComponent
– 'ware remote
● Abstraction Layers
– Refactoring
● Bug workarounds
– JavaScriptExecutor
– Inject cookies from HTTP calls
– Monkey patching Ruby
Implicit & Explicit Waits
● Never Implicit Waits
● And if Explicit waits still result in timeout?
– Missing Synchronisation
– Environment Speed Variability
– Remote Grid?
– May have to increase timeout on 'big state' actions
How to structure project?
● Maven Structure
● test
– The @Test code
● src
– The abstractions
● Packages
– Refactor as we go
Frameworks or additional tools?
● No, I avoid frameworks as much as I can
● WebDriver doesn't seem hard enough
● Model application domain as abstraction layers
● Closest to framework – Cucumber, Junit
– Cucumber – DSL
– Junit – test runner
– Both delegate/use domain abstractions
Disadvantages of WebDriver?
● Not fully supported by browser vendors yet
– Safari/Apple
– Microsoft (Edge isn't complete yet)
● Compared to what?
– Do browser vendors support any other tool?
– Google (Chrome), Mozilla (Firefox)
Career
● “How do you arrive/What was the journey from
a technical side to having conference talks and
training people?”
Career
● Do you feel strongly enough to be the change?
● Are you prepared to do the work?
Techniques
Techniques that have helped
● Decision making
● Redefinition
● Books
Decision Making
● Responsibility
● How do I know if I'm making the right decision?
● What if I make the wrong decision?
Use words to help you
● Avoid ambiguity
● Own your definitions
Books
● 'Clean Code'
– References: Dijkstra, Hoare
– Reference Peers: Myers, Yourdon, de marco, Jackson
● Others
– 'Growing Object-Oriented Software','Working with legacy
code', 'Implementation Patterns', 'Domain Driven
Design','refactoring'
● Systems
– Cybernetics, Herbert Simon, Stafford Beer, Deming, John
Diebold
Future of Testing
● “How do you see the future of testing?”
Future of Testing
● Testing will, and always has…
– been, contextual
– been about feedback
– involved coding and technical levels
– Involved exploration
– been implemented badly in some environments
Future of Testing
● Testing will,
– Require more technical knowledge
– Require more testing knowledge
– Be recognised as more skill == better testing
– Be implemented badly in some environments
Future of Testing
A more important question is
● “What are you doing, to improve your testing?”

Weitere ähnliche Inhalte

Was ist angesagt?

Abstraction Layers Test Management Summit Faciliated Session 2014
Abstraction Layers Test Management Summit Faciliated Session 2014Abstraction Layers Test Management Summit Faciliated Session 2014
Abstraction Layers Test Management Summit Faciliated Session 2014Alan Richardson
 
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...Alan Richardson
 
Automating Pragmatically - Testival 20190604
Automating Pragmatically - Testival 20190604Automating Pragmatically - Testival 20190604
Automating Pragmatically - Testival 20190604Alan Richardson
 
Practical Test Automation Deep Dive
Practical Test Automation Deep DivePractical Test Automation Deep Dive
Practical Test Automation Deep DiveAlan Richardson
 
Agile Testing Days 2014 Keynote - Helping Testers Add Value on Agile Projects
Agile Testing Days 2014 Keynote - Helping Testers Add Value on Agile ProjectsAgile Testing Days 2014 Keynote - Helping Testers Add Value on Agile Projects
Agile Testing Days 2014 Keynote - Helping Testers Add Value on Agile ProjectsAlan Richardson
 
Automating Strategically or Tactically when Testing
Automating Strategically or Tactically when TestingAutomating Strategically or Tactically when Testing
Automating Strategically or Tactically when TestingAlan Richardson
 
The Art of Questioning to improve Software Testing, Agile and Automating
The Art of Questioning to improve Software Testing, Agile and AutomatingThe Art of Questioning to improve Software Testing, Agile and Automating
The Art of Questioning to improve Software Testing, Agile and AutomatingAlan Richardson
 
Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020Alan Richardson
 
Effective Software Testing for Modern Software Development
Effective Software Testing for Modern Software DevelopmentEffective Software Testing for Modern Software Development
Effective Software Testing for Modern Software DevelopmentAlan Richardson
 
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...Alan Richardson
 
Selenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver TutorialSelenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver TutorialAlan Richardson
 
Odinstar 2017 - Real World Automating to Support Testing
Odinstar 2017 - Real World Automating to Support TestingOdinstar 2017 - Real World Automating to Support Testing
Odinstar 2017 - Real World Automating to Support TestingAlan Richardson
 
Justin Ison
Justin IsonJustin Ison
Justin IsonCodeFest
 
The limits of unit testing by Craig Stuntz
The limits of unit testing by Craig StuntzThe limits of unit testing by Craig Stuntz
The limits of unit testing by Craig StuntzQA or the Highway
 
30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess Lancaster30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess LancasterQA or the Highway
 
Adopting technical practices 2013
Adopting technical practices 2013Adopting technical practices 2013
Adopting technical practices 2013Steven Mak
 
Hindsight lessons about API testing
Hindsight lessons about API testingHindsight lessons about API testing
Hindsight lessons about API testingViktor Slavchev
 
Selenium Users Anonymous
Selenium Users AnonymousSelenium Users Anonymous
Selenium Users AnonymousDave Haeffner
 
Worst practices in software testing by the Testing troll
Worst practices in software testing by the Testing trollWorst practices in software testing by the Testing troll
Worst practices in software testing by the Testing trollViktor Slavchev
 

Was ist angesagt? (20)

Abstraction Layers Test Management Summit Faciliated Session 2014
Abstraction Layers Test Management Summit Faciliated Session 2014Abstraction Layers Test Management Summit Faciliated Session 2014
Abstraction Layers Test Management Summit Faciliated Session 2014
 
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...
Risk Mitigation Using Exploratory and Technical Testing - QASymphony Webinar ...
 
Automating Pragmatically - Testival 20190604
Automating Pragmatically - Testival 20190604Automating Pragmatically - Testival 20190604
Automating Pragmatically - Testival 20190604
 
Practical Test Automation Deep Dive
Practical Test Automation Deep DivePractical Test Automation Deep Dive
Practical Test Automation Deep Dive
 
Agile Testing Days 2014 Keynote - Helping Testers Add Value on Agile Projects
Agile Testing Days 2014 Keynote - Helping Testers Add Value on Agile ProjectsAgile Testing Days 2014 Keynote - Helping Testers Add Value on Agile Projects
Agile Testing Days 2014 Keynote - Helping Testers Add Value on Agile Projects
 
Automating Strategically or Tactically when Testing
Automating Strategically or Tactically when TestingAutomating Strategically or Tactically when Testing
Automating Strategically or Tactically when Testing
 
The Art of Questioning to improve Software Testing, Agile and Automating
The Art of Questioning to improve Software Testing, Agile and AutomatingThe Art of Questioning to improve Software Testing, Agile and Automating
The Art of Questioning to improve Software Testing, Agile and Automating
 
Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020
 
Devfest 2019-slides
Devfest 2019-slidesDevfest 2019-slides
Devfest 2019-slides
 
Effective Software Testing for Modern Software Development
Effective Software Testing for Modern Software DevelopmentEffective Software Testing for Modern Software Development
Effective Software Testing for Modern Software Development
 
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
Test Bash Netherlands Alan Richardson "How to misuse 'Automation' for testing...
 
Selenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver TutorialSelenium Clinic Eurostar 2012 WebDriver Tutorial
Selenium Clinic Eurostar 2012 WebDriver Tutorial
 
Odinstar 2017 - Real World Automating to Support Testing
Odinstar 2017 - Real World Automating to Support TestingOdinstar 2017 - Real World Automating to Support Testing
Odinstar 2017 - Real World Automating to Support Testing
 
Justin Ison
Justin IsonJustin Ison
Justin Ison
 
The limits of unit testing by Craig Stuntz
The limits of unit testing by Craig StuntzThe limits of unit testing by Craig Stuntz
The limits of unit testing by Craig Stuntz
 
30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess Lancaster30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess Lancaster
 
Adopting technical practices 2013
Adopting technical practices 2013Adopting technical practices 2013
Adopting technical practices 2013
 
Hindsight lessons about API testing
Hindsight lessons about API testingHindsight lessons about API testing
Hindsight lessons about API testing
 
Selenium Users Anonymous
Selenium Users AnonymousSelenium Users Anonymous
Selenium Users Anonymous
 
Worst practices in software testing by the Testing troll
Worst practices in software testing by the Testing trollWorst practices in software testing by the Testing troll
Worst practices in software testing by the Testing troll
 

Andere mochten auch

Test Automation Day 2015 Keynote Alan Richardson - Practical Lessons Learned ...
Test Automation Day 2015 Keynote Alan Richardson - Practical Lessons Learned ...Test Automation Day 2015 Keynote Alan Richardson - Practical Lessons Learned ...
Test Automation Day 2015 Keynote Alan Richardson - Practical Lessons Learned ...Alan Richardson
 
Computer Assisted Coding Pros & Cons
Computer Assisted Coding Pros & ConsComputer Assisted Coding Pros & Cons
Computer Assisted Coding Pros & ConsModupe Sarratt
 
Medical classification coding vs clinical terminology coding
Medical classification coding vs clinical terminology codingMedical classification coding vs clinical terminology coding
Medical classification coding vs clinical terminology codingSB BHATTACHARYYA
 
Lessons learned with Bdd: a tutorial
Lessons learned with Bdd: a tutorialLessons learned with Bdd: a tutorial
Lessons learned with Bdd: a tutorialAlan Richardson
 
Sách Osho Thiền - Tự Do Đầu Tiên Và Cuối Cùng
Sách Osho Thiền - Tự Do Đầu Tiên Và Cuối CùngSách Osho Thiền - Tự Do Đầu Tiên Và Cuối Cùng
Sách Osho Thiền - Tự Do Đầu Tiên Và Cuối CùngNhân Nguyễn Sỹ
 
Extremis products presentation 2017
Extremis products presentation 2017Extremis products presentation 2017
Extremis products presentation 2017Extremis
 
Sempurna buku program mssr 2014
Sempurna buku program mssr 2014 Sempurna buku program mssr 2014
Sempurna buku program mssr 2014 yusmie
 
Automation Abstraction Layers: Page Objects and Beyond
Automation Abstraction Layers: Page Objects and BeyondAutomation Abstraction Layers: Page Objects and Beyond
Automation Abstraction Layers: Page Objects and BeyondAlan Richardson
 
Hands on Exploration of Page Objects and Abstraction Layers with Selenium Web...
Hands on Exploration of Page Objects and Abstraction Layers with Selenium Web...Hands on Exploration of Page Objects and Abstraction Layers with Selenium Web...
Hands on Exploration of Page Objects and Abstraction Layers with Selenium Web...Alan Richardson
 
Vijay Amarnath - Updated
Vijay Amarnath - UpdatedVijay Amarnath - Updated
Vijay Amarnath - UpdatedVijay Amarnath
 
SMi Group's 4th annual Immunogenicity 2017 conference
SMi Group's 4th annual Immunogenicity 2017 conferenceSMi Group's 4th annual Immunogenicity 2017 conference
SMi Group's 4th annual Immunogenicity 2017 conferenceDale Butler
 

Andere mochten auch (15)

Test Automation Day 2015 Keynote Alan Richardson - Practical Lessons Learned ...
Test Automation Day 2015 Keynote Alan Richardson - Practical Lessons Learned ...Test Automation Day 2015 Keynote Alan Richardson - Practical Lessons Learned ...
Test Automation Day 2015 Keynote Alan Richardson - Practical Lessons Learned ...
 
Computer Assisted Coding Pros & Cons
Computer Assisted Coding Pros & ConsComputer Assisted Coding Pros & Cons
Computer Assisted Coding Pros & Cons
 
Medical classification coding vs clinical terminology coding
Medical classification coding vs clinical terminology codingMedical classification coding vs clinical terminology coding
Medical classification coding vs clinical terminology coding
 
Lessons learned with Bdd: a tutorial
Lessons learned with Bdd: a tutorialLessons learned with Bdd: a tutorial
Lessons learned with Bdd: a tutorial
 
Sách Osho Thiền - Tự Do Đầu Tiên Và Cuối Cùng
Sách Osho Thiền - Tự Do Đầu Tiên Và Cuối CùngSách Osho Thiền - Tự Do Đầu Tiên Và Cuối Cùng
Sách Osho Thiền - Tự Do Đầu Tiên Và Cuối Cùng
 
Роль регламентуючих документів у профілактиці поширення нелегальних наркотикі...
Роль регламентуючих документів у профілактиці поширення нелегальних наркотикі...Роль регламентуючих документів у профілактиці поширення нелегальних наркотикі...
Роль регламентуючих документів у профілактиці поширення нелегальних наркотикі...
 
Presentation - Leo
Presentation - LeoPresentation - Leo
Presentation - Leo
 
Mission Statement
Mission StatementMission Statement
Mission Statement
 
Extremis products presentation 2017
Extremis products presentation 2017Extremis products presentation 2017
Extremis products presentation 2017
 
Sempurna buku program mssr 2014
Sempurna buku program mssr 2014 Sempurna buku program mssr 2014
Sempurna buku program mssr 2014
 
Automation Abstraction Layers: Page Objects and Beyond
Automation Abstraction Layers: Page Objects and BeyondAutomation Abstraction Layers: Page Objects and Beyond
Automation Abstraction Layers: Page Objects and Beyond
 
Hands on Exploration of Page Objects and Abstraction Layers with Selenium Web...
Hands on Exploration of Page Objects and Abstraction Layers with Selenium Web...Hands on Exploration of Page Objects and Abstraction Layers with Selenium Web...
Hands on Exploration of Page Objects and Abstraction Layers with Selenium Web...
 
Vijay Amarnath - Updated
Vijay Amarnath - UpdatedVijay Amarnath - Updated
Vijay Amarnath - Updated
 
Death of WAF - GoSec '15
Death of WAF - GoSec '15Death of WAF - GoSec '15
Death of WAF - GoSec '15
 
SMi Group's 4th annual Immunogenicity 2017 conference
SMi Group's 4th annual Immunogenicity 2017 conferenceSMi Group's 4th annual Immunogenicity 2017 conference
SMi Group's 4th annual Immunogenicity 2017 conference
 

Ähnlich wie Lessons Learned When Automating Tabara de Testare Webinar

Software Testing Basic Concepts
Software Testing Basic ConceptsSoftware Testing Basic Concepts
Software Testing Basic Conceptswesovi
 
Demise of test scripts rise of test ideas
Demise of test scripts rise of test ideasDemise of test scripts rise of test ideas
Demise of test scripts rise of test ideasRichard Robinson
 
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflowMay 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflowAdam Doyle
 
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff  - Mykel Alvis at Puppet Camp AltantaDon't Suck at Building Stuff  - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp AltantaPuppet
 
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...dcieslak
 
Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)Abhijeet Vaikar
 
How to become a Software Tester Carrier Path for Software Quality Tester
How to become a Software Tester Carrier Path for Software Quality TesterHow to become a Software Tester Carrier Path for Software Quality Tester
How to become a Software Tester Carrier Path for Software Quality Testerjeetendra mandal
 
Test automation - Building effective solutions
Test automation - Building effective solutionsTest automation - Building effective solutions
Test automation - Building effective solutionsArtem Nagornyi
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated TestingLars Thorup
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testingBestBrains
 
TDD for Testers Workshop
TDD for Testers WorkshopTDD for Testers Workshop
TDD for Testers WorkshopSarah Usher
 
Unit Testing and TDD 2017
Unit Testing and TDD 2017Unit Testing and TDD 2017
Unit Testing and TDD 2017Xavi Hidalgo
 
The Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security TestingThe Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security TestingMatt Tesauro
 
Bulletproof design systems using storybook
Bulletproof design systems using storybookBulletproof design systems using storybook
Bulletproof design systems using storybookChen Feldman
 
Exploring No Mans Land with Keyword-Driven Testing
Exploring No Mans Land with Keyword-Driven TestingExploring No Mans Land with Keyword-Driven Testing
Exploring No Mans Land with Keyword-Driven TestingMartinGijsen
 
Unit testing
Unit testingUnit testing
Unit testingPiXeL16
 
An Overview of automated testing (1)
An Overview of automated testing (1)An Overview of automated testing (1)
An Overview of automated testing (1)Rodrigo Lopes
 
Test team dynamics, Антон Мужайло
Test team dynamics, Антон МужайлоTest team dynamics, Антон Мужайло
Test team dynamics, Антон МужайлоSigma Software
 

Ähnlich wie Lessons Learned When Automating Tabara de Testare Webinar (20)

Software Testing Basic Concepts
Software Testing Basic ConceptsSoftware Testing Basic Concepts
Software Testing Basic Concepts
 
Demise of test scripts rise of test ideas
Demise of test scripts rise of test ideasDemise of test scripts rise of test ideas
Demise of test scripts rise of test ideas
 
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflowMay 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
 
Agile testing
Agile testingAgile testing
Agile testing
 
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff  - Mykel Alvis at Puppet Camp AltantaDon't Suck at Building Stuff  - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
 
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
 
Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)
 
How to become a Software Tester Carrier Path for Software Quality Tester
How to become a Software Tester Carrier Path for Software Quality TesterHow to become a Software Tester Carrier Path for Software Quality Tester
How to become a Software Tester Carrier Path for Software Quality Tester
 
Test automation - Building effective solutions
Test automation - Building effective solutionsTest automation - Building effective solutions
Test automation - Building effective solutions
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testing
 
TDD for Testers Workshop
TDD for Testers WorkshopTDD for Testers Workshop
TDD for Testers Workshop
 
Unit Testing and TDD 2017
Unit Testing and TDD 2017Unit Testing and TDD 2017
Unit Testing and TDD 2017
 
The Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security TestingThe Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security Testing
 
Bulletproof design systems using storybook
Bulletproof design systems using storybookBulletproof design systems using storybook
Bulletproof design systems using storybook
 
Test Automation
Test AutomationTest Automation
Test Automation
 
Exploring No Mans Land with Keyword-Driven Testing
Exploring No Mans Land with Keyword-Driven TestingExploring No Mans Land with Keyword-Driven Testing
Exploring No Mans Land with Keyword-Driven Testing
 
Unit testing
Unit testingUnit testing
Unit testing
 
An Overview of automated testing (1)
An Overview of automated testing (1)An Overview of automated testing (1)
An Overview of automated testing (1)
 
Test team dynamics, Антон Мужайло
Test team dynamics, Антон МужайлоTest team dynamics, Антон Мужайло
Test team dynamics, Антон Мужайло
 

Mehr von Alan Richardson

Add More Security To Your Testing and Automating - Saucecon 2021
Add More Security To Your Testing and Automating - Saucecon 2021Add More Security To Your Testing and Automating - Saucecon 2021
Add More Security To Your Testing and Automating - Saucecon 2021Alan Richardson
 
Automating to Augment Testing
Automating to Augment TestingAutomating to Augment Testing
Automating to Augment TestingAlan Richardson
 
The Future of Testing Webinar
The Future of Testing WebinarThe Future of Testing Webinar
The Future of Testing WebinarAlan Richardson
 
Secrets and Mysteries of Automated Execution Keynote slides
Secrets and Mysteries of Automated Execution Keynote slidesSecrets and Mysteries of Automated Execution Keynote slides
Secrets and Mysteries of Automated Execution Keynote slidesAlan Richardson
 
Joy of Coding Conference 2019 slides - Alan Richardson
Joy of Coding Conference 2019 slides - Alan RichardsonJoy of Coding Conference 2019 slides - Alan Richardson
Joy of Coding Conference 2019 slides - Alan RichardsonAlan Richardson
 
Programming katas for Software Testers - CounterStrings
Programming katas for Software Testers - CounterStringsProgramming katas for Software Testers - CounterStrings
Programming katas for Software Testers - CounterStringsAlan Richardson
 
Technology Based Testing
Technology Based TestingTechnology Based Testing
Technology Based TestingAlan Richardson
 
About Consultant Alan Richardson Compendium Developments Evil Tester
About Consultant Alan Richardson Compendium Developments Evil TesterAbout Consultant Alan Richardson Compendium Developments Evil Tester
About Consultant Alan Richardson Compendium Developments Evil TesterAlan Richardson
 
Automating and Testing a REST API
Automating and Testing a REST APIAutomating and Testing a REST API
Automating and Testing a REST APIAlan Richardson
 
Technical and Testing Challenges: Using the "Protect The Square" Game
Technical and Testing Challenges: Using the "Protect The Square" GameTechnical and Testing Challenges: Using the "Protect The Square" Game
Technical and Testing Challenges: Using the "Protect The Square" GameAlan Richardson
 
TDD - Test Driven Development - Java JUnit FizzBuzz
TDD - Test Driven Development - Java JUnit FizzBuzzTDD - Test Driven Development - Java JUnit FizzBuzz
TDD - Test Driven Development - Java JUnit FizzBuzzAlan Richardson
 
How To Test With Agility
How To Test With AgilityHow To Test With Agility
How To Test With AgilityAlan Richardson
 
Your Automated Execution Does Not Have to be Flaky
Your Automated Execution Does Not Have to be FlakyYour Automated Execution Does Not Have to be Flaky
Your Automated Execution Does Not Have to be FlakyAlan Richardson
 
What is Testability vs Automatability? How to improve your Software Testing.
What is Testability vs Automatability? How to improve your Software Testing.What is Testability vs Automatability? How to improve your Software Testing.
What is Testability vs Automatability? How to improve your Software Testing.Alan Richardson
 
What is Agile Testing? A MindMap
What is Agile Testing? A MindMapWhat is Agile Testing? A MindMap
What is Agile Testing? A MindMapAlan Richardson
 
Evil Tester's Guide to Agile Testing
Evil Tester's Guide to Agile TestingEvil Tester's Guide to Agile Testing
Evil Tester's Guide to Agile TestingAlan Richardson
 
The Evil Tester Show - Episode 001 Halloween 2017
The Evil Tester Show - Episode 001 Halloween 2017The Evil Tester Show - Episode 001 Halloween 2017
The Evil Tester Show - Episode 001 Halloween 2017Alan Richardson
 
What is Regression Testing?
What is Regression Testing?What is Regression Testing?
What is Regression Testing?Alan Richardson
 
Simple ways to add and work with a `.jar` file in your local maven setup
Simple ways to add and work with a `.jar` file in your local maven setupSimple ways to add and work with a `.jar` file in your local maven setup
Simple ways to add and work with a `.jar` file in your local maven setupAlan Richardson
 

Mehr von Alan Richardson (20)

Add More Security To Your Testing and Automating - Saucecon 2021
Add More Security To Your Testing and Automating - Saucecon 2021Add More Security To Your Testing and Automating - Saucecon 2021
Add More Security To Your Testing and Automating - Saucecon 2021
 
Automating to Augment Testing
Automating to Augment TestingAutomating to Augment Testing
Automating to Augment Testing
 
The Future of Testing Webinar
The Future of Testing WebinarThe Future of Testing Webinar
The Future of Testing Webinar
 
Secrets and Mysteries of Automated Execution Keynote slides
Secrets and Mysteries of Automated Execution Keynote slidesSecrets and Mysteries of Automated Execution Keynote slides
Secrets and Mysteries of Automated Execution Keynote slides
 
Joy of Coding Conference 2019 slides - Alan Richardson
Joy of Coding Conference 2019 slides - Alan RichardsonJoy of Coding Conference 2019 slides - Alan Richardson
Joy of Coding Conference 2019 slides - Alan Richardson
 
Programming katas for Software Testers - CounterStrings
Programming katas for Software Testers - CounterStringsProgramming katas for Software Testers - CounterStrings
Programming katas for Software Testers - CounterStrings
 
Technology Based Testing
Technology Based TestingTechnology Based Testing
Technology Based Testing
 
About Consultant Alan Richardson Compendium Developments Evil Tester
About Consultant Alan Richardson Compendium Developments Evil TesterAbout Consultant Alan Richardson Compendium Developments Evil Tester
About Consultant Alan Richardson Compendium Developments Evil Tester
 
Shift left-testing
Shift left-testingShift left-testing
Shift left-testing
 
Automating and Testing a REST API
Automating and Testing a REST APIAutomating and Testing a REST API
Automating and Testing a REST API
 
Technical and Testing Challenges: Using the "Protect The Square" Game
Technical and Testing Challenges: Using the "Protect The Square" GameTechnical and Testing Challenges: Using the "Protect The Square" Game
Technical and Testing Challenges: Using the "Protect The Square" Game
 
TDD - Test Driven Development - Java JUnit FizzBuzz
TDD - Test Driven Development - Java JUnit FizzBuzzTDD - Test Driven Development - Java JUnit FizzBuzz
TDD - Test Driven Development - Java JUnit FizzBuzz
 
How To Test With Agility
How To Test With AgilityHow To Test With Agility
How To Test With Agility
 
Your Automated Execution Does Not Have to be Flaky
Your Automated Execution Does Not Have to be FlakyYour Automated Execution Does Not Have to be Flaky
Your Automated Execution Does Not Have to be Flaky
 
What is Testability vs Automatability? How to improve your Software Testing.
What is Testability vs Automatability? How to improve your Software Testing.What is Testability vs Automatability? How to improve your Software Testing.
What is Testability vs Automatability? How to improve your Software Testing.
 
What is Agile Testing? A MindMap
What is Agile Testing? A MindMapWhat is Agile Testing? A MindMap
What is Agile Testing? A MindMap
 
Evil Tester's Guide to Agile Testing
Evil Tester's Guide to Agile TestingEvil Tester's Guide to Agile Testing
Evil Tester's Guide to Agile Testing
 
The Evil Tester Show - Episode 001 Halloween 2017
The Evil Tester Show - Episode 001 Halloween 2017The Evil Tester Show - Episode 001 Halloween 2017
The Evil Tester Show - Episode 001 Halloween 2017
 
What is Regression Testing?
What is Regression Testing?What is Regression Testing?
What is Regression Testing?
 
Simple ways to add and work with a `.jar` file in your local maven setup
Simple ways to add and work with a `.jar` file in your local maven setupSimple ways to add and work with a `.jar` file in your local maven setup
Simple ways to add and work with a `.jar` file in your local maven setup
 

Kürzlich hochgeladen

办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
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.
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 

Kürzlich hochgeladen (20)

办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
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
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 

Lessons Learned When Automating Tabara de Testare Webinar

  • 1. Lessons Learned When Automating Tabara de Testare Webinar Alan Richardson @EvilTester alan@compendiumdev.co.uk EvilTester.com SeleniumSimplified.com JavaForTesters.com CompendiumDev.co.uk
  • 2. Lessons Learned When Automating Tabara de Testare Webinar Alan Richardson @EvilTester alan@compendiumdev.co.uk EvilTester.com SeleniumSimplified.com JavaForTesters.com CompendiumDev.co.uk
  • 3. Blurb I've been asked some very challenging questions about lessons learned, and how decisions are made during the process of automating and performing technical testing. In this webinar I'm going to answer them based on my experience. We'll discus how we know 'what to automate' which means we have to split our analysis into 'detection' and 'testing'. We'll cover lessons learned from solving problems, and making mistakes, and steps we can take during the problem solving process e.g for intermittent failures, and possible tool bugs. We'll discuss abstraction levels and the different levels of the technology stack to automate: how to do it, and how we make the decisions. We'll discuss coding primarily the differences, and the overlap, between the needs for coding for testing and coding for production deployment. We'll also cover some WebDriver specific answers to some of these questions. I'm also going to describe books and techniques that have helped me over the years when trying to deal with these questions on production projects. Also we'll take additional and follow up questions.
  • 4. Automating ● Words & Definitions ● What to automate? ● Problems encountered automating? ● Levels to automate at? ● Improve testability for automating?
  • 5. Words & Definitions ● 'test' 'automate' used loosely? ● Can you automate testing? ● What words to use?
  • 6. What to Automate? ● How to decide if we should automate something ? – Any Heuristics?
  • 7. 'Detection' or 'Testing' ● Detect for 'known' problems when they occur ● Test for unknowns and improve process
  • 8. Detection ● Is it part of the Agile Acceptance criteria? ● Is re-appearance a concern? Bug/Problem ● Is it an area of the system that lacks lower levels of verification? ● Is it a problem we never want to re-appear? ● Is it a risk/problem that is hard to detect if it manifests? ● Is it a risk/problem that is slow to detect if it manifests? ● Is it intermittent behaviour that we are trying to track down?
  • 9. Detection ● Is it part of the Agile Acceptance criteria? ● Is re-appearance a concern? Bug/Problem ● Is it an area of the system that lacks lower levels of verification? ● Is it a problem we never want to re-appear? ● Is it a risk/problem that is hard to detect if it manifests? ● Is it a risk/problem that is slow to detect if it manifests? ● Is it intermittent behaviour that we are trying to track down? Process Coverage Feedback Waste Effective Debug Ambush
  • 10. 'Testing' ● Is variability in the scope of data? ● Future value in path/data/ combo execution? ● Am I prepared to do this manually next time? ● How easy to automate this? ● Is this hard/slow to do manually? ● Predictable results checking? ● Explored enough already?
  • 11. 'Testing' ● Is variability in the scope of data? ● Future value in path/data/ combo execution? ● Am I prepared to do this manually next time? ● How easy to automate this? ● Is this hard/slow to do manually? ● Predictable results checking? ● Explored enough already? Variety Value Lazy Time Risk Checkable Information
  • 12. Secrets of Automating ● Path – subpaths ● Data – Variant – invariant ● Assertion Login Enter Details Create Entity Amend Details Choose Option Logged In Error Created Amend Created ErrorAmended !Logged In Log out
  • 13. Problems Encountered Automating ● What problems encountered writing automated tests? ● How to resolve? ● Problems change over time
  • 14. Problems Encountered At Start ● Lack of tool familiarity ● Tool Immaturity ● Choice of tools, risk of commitment ● Hard to know what are your problems and what are tool problems ● No Abstractions
  • 15. Problem Diagnostic ● Isolate issue with a small @Test ● Make issue repeatable ● Debug mode ● Step slowly – If no problem then synchronisation problem ● View tool source code ● Different version combinations (down, up) ● Identify workarounds
  • 16. Problems Encountered Now ● Decide on level of abstraction ● Decide on tech stack level to target ● Decide on tooling to use ● Unit test or not Unit test my code ● Synchronisation issues ● Ease of System Automating ● Mobile & New platforms
  • 17. Levels to automate at ● How do you decide which level to automate at? ● Would you combine levels? ● Do you use abstractions? – Page Objects? Data Models? Other Models?
  • 18. How do you decide which level to automate at? GUI? API? Unit? etc. ● What is your model of the system? ● Where do you trust/value feedback from? ● Where can you automate fast to add value quickly? ● What are you prepared to maintain? ● What environments do/will you have?
  • 19. Would you combine levels? ● e.g. using GUI to create account, editing info and then verifying from the DB if data was stored properly?
  • 20. Would you combine levels? ● Yes ● Path Segment (subpath) preconditions – Create at a level that you trust ● Automate at the level of the risk you want to detect ● Assert at multiple levels based on the conditions you want to check – Created – check in DB – Reported Created – check in API/HTML – Rendered Created Message – check on GUI
  • 21. Would you combine levels? ● Yes ● Helps build abstraction layers that are clean ● Avoids frameworks ● Builds libraries ● Can re-use in different ways
  • 22. Do you use abstractions? ● Page Objects? – Yes, an abstraction of the physical GUI – Not just Pages: Components, Navigation ● Data Models? – Yes, abstraction of persistence, messaging and logical – Random data generation – 'Default' data ● Other Models? – Yes, path and system models – Layered execution models ● API, GUI as API, Files & Persistence
  • 23. Improve testability for automating ● Advice to improve testability? ● Tools? – Re-use abstraction layers (different level of systems modelled – API, DB, GUI, etc.) – execute via @Test – Simple batch scripts ● Use abstractions for exploratory testing ● Executability – Tool hooks – GUI ids, APIs, no https, etc.
  • 24. Coding ● How is coding different for testers than for programmers? – Any different coding Skills? – Language usage?
  • 25. Differences ● Subset of the language ● Junit rather than container ● Coding for efficiency ● YAGNI vs IDKWTAGN ● Multiple Usages vs Controlled Access ● Paths and Libraries vs Applications ● Frameworks vs Libraries ● Coding for Change vs Requirements (Requisite Variety)
  • 26. Similarities ● Advanced Books ● Static Analysis Tools ● Unit Testing ● TDD ● Naming and Coding Conventions ● Test Execution Runners ● Libraries ● Debugging
  • 27. Skills ● Same skills required ● Levels of Experiences different ● Developers better be the best at coding ● Project can afford for Testers to be less experienced coders, supported by developers
  • 28. Estimation ● “How much time is needed to automate an application?” ● How do you estimate when you are just starting to automate?
  • 29. Estimation ● I tend to avoid these questions, unless they are part of a sprint planning for estimating the automating of specific acceptance criteria ● But if I have to...
  • 30. Estimation ● Same way estimate any development project ● Split into chunks ● Make unknowns, risks and assumptions clear ● Gain experience with tools to identify capabilities ● Experiments to improve estimates and derisk ● Depends on skills and experience ● Depends on levels of change ● What % dedicated to automating vs testing? ● Easier on 'Agile' stories
  • 31. Tools ● Is there another option (except Selenium WebDriver) which you would recommend for UI automation?
  • 33. WebDriver ● Locator strategy tips? ● Problems encountered? ● Implicit & Explicit Waits? ● How to structure project? ● Frameworks? ● Disadvantages?
  • 34. Location Strategy Tips? ● Aim for an ID ● Optimised hierarchy starting at an ID ● Build less for speed of execution and more accuracy across multiple pages ● More arguments about managing in the code
  • 35. Common WebDriver Problems ● Synchronisation – Add more than you think – Sync prior to action – SlowLoadableComponent – 'ware remote ● Abstraction Layers – Refactoring ● Bug workarounds – JavaScriptExecutor – Inject cookies from HTTP calls – Monkey patching Ruby
  • 36. Implicit & Explicit Waits ● Never Implicit Waits ● And if Explicit waits still result in timeout? – Missing Synchronisation – Environment Speed Variability – Remote Grid? – May have to increase timeout on 'big state' actions
  • 37. How to structure project? ● Maven Structure ● test – The @Test code ● src – The abstractions ● Packages – Refactor as we go
  • 38. Frameworks or additional tools? ● No, I avoid frameworks as much as I can ● WebDriver doesn't seem hard enough ● Model application domain as abstraction layers ● Closest to framework – Cucumber, Junit – Cucumber – DSL – Junit – test runner – Both delegate/use domain abstractions
  • 39. Disadvantages of WebDriver? ● Not fully supported by browser vendors yet – Safari/Apple – Microsoft (Edge isn't complete yet) ● Compared to what? – Do browser vendors support any other tool? – Google (Chrome), Mozilla (Firefox)
  • 40. Career ● “How do you arrive/What was the journey from a technical side to having conference talks and training people?”
  • 41. Career ● Do you feel strongly enough to be the change? ● Are you prepared to do the work?
  • 43. Techniques that have helped ● Decision making ● Redefinition ● Books
  • 44. Decision Making ● Responsibility ● How do I know if I'm making the right decision? ● What if I make the wrong decision?
  • 45. Use words to help you ● Avoid ambiguity ● Own your definitions
  • 46. Books ● 'Clean Code' – References: Dijkstra, Hoare – Reference Peers: Myers, Yourdon, de marco, Jackson ● Others – 'Growing Object-Oriented Software','Working with legacy code', 'Implementation Patterns', 'Domain Driven Design','refactoring' ● Systems – Cybernetics, Herbert Simon, Stafford Beer, Deming, John Diebold
  • 47. Future of Testing ● “How do you see the future of testing?”
  • 48. Future of Testing ● Testing will, and always has… – been, contextual – been about feedback – involved coding and technical levels – Involved exploration – been implemented badly in some environments
  • 49. Future of Testing ● Testing will, – Require more technical knowledge – Require more testing knowledge – Be recognised as more skill == better testing – Be implemented badly in some environments
  • 50. Future of Testing A more important question is ● “What are you doing, to improve your testing?”