SlideShare a Scribd company logo
1 of 11
Download to read offline
ML
PM Half day Tutorial
11/11/2013 1:00 PM

"The Developer's Guide to Test
Automation"
Presented by:
Dale Emery, DHE
George Dinwiddie, iDIA Computing, LLC

Brought to you by:

340 Corporate Way, Suite 300, Orange Park, FL 32073
888 268 8770 904 278 0524 sqeinfo@sqe.com www.sqe.com
Dale Emery
DHE
Since 1980, Dale Emery has worked in both IT
organizations and software product development
companies as a developer, manager, process steward, trainer, and
consultant. He helps people apply the agile values of communication,
feedback, simplicity, courage, and respect to software development. Dale's
combination of deep technical expertise and extensive organizational
development experience makes him particularly effective in working with
software teams. In 2007 Dale received the Ward Cunningham Gentle Voice
of Reason Award, which the Agile Alliance created to recognize Dale’s
unique contribution to the agile community. Dale's personal mission is to
help people create joy, value, and meaning in their work. Learn more about
Dale at dhemery.com

George Dinwiddie
iDIA Computing, LLC
George Dinwiddie is an independent software development consultant
who helps organizations, large and small, increase the effectiveness of
their software development efforts. As a coach, George he provides
guidance over a broad range, at the organizational, process, team,
interpersonal, and technical levels. As a trainer, he offers experiential
education in technical practices and agile methods. George is currently
crusading to break down the barriers that hinder effective collaboration
between the business, the programmers, and the testers. George is a
frequent speaker at agile conferences and contributor to online
publications. Learn more about his work at his company
website idiacomputing.com and read his blog.
The Developer’s Guide
to
Test Automation
Dale Emery

@dhemery
http://dhemery.com

George Dinwiddie

@gdinwiddie
iDIA Computing, LLC
http://blog.gdinwiddie.com
http://idiacomputing.com

1

HELP!
These tests are too slow!
These tests are flaky!
There are too many changes!
What is this test testing?
What does this failure mean?
These tests don’t prevent bugs!
What tools should I use?
2
What Makes Tests
Too Slow?
Avoidable delays
- Avoidable use of slow interface
- Avoidable use of unnecessary technology
- Pessimistic fixed waits
Run-on tests
Large setup
The tests don’t pull their weight
3

“Avoidable” Delays
Test

Browser
Driver

Sauce
Labs

Browser

Web GUI
Web
Server

System
Under Test

3rd Party
Web Service
Legacy
System
Database
4
What Makes Tests
Flaky?
Depends on variables not under test control
- Database contents, clock time, calendar, ...
- Interference from other tests
Asynchrony
- Variable response times
- Race conditions, threading
Identifiers overly restrictive or permissive
Untested test helpers
5

What Causes
“Too Many” Changes?
Changes in requirements
Changes in system implementation
Changes in execution environment
Changes in test tools and libraries
Growth of test code
Test code that is hard to change
Test automation as a separate activity
6
What Makes Test Code
Hard To Change?
Difficult to understand
- Cryptic code
- Large blocks of code
Details in inappropriate places
Duplication
Coupling
Poorly organized
7

How To Make Test Code
Easy To Change
Write small, understandable blocks of code
Eliminate duplication
Name every important idea
Hide incidental details
- System implementation details
- Test implementation details
- Interface between test and system
Put code where you will look for it

8
What Is This Test Testing?
Essential details are hidden
Implicit data and conditions
Essence obscured by incidental details

-

Test does not describe its intentions clearly
Vague terminology
Missing abstractions
Key ideas left unnamed
Inaccurate description

-

Run-on tests
9

What Does This Failure
Mean?
Omits useful information
Swamped with distracting information
Misleading or irrelevant message
Delays between problem and discovery
Implicit or incidental dependencies
Failures from test environment and tools
10
What Do Our Tests
Not Do?
Test everything
Test the things we’re changing
Find all unintended effects of our changes
Let us know what’s not tested
Test the things we care most about
Test the things our customers care about
Test the things they’re testing

11

What Tests
Do We Need?
Tests for important system responsibilities
Tests for areas that change frequently
Tests for changes that might be error prone

