SlideShare a Scribd company logo
4 Stages of Test
Automation
Welcome to your first day at fake-amazon.com
Expectations
• We will move quickly, as there is a lot of content and 3
and a half hours will go much faster than we think it will

• The virtual machine thing was the best I could do without
having time to work with anyone ahead of time, as setting
up a working dev environment is non-trivial, if you
couldn’t get it going, pair up with someone who did

• If you have something in particular you are hoping to get
out of the class, put it up on the class backlog and I will
try and get to it.
Expectations
• You’ll get some time to try each stage on your own or in a
pair before we go over it as a class. Ideally you’d get a
couple hours to experiment with each stage, but we’re
running on a compressed timeframe.

• You won’t be an expert when you leave today, but you’ll
hopefully have a better idea of what the mistakes you’ll
make along the way look like so you can move past them
easier.
Agenda
• 8-8:15 - Working Agreements, Class Backlog

• 8:15-8:45 -Automation Crash Course (New Hire Training)

• 8:45 - 9:15 - Stage 1 - A basic Test

• 9:15 - 9:30 Class Walkthrough of Stage 1

• 9:30 - 10 Stage 2 - Cucumber

• 10-10:15 Class Walkthrough of Stage 2

• 10:15-10:45 Stage 3 - Gherkin as a Specification

• 10:45 - 11 Class Walkthrough of Stage 3

• 11-11:15 Class Walkthrough of Stage 4

• 11:15-11:30 - Questions and Answers
How the Web Works
GET https://google.com
Content-Type text/html
<html>
<body>
<div>
<p>
<strong>Hello</strong>, what’s up?
</p>
</div>
<div>
<a href=“http://google.com”
id=“google-it”
class=“btn btn-primary">
>Google It</a>
</div>
</body>
</html>
<html>
<body>
<div>
<p>
<strong>Hello</strong>, what’s up?
</p>
</div>
<div>
<a href=“http://google.com”
id=“google-it”
class=“btn btn-primary">
>Google It</a>
</div>
</body>
</html>
<html>
<body>
<div>
<p>
<strong>Hello</strong>, what’s up?
</p>
</div>
<div>
<a href=“http://google.com”
id=“google-it”
class=“btn btn-primary">
>Google It</a>
</div>
</body>
</html>
<html>
<body>
<div>
<p>
<strong>Hello</strong>, what’s up?
</p>
</div>
<div>
<a href=“http://google.com”
id=“google-it”
class=“btn btn-primary">
>Google It</a>
</div>
</body>
</html>
<html>
<body>
<div>
<p>
<strong>Hello</strong>, what’s up?
</p>
</div>
<div>
<a href=“http://google.com”
id=“google-it”
class=“btn btn-primary">
>Google It</a>
</div>
</body>
</html>
<html>
<body>
<div>
<p>
<strong>Hello</strong>, what’s up?
</p>
</div>
<div>
<a href=“http://google.com”
id=“google-it”
class=“btn btn-primary">
>Google It</a>
</div>
</body>
</html>
<a href=“http://google.com”
id=“google-it”
class=“btn btn-primary”>
>Google It</a>
<a href=“http://google.com”
id=“google-it”
class=“btn btn-primary”>
>Google It</a>
<a href=“http://google.com”
id=“google-it”
class=“btn btn-primary”>
>Google It</a>
Open your Terminal Application
Under System Tools
And type these commands
cd ruby-crash-course
bin/start
DEMO: Messing around
with automation in the
console
So you’re the new hires? Great. Fantastic.
We’re trying to ship our new feature. Hold
onto your hats, we’re gonna ship everything
for FREE on orders worth more than $35.
We need some tests around it but manually
adding stuff to the cart is taking too long.
So you’re the new hires? Great. Fantastic.
I heard you know how to automate
websites, so if you can make that happen,
it’d be great.
So you’re the new hires? Great. Fantastic.
Stage 1 - Testing with
Scripts
git clone https://github.com/DVG/fake-amazon.git
Open your Terminal Application
Under System Tools
And type these commands
cd fake-amazon
bin/bootstrap
How to do it
• Your script is in the script directory.

• You can run it by executing bin/run-test

• If things stop working, run bin/bootstrap again