12
What Can Tests
Do For Us?
Describe the system’s responsibilities
Demonstrate what the system does
Detect unintended changes in behavior
Indicate when a feature is done
Expose defects
Home in on the default
Illuminate which parts of the system are tested
and which are not

13

Criteria For Choosing Tools
Supports writing examples before implementation
Supports expressing examples “naturally”
Fits development tools and languages
Can keep examples under version control
Supports traceability
Strong community support
No license fees
No limit of concurrent users

14
Common Ways
To Express Examples
Gherkin: Given / When / Then
Tables
- Each row is a scenario
- Each row is a set of data
Keywords
Arbitrary text with no predefined structure
15

Some Tools That Use
Gherkin
• Cucumber (Ruby, Java, JVM languages)
• SpecFlow (.NET)
• Behat (Python)
16
Example Toolstack For
Testing Web Applications
Cucumber
Capybara

Page-object

Selenium WebDriver
Browser

17

Example Toolstacks For
Testing Mobile Applications
Cucumber
Appium
iOS / Android
Simulator

iOS / Android
Device

Cucumber

JUnit

Frank

Victor

iOS
Simulator

iOS
Device

iOS
Simulator

iOS
Device
18

More Related Content

What's hot

Keynote: Lightning Strikes the Keynotes
Keynote: Lightning Strikes the KeynotesKeynote: Lightning Strikes the Keynotes
Keynote: Lightning Strikes the KeynotesTechWell
 
Fundamental of testing why
Fundamental of testing whyFundamental of testing why
Fundamental of testing whyCindyYuristie
 
Ian Agustiawan - Tech Days
Ian Agustiawan - Tech DaysIan Agustiawan - Tech Days
Ian Agustiawan - Tech DaysIan Agustiawan
 
A Beginners Guide To Legacy Systems
A Beginners Guide To Legacy SystemsA Beginners Guide To Legacy Systems
A Beginners Guide To Legacy SystemsSyed Hassan Raza
 
Professional and ethical
Professional and ethicalProfessional and ethical
Professional and ethicallocorecto
 
Sami Söderblom - Road To Devops - Telia Finland Story
Sami Söderblom - Road To Devops - Telia Finland StorySami Söderblom - Road To Devops - Telia Finland Story
Sami Söderblom - Road To Devops - Telia Finland StoryEficode
 
Fundamentals of Testing - Andika Dwi Ary Candra
Fundamentals of Testing - Andika Dwi Ary CandraFundamentals of Testing - Andika Dwi Ary Candra
Fundamentals of Testing - Andika Dwi Ary CandraAnd11ka
 
Remote Usability Testing
Remote Usability TestingRemote Usability Testing
Remote Usability TestingDiane Loviglio
 

What's hot (8)

Keynote: Lightning Strikes the Keynotes
Keynote: Lightning Strikes the KeynotesKeynote: Lightning Strikes the Keynotes
Keynote: Lightning Strikes the Keynotes
 
Fundamental of testing why
Fundamental of testing whyFundamental of testing why
Fundamental of testing why
 
Ian Agustiawan - Tech Days
Ian Agustiawan - Tech DaysIan Agustiawan - Tech Days
Ian Agustiawan - Tech Days
 
A Beginners Guide To Legacy Systems
A Beginners Guide To Legacy SystemsA Beginners Guide To Legacy Systems
A Beginners Guide To Legacy Systems
 
Professional and ethical
Professional and ethicalProfessional and ethical
Professional and ethical
 
Sami Söderblom - Road To Devops - Telia Finland Story
Sami Söderblom - Road To Devops - Telia Finland StorySami Söderblom - Road To Devops - Telia Finland Story
Sami Söderblom - Road To Devops - Telia Finland Story
 
Fundamentals of Testing - Andika Dwi Ary Candra
Fundamentals of Testing - Andika Dwi Ary CandraFundamentals of Testing - Andika Dwi Ary Candra
Fundamentals of Testing - Andika Dwi Ary Candra
 
Remote Usability Testing
Remote Usability TestingRemote Usability Testing
Remote Usability Testing
 

Similar to The Developer’s Guide to Test Automation

A Happy Marriage between Context-Driven and Agile
A Happy Marriage between Context-Driven and AgileA Happy Marriage between Context-Driven and Agile
A Happy Marriage between Context-Driven and AgileIlari Henrik Aegerter
 
3. introduction to software testing
3. introduction to software testing3. introduction to software testing
3. introduction to software testingChandra Maddigapu
 
Usability Tips And Tricks For Beginners Experience Dynamics Web Seminar
Usability Tips And Tricks For Beginners   Experience Dynamics Web SeminarUsability Tips And Tricks For Beginners   Experience Dynamics Web Seminar
Usability Tips And Tricks For Beginners Experience Dynamics Web SeminarExperience Dynamics
 
March APLN: Agile development- Measure & Analyze by Garry Rowland
March APLN: Agile development- Measure & Analyze by Garry RowlandMarch APLN: Agile development- Measure & Analyze by Garry Rowland
March APLN: Agile development- Measure & Analyze by Garry RowlandConscires Agile Practices
 
Defect Metrics for Organization and Project Health
Defect Metrics for Organization and Project HealthDefect Metrics for Organization and Project Health
Defect Metrics for Organization and Project HealthJosiah Renaudin
 
fundamentals of testing (Fundamental of testing why)
fundamentals of testing (Fundamental of testing why)fundamentals of testing (Fundamental of testing why)
fundamentals of testing (Fundamental of testing why)diana fitri, S.Kom
 
Rapid Prototyping and Usability Testing - HUXPA
Rapid Prototyping and Usability Testing - HUXPARapid Prototyping and Usability Testing - HUXPA
Rapid Prototyping and Usability Testing - HUXPADerrick Bowen
 
Fantastic Tests - The Crimes of Bad Test Design
Fantastic Tests - The Crimes of Bad Test DesignFantastic Tests - The Crimes of Bad Test Design
Fantastic Tests - The Crimes of Bad Test DesignWinston Laoh
 
Fundamentals of testing - Testing & Implementations
Fundamentals of testing - Testing & ImplementationsFundamentals of testing - Testing & Implementations
Fundamentals of testing - Testing & Implementationsyogi syafrialdi
 
When Things Go Bump in the Night
When Things Go Bump in the NightWhen Things Go Bump in the Night
When Things Go Bump in the Nightahamilton55
 
What Are IT Environments, and Which Ones Do You Need?
What Are IT Environments, and Which Ones Do You Need?What Are IT Environments, and Which Ones Do You Need?
What Are IT Environments, and Which Ones Do You Need?Enov8
 
Tune Agile Test Strategies to Project and Product Maturity
Tune Agile Test Strategies to Project and Product MaturityTune Agile Test Strategies to Project and Product Maturity
Tune Agile Test Strategies to Project and Product MaturityTechWell
 
Foundations of software testing - ISTQB Certification.pdf
Foundations of software testing - ISTQB Certification.pdfFoundations of software testing - ISTQB Certification.pdf
Foundations of software testing - ISTQB Certification.pdfSaraj Hameed Sidiqi
 
Breathing the breath of the monster combining agile and context-driven
Breathing the breath of the monster   combining agile and context-drivenBreathing the breath of the monster   combining agile and context-driven
Breathing the breath of the monster combining agile and context-drivenIlari Henrik Aegerter
 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testingseli purnianda
 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testingEvi Yandri
 
Foundations Of Software Testing
Foundations Of Software TestingFoundations Of Software Testing
Foundations Of Software TestingTony Ennis
 
Software Testing Foundation
Software Testing FoundationSoftware Testing Foundation
Software Testing Foundationalessandro100
 

Similar to The Developer’s Guide to Test Automation (20)

A Happy Marriage between Context-Driven and Agile
A Happy Marriage between Context-Driven and AgileA Happy Marriage between Context-Driven and Agile
A Happy Marriage between Context-Driven and Agile
 
Bab 1
Bab 1Bab 1
Bab 1
 
3. introduction to software testing
3. introduction to software testing3. introduction to software testing
3. introduction to software testing
 
Usability Tips And Tricks For Beginners Experience Dynamics Web Seminar
Usability Tips And Tricks For Beginners   Experience Dynamics Web SeminarUsability Tips And Tricks For Beginners   Experience Dynamics Web Seminar
Usability Tips And Tricks For Beginners Experience Dynamics Web Seminar
 