• I’ll be walking around, if you need help, ask
Things we should do in our
script
• Log In (student@example.com / supersecret)

• Add a cheap item to the cart

• Visit the checkout page

• Add an expensive item to the cart

• Navigate to the checkout page

• Complete checkout
Problems with this
approach
• Relies on ‘known data’

• Can’t be re-run (application state is changed as a result of
the test run)

• Doesn’t actually test anything

• Lots of repetition

• Tied to UI Details

• Not clear what the feature being tested is
So I went to a conference last week…
Hey that script you wrote is great, just
great. But everyone was talking about this
cucumber thing, have you heard of it?
So I went to a conference last week…
You can just write your tests in english and
you don’t need any of that code stuff, since
no one knows what that does anyway.
So I went to a conference last week…
How about we redo it with the Cucumber?
Stage 2 - Cucumber
So I was chatting with the devs…
Everyone loves what you’re doing with the
testing stuff
Except the devs, of course , they hate it.
So I was chatting with the devs…
They’re trying to use the specification for
the mobile app, but it super doesn’t work.
Can we make it just, like, general?
So I was chatting with the devs…
Stage 3 - Specification By
Example
Hey, that spec is great. We’re gonna use it
on the mobile app too.
So about those breaking tests
But tests are still breaking when some stuff
changes. The dev said you can do some
kinda object doohickey to fix it. Maybe pair
with them on it?
So about those breaking tests
Object Oriented Programming
(A hasty primer)
• Objects

• Receive Messages and produce Behavior

• click_link is a message that invokes the behavior of clicking an <a>
tag

• Is a model of a thing or idea in the real world

• Hide moving parts behind a particular interface (Encapsulation)

• Allow different objects to receive the same message but respond
differently (Polymorphism)

• Can gain behavior from a parent (Inheritance)
Object Oriented Programming
(A hasty primer)
• Classes

• Define a thing

• Person is a Class

• Instances

• A specific thing based on the definition (proper noun)

• Bradley is an instance of Person
Object Oriented Programming
(A hasty primer)
class Person
attr_reader :name,

:bmi,

:blood_pressure,

:pulse,

:last_slept_at,

:support_network,

:hunger_level,

:personal_sense_of_satisfaction,

:insecurities
def how_are_you_feeling?; end
end
Object Oriented Programming
(A hasty primer)
person = Person.new(“Bradley”, *other_attributes)

person.how_are_you_feeling?
# => “Fine”
Object Oriented Programming
(A hasty primer)
class Tester < Person
def how_are_you_feeling?
process_last_interaction_with_a_developer()
super()
end
end
Object Oriented Programming
(A hasty primer)
person = Tester.new(“Bradley”, *other_attributes)

person.how_are_you_feeling?
# => “Irritated”
Page Object
• Up till now we’ve been sending message directly to an
object controlling the browser, so all of our test code is
written in terms of low-level detail of browser interaction

• People do not think about whether something is a button
or a link, people think about tasks that they want to
complete on a page.

• A page object provides a way to hide away the details of
browser interaction behind a more intuitive task-based
message interface
Stage 4 - Page Objects
(class exercise)
Four Stages of Automated Testing by Bradley Temple

More Related Content

What's hot

The Test Coverage Outline: Your Testing Road Map
The Test Coverage Outline: Your Testing Road MapThe Test Coverage Outline: Your Testing Road Map
The Test Coverage Outline: Your Testing Road MapTechWell
 
Growing a Company Test Community: Roles and Paths for Testers
Growing a Company Test Community: Roles and Paths for TestersGrowing a Company Test Community: Roles and Paths for Testers
Growing a Company Test Community: Roles and Paths for TestersTEST Huddle
 
Will Robots Replace Testers?
Will Robots Replace Testers?Will Robots Replace Testers?
Will Robots Replace Testers?TEST Huddle
 
Exploratory Testing Explained
Exploratory Testing ExplainedExploratory Testing Explained
Exploratory Testing ExplainedTechWell
 
Agile testing quadrants discussion
Agile testing quadrants discussionAgile testing quadrants discussion
Agile testing quadrants discussionMary Jiang
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flexmichael.labriola
 
TDD That Was Easy!
TDD   That Was Easy!TDD   That Was Easy!
TDD That Was Easy!Kaizenko
 