March APLN: Agile development- Measure & Analyze by Garry Rowland
March APLN: Agile development- Measure & Analyze by Garry RowlandMarch APLN: Agile development- Measure & Analyze by Garry Rowland
March APLN: Agile development- Measure & Analyze by Garry Rowland
 
Defect Metrics for Organization and Project Health
Defect Metrics for Organization and Project HealthDefect Metrics for Organization and Project Health
Defect Metrics for Organization and Project Health
 
fundamentals of testing (Fundamental of testing why)
fundamentals of testing (Fundamental of testing why)fundamentals of testing (Fundamental of testing why)
fundamentals of testing (Fundamental of testing why)
 
Rapid Prototyping and Usability Testing - HUXPA
Rapid Prototyping and Usability Testing - HUXPARapid Prototyping and Usability Testing - HUXPA
Rapid Prototyping and Usability Testing - HUXPA
 
Fantastic Tests - The Crimes of Bad Test Design
Fantastic Tests - The Crimes of Bad Test DesignFantastic Tests - The Crimes of Bad Test Design
Fantastic Tests - The Crimes of Bad Test Design
 
Fundamentals of testing - Testing & Implementations
Fundamentals of testing - Testing & ImplementationsFundamentals of testing - Testing & Implementations
Fundamentals of testing - Testing & Implementations
 
When Things Go Bump in the Night
When Things Go Bump in the NightWhen Things Go Bump in the Night
When Things Go Bump in the Night
 
What Are IT Environments, and Which Ones Do You Need?
What Are IT Environments, and Which Ones Do You Need?What Are IT Environments, and Which Ones Do You Need?
What Are IT Environments, and Which Ones Do You Need?
 
5 signs your project is off the rails
5 signs your project is off the rails5 signs your project is off the rails
5 signs your project is off the rails
 
Tune Agile Test Strategies to Project and Product Maturity
Tune Agile Test Strategies to Project and Product MaturityTune Agile Test Strategies to Project and Product Maturity
Tune Agile Test Strategies to Project and Product Maturity
 
Foundations of software testing - ISTQB Certification.pdf
Foundations of software testing - ISTQB Certification.pdfFoundations of software testing - ISTQB Certification.pdf
Foundations of software testing - ISTQB Certification.pdf
 
Breathing the breath of the monster combining agile and context-driven
Breathing the breath of the monster   combining agile and context-drivenBreathing the breath of the monster   combining agile and context-driven
Breathing the breath of the monster combining agile and context-driven
 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testing
 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testing
 
Foundations Of Software Testing
Foundations Of Software TestingFoundations Of Software Testing
Foundations Of Software Testing
 
Software Testing Foundation
Software Testing FoundationSoftware Testing Foundation
Software Testing Foundation
 

More from TechWell

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and RecoveringTechWell
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization TechWell
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTechWell
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartTechWell
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyTechWell
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTechWell
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowTechWell
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityTechWell
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyTechWell
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTechWell
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipTechWell
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsTechWell
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GameTechWell
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsTechWell
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationTechWell
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessTechWell
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateTechWell
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessTechWell
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTechWell
 

More from TechWell (20)

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and Recovering
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build Architecture
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good Start
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for Success
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your Sanity
 
Ma 15
Ma 15Ma 15
Ma 15
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps Strategy
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOps
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—Leadership
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile Teams
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile Game
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps Implementation
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery Process
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to Automate
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for Success
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile Transformation
 

Recently uploaded

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 

The Developer’s Guide to Test Automation

  • 1. ML PM Half day Tutorial 11/11/2013 1:00 PM "The Developer's Guide to Test Automation" Presented by: Dale Emery, DHE George Dinwiddie, iDIA Computing, LLC Brought to you by: 340 Corporate Way, Suite 300, Orange Park, FL 32073 888 268 8770 904 278 0524 sqeinfo@sqe.com www.sqe.com
  • 2. Dale Emery DHE Since 1980, Dale Emery has worked in both IT organizations and software product development companies as a developer, manager, process steward, trainer, and consultant. He helps people apply the agile values of communication, feedback, simplicity, courage, and respect to software development. Dale's combination of deep technical expertise and extensive organizational development experience makes him particularly effective in working with software teams. In 2007 Dale received the Ward Cunningham Gentle Voice of Reason Award, which the Agile Alliance created to recognize Dale’s unique contribution to the agile community. Dale's personal mission is to help people create joy, value, and meaning in their work. Learn more about Dale at dhemery.com George Dinwiddie iDIA Computing, LLC George Dinwiddie is an independent software development consultant who helps organizations, large and small, increase the effectiveness of their software development efforts. As a coach, George he provides guidance over a broad range, at the organizational, process, team, interpersonal, and technical levels. As a trainer, he offers experiential education in technical practices and agile methods. George is currently crusading to break down the barriers that hinder effective collaboration between the business, the programmers, and the testers. George is a frequent speaker at agile conferences and contributor to online publications. Learn more about his work at his company website idiacomputing.com and read his blog.
  • 3. The Developer’s Guide to Test Automation Dale Emery @dhemery http://dhemery.com George Dinwiddie @gdinwiddie iDIA Computing, LLC http://blog.gdinwiddie.com http://idiacomputing.com 1 HELP! These tests are too slow! These tests are flaky! There are too many changes! What is this test testing? What does this failure mean? These tests don’t prevent bugs! What tools should I use? 2
  • 4. What Makes Tests Too Slow? Avoidable delays - Avoidable use of slow interface - Avoidable use of unnecessary technology - Pessimistic fixed waits Run-on tests Large setup The tests don’t pull their weight 3 “Avoidable” Delays Test Browser Driver Sauce Labs Browser Web GUI Web Server System Under Test 3rd Party Web Service Legacy System Database 4
  • 5. What Makes Tests Flaky? Depends on variables not under test control - Database contents, clock time, calendar, ... - Interference from other tests Asynchrony - Variable response times - Race conditions, threading Identifiers overly restrictive or permissive Untested test helpers 5 What Causes “Too Many” Changes? Changes in requirements Changes in system implementation Changes in execution environment Changes in test tools and libraries Growth of test code Test code that is hard to change Test automation as a separate activity 6
  • 6. What Makes Test Code Hard To Change? Difficult to understand - Cryptic code - Large blocks of code Details in inappropriate places Duplication Coupling Poorly organized 7 How To Make Test Code Easy To Change Write small, understandable blocks of code Eliminate duplication Name every important idea Hide incidental details - System implementation details - Test implementation details - Interface between test and system Put code where you will look for it 8
  • 7. What Is This Test Testing? Essential details are hidden Implicit data and conditions Essence obscured by incidental details - Test does not describe its intentions clearly Vague terminology Missing abstractions Key ideas left unnamed Inaccurate description - Run-on tests 9 What Does This Failure Mean? Omits useful information Swamped with distracting information Misleading or irrelevant message Delays between problem and discovery Implicit or incidental dependencies Failures from test environment and tools 10
  • 8. What Do Our Tests Not Do? Test everything Test the things we’re changing Find all unintended effects of our changes Let us know what’s not tested Test the things we care most about Test the things our customers care about Test the things they’re testing 11 What Tests Do We Need? Tests for important system responsibilities Tests for areas that change frequently Tests for changes that might be error prone 12
  • 9. What Can Tests Do For Us? Describe the system’s responsibilities Demonstrate what the system does Detect unintended changes in behavior Indicate when a feature is done Expose defects Home in on the default Illuminate which parts of the system are tested and which are not 13 Criteria For Choosing Tools Supports writing examples before implementation Supports expressing examples “naturally” Fits development tools and languages Can keep examples under version control Supports traceability Strong community support No license fees No limit of concurrent users 14
  • 10. Common Ways To Express Examples Gherkin: Given / When / Then Tables - Each row is a scenario - Each row is a set of data Keywords Arbitrary text with no predefined structure 15 Some Tools That Use Gherkin • Cucumber (Ruby, Java, JVM languages) • SpecFlow (.NET) • Behat (Python) 16
  • 11. Example Toolstack For Testing Web Applications Cucumber Capybara Page-object Selenium WebDriver Browser 17 Example Toolstacks For Testing Mobile Applications Cucumber Appium iOS / Android Simulator iOS / Android Device Cucumber JUnit Frank Victor iOS Simulator iOS Device iOS Simulator iOS Device 18