What is this exploratory testing thing
What is this exploratory testing thingWhat is this exploratory testing thing
What is this exploratory testing thingtonybruce
 
Agile testingandautomation
Agile testingandautomationAgile testingandautomation
Agile testingandautomationjeisner
 
Using your testing mindset to explore requirements
Using your testing mindset to explore requirementsUsing your testing mindset to explore requirements
Using your testing mindset to explore requirementsJanet Gregory
 
03 - chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)
03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)
03 - chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)Igor Bronovskyy
 
Claudiu Draghia ITEM 2018
Claudiu Draghia ITEM 2018Claudiu Draghia ITEM 2018
Claudiu Draghia ITEM 2018ITEM
 
Selenium Users Anonymous
Selenium Users AnonymousSelenium Users Anonymous
Selenium Users AnonymousDave Haeffner
 
Test Estimation Hacks: Tips, Tricks and Tools Webinar
Test Estimation Hacks: Tips, Tricks and Tools WebinarTest Estimation Hacks: Tips, Tricks and Tools Webinar
Test Estimation Hacks: Tips, Tricks and Tools WebinarQASymphony
 
There's no time to test, can you just automate it? by Anna Heiermann
There's no time to test, can you just automate it? by Anna HeiermannThere's no time to test, can you just automate it? by Anna Heiermann
There's no time to test, can you just automate it? by Anna HeiermannQA or the Highway
 
Exploratory Testing Explained and Experienced
Exploratory Testing Explained and ExperiencedExploratory Testing Explained and Experienced
Exploratory Testing Explained and ExperiencedMaaret Pyhäjärvi
 
New Model Testing: A New Test Process and Tool
New Model Testing:  A New Test Process and ToolNew Model Testing:  A New Test Process and Tool
New Model Testing: A New Test Process and ToolTEST Huddle
 

What's hot (20)

The Test Coverage Outline: Your Testing Road Map
The Test Coverage Outline: Your Testing Road MapThe Test Coverage Outline: Your Testing Road Map
The Test Coverage Outline: Your Testing Road Map
 
Growing a Company Test Community: Roles and Paths for Testers
Growing a Company Test Community: Roles and Paths for TestersGrowing a Company Test Community: Roles and Paths for Testers
Growing a Company Test Community: Roles and Paths for Testers
 
Will Robots Replace Testers?
Will Robots Replace Testers?Will Robots Replace Testers?
Will Robots Replace Testers?
 
Exploratory Testing Explained
Exploratory Testing ExplainedExploratory Testing Explained
Exploratory Testing Explained
 
Exploratory testing workshop
Exploratory testing workshopExploratory testing workshop
Exploratory testing workshop
 
Agile testing quadrants discussion
Agile testing quadrants discussionAgile testing quadrants discussion
Agile testing quadrants discussion
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
 
TDD That Was Easy!
TDD   That Was Easy!TDD   That Was Easy!
TDD That Was Easy!
 
Exploratory Testing in Practice
Exploratory Testing in PracticeExploratory Testing in Practice
Exploratory Testing in Practice
 
What is this exploratory testing thing
What is this exploratory testing thingWhat is this exploratory testing thing
What is this exploratory testing thing
 
Agile testingandautomation
Agile testingandautomationAgile testingandautomation
Agile testingandautomation
 
Using your testing mindset to explore requirements
Using your testing mindset to explore requirementsUsing your testing mindset to explore requirements
Using your testing mindset to explore requirements
 
03 - chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)
03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)
03 - chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)
 
Claudiu Draghia ITEM 2018
Claudiu Draghia ITEM 2018Claudiu Draghia ITEM 2018
Claudiu Draghia ITEM 2018
 
Selenium Users Anonymous
Selenium Users AnonymousSelenium Users Anonymous
Selenium Users Anonymous
 
Test Estimation Hacks: Tips, Tricks and Tools Webinar
Test Estimation Hacks: Tips, Tricks and Tools WebinarTest Estimation Hacks: Tips, Tricks and Tools Webinar
Test Estimation Hacks: Tips, Tricks and Tools Webinar
 
There's no time to test, can you just automate it? by Anna Heiermann
There's no time to test, can you just automate it? by Anna HeiermannThere's no time to test, can you just automate it? by Anna Heiermann
There's no time to test, can you just automate it? by Anna Heiermann
 
Exploratory Testing Explained and Experienced
Exploratory Testing Explained and ExperiencedExploratory Testing Explained and Experienced
Exploratory Testing Explained and Experienced
 
New Model Testing: A New Test Process and Tool
New Model Testing:  A New Test Process and ToolNew Model Testing:  A New Test Process and Tool
New Model Testing: A New Test Process and Tool
 
Intro to TDD
Intro to TDDIntro to TDD
Intro to TDD
 

Similar to Four Stages of Automated Testing by Bradley Temple

Coaching teams in creative problem solving
Coaching teams in creative problem solvingCoaching teams in creative problem solving
Coaching teams in creative problem solvingFlowa Oy
 
Learn Learning + Prototype Testing
Learn Learning + Prototype TestingLearn Learning + Prototype Testing
Learn Learning + Prototype TestingDave Hora
 
Automated Testing but like for PowerShell (April 2012)
Automated Testing but like for PowerShell (April 2012)Automated Testing but like for PowerShell (April 2012)
Automated Testing but like for PowerShell (April 2012)Rob Reynolds
 
Cucumber Presentation Kiev Meet Up
Cucumber Presentation Kiev Meet UpCucumber Presentation Kiev Meet Up
Cucumber Presentation Kiev Meet Updimakovalenko
 
Selenium and Cucumber Selenium Conf 2011
Selenium and Cucumber Selenium Conf 2011Selenium and Cucumber Selenium Conf 2011
Selenium and Cucumber Selenium Conf 2011dimakovalenko
 
50+ Ways to Improve Your Classroom With Technology v 4.0
50+ Ways to Improve Your Classroom With Technology v 4.050+ Ways to Improve Your Classroom With Technology v 4.0
50+ Ways to Improve Your Classroom With Technology v 4.0Vicki Davis
 
Leveling Up at JavaScript
Leveling Up at JavaScriptLeveling Up at JavaScript
Leveling Up at JavaScriptRaymond Camden
 
Enabling Distributed Agile Teams
Enabling Distributed Agile TeamsEnabling Distributed Agile Teams
Enabling Distributed Agile TeamsTimothy Wise
 
Page Objects - You're Doing it Wrong by Titus Fortner
Page Objects - You're Doing it Wrong by Titus FortnerPage Objects - You're Doing it Wrong by Titus Fortner
Page Objects - You're Doing it Wrong by Titus FortnerSauce Labs
 
Refactoring Test Collaboration
Refactoring Test CollaborationRefactoring Test Collaboration
Refactoring Test CollaborationClaire Moss
 
Test Driven Search Relevancy w/ Quepid
Test Driven Search Relevancy w/ QuepidTest Driven Search Relevancy w/ Quepid
Test Driven Search Relevancy w/ QuepidDoug Turnbull
 
Clean tests
Clean testsClean tests
Clean testsAgileee
 
Test Driven Relevancy, Presented by Doug Turnbull at SolrExchage DC
Test Driven Relevancy, Presented by Doug Turnbull at SolrExchage DCTest Driven Relevancy, Presented by Doug Turnbull at SolrExchage DC
Test Driven Relevancy, Presented by Doug Turnbull at SolrExchage DCLucidworks (Archived)
 
Lightweight and ‘guerrilla’ usability testing for digital humanities projects
Lightweight and ‘guerrilla’ usability testing for digital humanities projectsLightweight and ‘guerrilla’ usability testing for digital humanities projects
Lightweight and ‘guerrilla’ usability testing for digital humanities projectsMia
 
Software Development Whats & Whys
Software Development Whats & Whys Software Development Whats & Whys
Software Development Whats & Whys Harun Yardımcı
 
Introducing Pair Programming
Introducing Pair ProgrammingIntroducing Pair Programming
Introducing Pair ProgrammingSteven Smith
 
Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Applitools
 
Getting started with dev tools (atl)
Getting started with dev tools (atl)Getting started with dev tools (atl)
Getting started with dev tools (atl)Thinkful
 
You have no idea what your users want - WordCamp PDX
You have no idea what your users want - WordCamp PDXYou have no idea what your users want - WordCamp PDX
You have no idea what your users want - WordCamp PDXEvan Solomon
 

Similar to Four Stages of Automated Testing by Bradley Temple (20)

Coaching teams in creative problem solving
Coaching teams in creative problem solvingCoaching teams in creative problem solving
Coaching teams in creative problem solving
 
Learn Learning + Prototype Testing
Learn Learning + Prototype TestingLearn Learning + Prototype Testing
Learn Learning + Prototype Testing
 
Automated Testing but like for PowerShell (April 2012)
Automated Testing but like for PowerShell (April 2012)Automated Testing but like for PowerShell (April 2012)
Automated Testing but like for PowerShell (April 2012)
 
Cucumber Presentation Kiev Meet Up
Cucumber Presentation Kiev Meet UpCucumber Presentation Kiev Meet Up
Cucumber Presentation Kiev Meet Up
 
Selenium and Cucumber Selenium Conf 2011
Selenium and Cucumber Selenium Conf 2011Selenium and Cucumber Selenium Conf 2011
Selenium and Cucumber Selenium Conf 2011
 
50+ Ways to Improve Your Classroom With Technology v 4.0
50+ Ways to Improve Your Classroom With Technology v 4.050+ Ways to Improve Your Classroom With Technology v 4.0
50+ Ways to Improve Your Classroom With Technology v 4.0
 
Leveling Up at JavaScript
Leveling Up at JavaScriptLeveling Up at JavaScript
Leveling Up at JavaScript
 
Enabling Distributed Agile Teams
Enabling Distributed Agile TeamsEnabling Distributed Agile Teams
Enabling Distributed Agile Teams
 
Page Objects - You're Doing it Wrong by Titus Fortner
Page Objects - You're Doing it Wrong by Titus FortnerPage Objects - You're Doing it Wrong by Titus Fortner
Page Objects - You're Doing it Wrong by Titus Fortner
 
Refactoring Test Collaboration
Refactoring Test CollaborationRefactoring Test Collaboration
Refactoring Test Collaboration
 
Test Driven Search Relevancy w/ Quepid
Test Driven Search Relevancy w/ QuepidTest Driven Search Relevancy w/ Quepid
Test Driven Search Relevancy w/ Quepid
 
Clean tests
Clean testsClean tests
Clean tests
 
Test Driven Relevancy, Presented by Doug Turnbull at SolrExchage DC
Test Driven Relevancy, Presented by Doug Turnbull at SolrExchage DCTest Driven Relevancy, Presented by Doug Turnbull at SolrExchage DC
Test Driven Relevancy, Presented by Doug Turnbull at SolrExchage DC
 
Lightweight and ‘guerrilla’ usability testing for digital humanities projects
Lightweight and ‘guerrilla’ usability testing for digital humanities projectsLightweight and ‘guerrilla’ usability testing for digital humanities projects
Lightweight and ‘guerrilla’ usability testing for digital humanities projects
 
Software Development Whats & Whys
Software Development Whats & Whys Software Development Whats & Whys
Software Development Whats & Whys
 
Introducing Pair Programming
Introducing Pair ProgrammingIntroducing Pair Programming
Introducing Pair Programming
 
Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully
 
Getting started with dev tools (atl)
Getting started with dev tools (atl)Getting started with dev tools (atl)
Getting started with dev tools (atl)
 
All of Javascript
All of JavascriptAll of Javascript
All of Javascript
 
You have no idea what your users want - WordCamp PDX
You have no idea what your users want - WordCamp PDXYou have no idea what your users want - WordCamp PDX
You have no idea what your users want - WordCamp PDX
 

More from QA or the Highway

KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfQA or the Highway
 
Ravi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptxRavi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptxQA or the Highway
 
Caleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptxCaleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptxQA or the Highway
 
Thomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdfThomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdfQA or the Highway
 
Thomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdfThomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdfQA or the Highway
 
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdfJoe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdfQA or the Highway
 
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdfSarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdfQA or the Highway
 
Jeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdfJeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdfQA or the Highway
 
Leandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdfLeandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdfQA or the Highway
 
Rick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdfRick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdfQA or the Highway
 
Robert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptxRobert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptxQA or the Highway
 
Federico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdfFederico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdfQA or the Highway
 
Andrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptxAndrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptxQA or the Highway
 
Melissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdfMelissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdfQA or the Highway
 
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdfJeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdfQA or the Highway
 
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptxQA or the Highway
 
Damian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdfDamian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdfQA or the Highway
 
Lee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdfLee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdfQA or the Highway
 
Jordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptxJordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptxQA or the Highway
 
Carlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptxCarlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptxQA or the Highway
 

More from QA or the Highway (20)

KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
 
Ravi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptxRavi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptx
 
Caleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptxCaleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptx
 
Thomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdfThomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdf
 
Thomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdfThomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdf
 
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdfJoe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
 
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdfSarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
 
Jeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdfJeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdf
 
Leandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdfLeandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdf
 
Rick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdfRick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdf
 
Robert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptxRobert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptx
 
Federico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdfFederico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdf
 
Andrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptxAndrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptx
 
Melissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdfMelissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdf
 
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdfJeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
 
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
 
Damian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdfDamian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdf
 
Lee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdfLee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdf
 
Jordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptxJordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptx
 
Carlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptxCarlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptx
 

Recently uploaded

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesThousandEyes
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsPaul Groth
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1DianaGray10
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...Product School
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Alison B. Lowndes
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...Elena Simperl
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...Product School
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 

Recently uploaded (20)

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 

Four Stages of Automated Testing by Bradley Temple

  • 1. 4 Stages of Test Automation Welcome to your first day at fake-amazon.com
  • 2. Expectations • We will move quickly, as there is a lot of content and 3 and a half hours will go much faster than we think it will • The virtual machine thing was the best I could do without having time to work with anyone ahead of time, as setting up a working dev environment is non-trivial, if you couldn’t get it going, pair up with someone who did • If you have something in particular you are hoping to get out of the class, put it up on the class backlog and I will try and get to it.
  • 3. Expectations • You’ll get some time to try each stage on your own or in a pair before we go over it as a class. Ideally you’d get a couple hours to experiment with each stage, but we’re running on a compressed timeframe. • You won’t be an expert when you leave today, but you’ll hopefully have a better idea of what the mistakes you’ll make along the way look like so you can move past them easier.
  • 4. Agenda • 8-8:15 - Working Agreements, Class Backlog • 8:15-8:45 -Automation Crash Course (New Hire Training) • 8:45 - 9:15 - Stage 1 - A basic Test • 9:15 - 9:30 Class Walkthrough of Stage 1 • 9:30 - 10 Stage 2 - Cucumber • 10-10:15 Class Walkthrough of Stage 2 • 10:15-10:45 Stage 3 - Gherkin as a Specification • 10:45 - 11 Class Walkthrough of Stage 3 • 11-11:15 Class Walkthrough of Stage 4 • 11:15-11:30 - Questions and Answers
  • 5.
  • 6. How the Web Works
  • 7.
  • 8.
  • 11. <html> <body> <div> <p> <strong>Hello</strong>, what’s up? </p> </div> <div> <a href=“http://google.com” id=“google-it” class=“btn btn-primary"> >Google It</a> </div> </body> </html>
  • 12. <html> <body> <div> <p> <strong>Hello</strong>, what’s up? </p> </div> <div> <a href=“http://google.com” id=“google-it” class=“btn btn-primary"> >Google It</a> </div> </body> </html>
  • 13. <html> <body> <div> <p> <strong>Hello</strong>, what’s up? </p> </div> <div> <a href=“http://google.com” id=“google-it” class=“btn btn-primary"> >Google It</a> </div> </body> </html>
  • 14. <html> <body> <div> <p> <strong>Hello</strong>, what’s up? </p> </div> <div> <a href=“http://google.com” id=“google-it” class=“btn btn-primary"> >Google It</a> </div> </body> </html>
  • 15. <html> <body> <div> <p> <strong>Hello</strong>, what’s up? </p> </div> <div> <a href=“http://google.com” id=“google-it” class=“btn btn-primary"> >Google It</a> </div> </body> </html>
  • 16. <html> <body> <div> <p> <strong>Hello</strong>, what’s up? </p> </div> <div> <a href=“http://google.com” id=“google-it” class=“btn btn-primary"> >Google It</a> </div> </body> </html>
  • 20. Open your Terminal Application Under System Tools And type these commands cd ruby-crash-course bin/start
  • 21. DEMO: Messing around with automation in the console
  • 22. So you’re the new hires? Great. Fantastic. We’re trying to ship our new feature. Hold onto your hats, we’re gonna ship everything for FREE on orders worth more than $35.
  • 23. We need some tests around it but manually adding stuff to the cart is taking too long. So you’re the new hires? Great. Fantastic.
  • 24. I heard you know how to automate websites, so if you can make that happen, it’d be great. So you’re the new hires? Great. Fantastic.
  • 25. Stage 1 - Testing with Scripts
  • 26. git clone https://github.com/DVG/fake-amazon.git Open your Terminal Application Under System Tools And type these commands cd fake-amazon bin/bootstrap
  • 27. How to do it • Your script is in the script directory. • You can run it by executing bin/run-test • If things stop working, run bin/bootstrap again • I’ll be walking around, if you need help, ask
  • 28. Things we should do in our script • Log In (student@example.com / supersecret) • Add a cheap item to the cart • Visit the checkout page • Add an expensive item to the cart • Navigate to the checkout page • Complete checkout
  • 29. Problems with this approach • Relies on ‘known data’ • Can’t be re-run (application state is changed as a result of the test run) • Doesn’t actually test anything • Lots of repetition • Tied to UI Details • Not clear what the feature being tested is
  • 30. So I went to a conference last week… Hey that script you wrote is great, just great. But everyone was talking about this cucumber thing, have you heard of it?
  • 31. So I went to a conference last week… You can just write your tests in english and you don’t need any of that code stuff, since no one knows what that does anyway.
  • 32. So I went to a conference last week… How about we redo it with the Cucumber?
  • 33. Stage 2 - Cucumber
  • 34. So I was chatting with the devs… Everyone loves what you’re doing with the testing stuff
  • 35. Except the devs, of course , they hate it. So I was chatting with the devs…
  • 36. They’re trying to use the specification for the mobile app, but it super doesn’t work. Can we make it just, like, general? So I was chatting with the devs…
  • 37. Stage 3 - Specification By Example
  • 38. Hey, that spec is great. We’re gonna use it on the mobile app too. So about those breaking tests
  • 39. But tests are still breaking when some stuff changes. The dev said you can do some kinda object doohickey to fix it. Maybe pair with them on it? So about those breaking tests
  • 40. Object Oriented Programming (A hasty primer) • Objects • Receive Messages and produce Behavior • click_link is a message that invokes the behavior of clicking an <a> tag • Is a model of a thing or idea in the real world • Hide moving parts behind a particular interface (Encapsulation) • Allow different objects to receive the same message but respond differently (Polymorphism) • Can gain behavior from a parent (Inheritance)
  • 41. Object Oriented Programming (A hasty primer) • Classes • Define a thing • Person is a Class • Instances • A specific thing based on the definition (proper noun) • Bradley is an instance of Person
  • 42. Object Oriented Programming (A hasty primer) class Person attr_reader :name,
 :bmi,
 :blood_pressure,
 :pulse,
 :last_slept_at,
 :support_network,
 :hunger_level,
 :personal_sense_of_satisfaction,
 :insecurities def how_are_you_feeling?; end end
  • 43. Object Oriented Programming (A hasty primer) person = Person.new(“Bradley”, *other_attributes)
 person.how_are_you_feeling? # => “Fine”
  • 44. Object Oriented Programming (A hasty primer) class Tester < Person def how_are_you_feeling? process_last_interaction_with_a_developer() super() end end
  • 45. Object Oriented Programming (A hasty primer) person = Tester.new(“Bradley”, *other_attributes)
 person.how_are_you_feeling? # => “Irritated”
  • 46. Page Object • Up till now we’ve been sending message directly to an object controlling the browser, so all of our test code is written in terms of low-level detail of browser interaction • People do not think about whether something is a button or a link, people think about tasks that they want to complete on a page. • A page object provides a way to hide away the details of browser interaction behind a more intuitive task-based message interface
  • 47. Stage 4 - Page Objects (class exercise)