SlideShare ist ein Scribd-Unternehmen logo
1 von 43
ATDD             GUI




                   ET



 GET THE BALANCE RIGHT

ACCEPTANCE TEST DRIVEN
DEVELOPMENT, GUI AUTOMATION AND
EXPLORATORY TESTING
MICHAEL LARSEN
Senior Tester, Sidereel.com
Chair, Education Special Interest
Group, Association For Software Testing
Black Belt, Miagi-do School of Software Testing
Founder/Facilitator, Weekend Testing Americas


TESTHEAD: http://mkltesthead.com
Twitter: @mkltesthead
WHAT’S HAPPENED
SINCE 2001?
Eleven years since the Agile Manifesto


Test Driven Development (TDD) has emerged as a
standard to guide code development driven by tests.


Acceptance Test Driven Development (ATDD)
extends model.

Proliferation of automated testing tools for a variety
of platforms and needs.
DO WE STILL NEED
TESTERS?
NO: Testing is dead. With the development
of these tools, developers now do the
testing earlier and up front [Savioa, 2011].



YES: Apply reason and dynamic thought to
problems. Thinking, actively engaged
testers are needed now more than ever
[Tomlinson, 2011].
TDD, WHAT IS IT?
ATDD, WHAT IS IT?
Places the focus on User Stories from the
expectations of the customers.


Is geared towards the members of the team
that are not necessarily programmers.


Uses tools that allow a more natural
language to present the requirements.
ATDD
Scenario: Twitter user signs in
 Given I connect to twitter from the sign in page
 When I log into twitter with good credentials
 Then I go to the user private profile page
 And I can confirm my twitter credentials


Expressed in Gherkin, the language used
with Cucumber.


Tied to actual coded methods to make the
process work.
TDD AND ATDD ARE
NOT TESTING!
TDD and ATDD are design processes.


Help develop clean, well functioning code.


Help ensure software being developed
meets needs of the project
WHY ISN’T THIS
TESTING?
Testing:


“The art and the act of asking questions of
a product, then developing & devising new
and more inventive questions based on the
answers we receive.”
WHERE DO TDD AND
ATDD EXCEL?
Disciplined approach to developing cleaner
software.


Act as a brake on "cowboy code".


New programmers can see code in context
with the tests that have been written.
WHERE DO TDD AND
ATDD EXCEL?
TDD and ATDD work well with Continuous Integration.


Keeps issues based on dependencies to a minimum.


Programmers focus on "just enough design" and "just
enough development".


Entire product team does design and development
work.
WHERE DO TDD AND
ATDD FALL SHORT?
Unrealistic expectations.


Only be as good as the overall skill of the
developer(s).


Can be over applied.
WHAT IS FRONT END
GUI AUTOMATION?
Proliferation of tools that help simulate the actions
of users.


Follow standard workflows
 • (logging in, navigating to pages, clicking on
   links, filling in forms, etc.).

Tools range from lightweight apps like Texter up to
full feature development suites
(Selenium/WebDriver, FitNesse, TestComplete, etc
.).
HOW DOES GUI
AUTOMATION DIFFER
FROM TDD/ATDD?

Helps with constructing
acceptance test cases

Helps to check and
demonstrate the acceptance
criteria has been met.
GUI AUTOMATION
Remember our original example:
GUI AUTOMATION
Cucumber statements = abstraction of real
code.
Map to appropriate tools that make statements
work on the application or browser.
GUI AUTOMATION
The code below is Ruby, using Capybara to
make calls to the browser:
GUI AUTOMATION
Step Definitions -> Capybara and Ruby
WHERE DOES GUI
AUTOMATION EXCEL?
Tremendous blessing when dealing
with repetitious steps (set up and take
down).

Important part of Acceptance Test
verification.

Semi proxy for human interaction.
GUI AUTOMATION
DEFICIENCIES
GUI tends to be the most fragile
layer of an application.

Tremendous overhead of script
maintenance.

Not good at checking context.
WHAT IS EXPLORATORY
TESTING?
WHAT IS EXPLORATORY
TESTING?
“Scientific thinking in real-time” [Bach, 2012]


Puts test design and test execution
together.


The tests that we did before inform the tests
that we will do now. Those tests will inform
the tests we will perform later.
EXPLORATORY
TESTING
Concepts are defined, but they are not completely
predefined or run in a rigid sequence.

Allows for a development of test ideas that are
interesting.

Example: Automated tests can be made
exploratory by randomizing order.
Purpose: Discover where dependencies or state
conditions do exist.
EXPLORATORY TESTING
VS. AUTOMATED
TESTING


Instead of saying "automated testing", I
prefer to use the term "computer aided
testing".


Exploratory Testing can, and often
does, use elements of computer aided
testing to help accomplish its goals.
AUTOMATION CAN’S
AND CANNOT’S
Automation Can:                        Automation Cannot:
Generate test data to be used in       Create curiosity.
forms or as variable values.
Parse the output of a program and      Make sapient (actively thinking)
use it as input for another program.   decisions.
Create a log of actions and            Invent a new idea or an approach
transactions.                          based on the output of a sequence
                                       of tests.
Alert if an assertion is met or not     Notice something unexpected
met.                                   (unless we have already defined
                                       what is unexpected).
Search for patterns in output, or      Make a judgment call as to the
help to reveal patterns we did not     value or importance of a piece of
know about.                            functionality.
WHERE DOES
EXPLORATORY TESTING
EXCEL?
Allows the tester to choose the sequence of
steps that can provide answers about the
state or condition of a product.

Imagination and creativity open up
possibilities.

When there is little in the way of formalized
documentation.
EXPLORING
REQUIREMENTS
Remember this acceptance test?

Scenario: Twitter user signs in through Twitter
 Given I connect to twitter from the sign in page
 When I log into twitter with good credentials
 Then I go to the user private profile page
 And I can confirm my twitter credentials
SAMPLE EXPLORATION
QUESTIONS
Is there a login interface?
Does it provide for proper error handling if I can't log
in?
Does it give me feedback to let me know that I have
successfully logged in?
Can I trick the system into letting me log in with
improper credentials?
Does it present me with information that could help me
guess a login without actually having one?
Where else could I use this functionality?
EXPLORATORY TESTING
IS PART OF TDD/ATDD
Proposing a failing test first, and then
creating code that meets the acceptance
criteria

Programmer must consider what the
application needs to do

Determine which avenue(s) to implement
the feature(s).
BENEFITS OF
EXPLORATORY TESTING
Walking down various paths

Jumping off point to look in other places

Simple Cucumber statement "And let me see that":

And /^let me see that$/ do
 puts "PAUSED - Press Enter to continue: #{$1}aaa"
 puts ""
 $stdin.gets
End
EXPLORATORY
TESTING’S DEFICIENCIES
Less likely to find new revelations by going
over the same ground (pesticide paradox)

Not enough time to go through all
possibilities.

Sentient humans do it. Sentient humans get
bored.
  • SBTM techniques can help
CAN WE CREATE A
BALANCE?
TDD, ATDD, and front end GUI automation
are processes.
Exploratory Testing is a process and a
mindset.
Developing and defining acceptance is
exploratory.
Front End GUI Automation starts from
capturing discoveries made while
examining requirements.
THE ROLE OF
TESTERS
”Testing is dead" == testing needed to be a
part of an entire process of quality and
improvement, starting at the earliest stages
of design and development.


Exploration, automation, and testing must
come earlier in the process, and involve not
just testers, but everyone on the product
team.
STRIKING A BALANCE
Can we leverage the "testing
everywhere" idea, and help develop
a balance for all of these goals?


Can we see them as
interdependent, and not as separate
and standalone activities?
TDD AND ATDD TAKE AN
EXPLORATORY MINDSET

  • Testing is part of the initial development effort.
  • Testing comes first.
  • Putting the emphasis on TDD/ATDD makes sure that it
    meets the criteria it is being designed for.

Testers can also help guide and provide consideration for
testability in areas the programmers might not consider.


Asking "what if" questions vital at this stage
FOCUS ON DELIVERING
BUSINESS VALUE
Question 1: "is what I am doing helping
to deliver real value to my customers"?



If we put the business value first, that
will guide us in our testing efforts and
the approaches that we use
[Crispin, 2008].
AUTOMATION DOES NOT
HAVE TO BE PERMANENT
Make room for "throwaway automation”; steps
that can be used to help explore different
avenues.


Freight or passenger trains vs. taxi cabs.
 • Freight and passenger trains limited to the
   rails the trains can ride on.
 • Taxi cab can be called to appear anywhere
   and take us anywhere.
EXPLORATION IS A
MINDSET
Exploratory Testing is a way of thinking
about questions and answers.


Exploratory Testing does not live outside
of automated testing.


Automation and Computer Aided Testing
can be central to exploration.
ZEN MIND,
BEGINNERS MIND
Domain Expert Level Exploratory Testing

Novice Level Exploratory Testing

They are different.

Source of mental friction is knowing the
eccentricities of your application and when
they can get in the way of effective testing and
exploration.
USE PERSONAS TO
VISUALIZE GOALS
Put yourself into the shoes of as many potential
customers of our product as I can.


That means understanding the interests, desires
and ways of interaction of many different groups of
people.


The ways that they interact with the devices they
use to discover content/interact is very different.
SESSION BASED
TECHNIQUES
• Developing small charters and executing
  on them in set periods of time.
• Focus testing areas that are most
  important.
• Focus on a small sub system.
Keep our testing fresh, our eyes and minds
focused, work on what's most important.
CONCLUSION
TDD focuses on writing correct and clean code.
ATDD focuses on making sure the functionality
being delivered makes good on the goals and
promises made to our customers.
Automation happens at many levels.
Exploration happens at all of these levels, and is
an approach and a mindset, not a methodology.
Working together, the odds of quality software are
much more heavily in our favor.
QUESTIONS


       ???

Weitere ähnliche Inhalte

Was ist angesagt?

Test Driven Development (C#)
Test Driven Development (C#)Test Driven Development (C#)
Test Driven Development (C#)
Alan Dean
 

Was ist angesagt? (20)

Test Driven Development (C#)
Test Driven Development (C#)Test Driven Development (C#)
Test Driven Development (C#)
 
Exploratory Testing Explained and Experienced
Exploratory Testing Explained and ExperiencedExploratory Testing Explained and Experienced
Exploratory Testing Explained and Experienced
 
@LinkingNote annotation in YATSPEC
@LinkingNote annotation in YATSPEC@LinkingNote annotation in YATSPEC
@LinkingNote annotation in YATSPEC
 
What is this exploratory testing thing
What is this exploratory testing thingWhat is this exploratory testing thing
What is this exploratory testing thing
 
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
 
TestWorksConf: Experience exploratory testing
TestWorksConf: Experience exploratory testingTestWorksConf: Experience exploratory testing
TestWorksConf: Experience exploratory testing
 
Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013
Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013
Graham Thomas - Software Testing Secrets We Dare Not Tell - EuroSTAR 2013
 
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
 
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
 
Four Stages of Automated Testing by Bradley Temple
Four Stages of Automated Testing by Bradley TempleFour Stages of Automated Testing by Bradley Temple
Four Stages of Automated Testing by Bradley Temple
 
Open source tools - Test Management Summit - 2009
Open source tools - Test Management Summit - 2009Open source tools - Test Management Summit - 2009
Open source tools - Test Management Summit - 2009
 
Exploratory test
Exploratory testExploratory test
Exploratory test
 
A Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software TestingA Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software Testing
 
TestIstanbul May 2013 Keynote Experiences With Exploratory Testing
TestIstanbul May 2013 Keynote Experiences With Exploratory TestingTestIstanbul May 2013 Keynote Experiences With Exploratory Testing
TestIstanbul May 2013 Keynote Experiences With Exploratory Testing
 
And I thought I knew QTP - QTP Concepts Unplugged
And I thought I knew QTP - QTP Concepts UnpluggedAnd I thought I knew QTP - QTP Concepts Unplugged
And I thought I knew QTP - QTP Concepts Unplugged
 
Exploratory Testing Explained
Exploratory Testing ExplainedExploratory Testing Explained
Exploratory Testing Explained
 
Create Your Tester Portfolio
Create Your Tester PortfolioCreate Your Tester Portfolio
Create Your Tester Portfolio
 
Exploratory Testing
Exploratory TestingExploratory Testing
Exploratory Testing
 
Conversion Hotel 2018 Keynote: Aleksander Fabijan
Conversion Hotel 2018 Keynote: Aleksander FabijanConversion Hotel 2018 Keynote: Aleksander Fabijan
Conversion Hotel 2018 Keynote: Aleksander Fabijan
 
Prototyping Workshop
Prototyping WorkshopPrototyping Workshop
Prototyping Workshop
 

Andere mochten auch

Functionality testing techniqu
Functionality testing techniquFunctionality testing techniqu
Functionality testing techniqu
gaoliang641
 

Andere mochten auch (16)

GUI Design by Roni Sue Player
GUI Design by Roni Sue PlayerGUI Design by Roni Sue Player
GUI Design by Roni Sue Player
 
Coyote Teaching: A New (Old) Take on the Art of Mentorship
Coyote Teaching: A New (Old) Take on the Art of MentorshipCoyote Teaching: A New (Old) Take on the Art of Mentorship
Coyote Teaching: A New (Old) Take on the Art of Mentorship
 
Coming to TERMS with Test Automation
Coming to TERMS with Test AutomationComing to TERMS with Test Automation
Coming to TERMS with Test Automation
 
The New Testers: Critical Skills and Capabilities to Deliver Quality at Speed
The New Testers: Critical Skills and Capabilities to Deliver Quality at Speed The New Testers: Critical Skills and Capabilities to Deliver Quality at Speed
The New Testers: Critical Skills and Capabilities to Deliver Quality at Speed
 
Delivering Quality: One Weekend At A Time
Delivering Quality: One Weekend At A TimeDelivering Quality: One Weekend At A Time
Delivering Quality: One Weekend At A Time
 
Functionality testing techniqu
Functionality testing techniquFunctionality testing techniqu
Functionality testing techniqu
 
Relax-and-Recover Automated Testing
Relax-and-Recover Automated TestingRelax-and-Recover Automated Testing
Relax-and-Recover Automated Testing
 
20041221 gui testing survey
20041221 gui testing survey20041221 gui testing survey
20041221 gui testing survey
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
 
Big Data Testing: Ensuring MongoDB Data Quality
Big Data Testing: Ensuring MongoDB Data QualityBig Data Testing: Ensuring MongoDB Data Quality
Big Data Testing: Ensuring MongoDB Data Quality
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile Tester
 
Software Testing Basics
Software Testing BasicsSoftware Testing Basics
Software Testing Basics
 
Guerilla Usability Testing
Guerilla Usability TestingGuerilla Usability Testing
Guerilla Usability Testing
 
Simulating APIs for Effective Testing: (Micro)Service Virtualisation for the ...
Simulating APIs for Effective Testing: (Micro)Service Virtualisation for the ...Simulating APIs for Effective Testing: (Micro)Service Virtualisation for the ...
Simulating APIs for Effective Testing: (Micro)Service Virtualisation for the ...
 
Introduction to Agile software testing
Introduction to Agile software testingIntroduction to Agile software testing
Introduction to Agile software testing
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 

Ähnlich wie Get the Balance Right: Acceptance Test Driven Development, GUI Automation and Exploratory Testing

5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing
Mary Clemons
 
I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application Testing
Peter Presnell
 

Ähnlich wie Get the Balance Right: Acceptance Test Driven Development, GUI Automation and Exploratory Testing (20)

5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing
 
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
 
I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application Testing
 
Test Automation in Agile: A Successful Implementation
Test Automation in Agile: A Successful ImplementationTest Automation in Agile: A Successful Implementation
Test Automation in Agile: A Successful Implementation
 
Agile test practices
Agile test practicesAgile test practices
Agile test practices
 
SAM
SAMSAM
SAM
 
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
 
Exploratory Testing, A Guide Towards Better Test Coverage.pdf
Exploratory Testing, A Guide Towards Better Test Coverage.pdfExploratory Testing, A Guide Towards Better Test Coverage.pdf
Exploratory Testing, A Guide Towards Better Test Coverage.pdf
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
 
Tdd
TddTdd
Tdd
 
Test automation and Agile software development
Test automation and Agile software developmentTest automation and Agile software development
Test automation and Agile software development
 
Unit testing - An introduction
Unit testing - An introductionUnit testing - An introduction
Unit testing - An introduction
 
Approaches to unraveling a complex test problem
Approaches to unraveling a complex test problemApproaches to unraveling a complex test problem
Approaches to unraveling a complex test problem
 
Agile testing
Agile testingAgile testing
Agile testing
 
Why Unit Testingl
Why Unit TestinglWhy Unit Testingl
Why Unit Testingl
 
Why unit testingl
Why unit testinglWhy unit testingl
Why unit testingl
 
Why Unit Testingl
Why Unit TestinglWhy Unit Testingl
Why Unit Testingl
 
Testing overview
Testing overviewTesting overview
Testing overview
 
Tackling software testing challenges in the agile era
Tackling software testing challenges in the agile eraTackling software testing challenges in the agile era
Tackling software testing challenges in the agile era
 
Automatic for the People
Automatic for the PeopleAutomatic for the People
Automatic for the People
 

Mehr von Michael Larsen

Ask the Tester with Michael Larsen
Ask the Tester with Michael LarsenAsk the Tester with Michael Larsen
Ask the Tester with Michael Larsen
Michael Larsen
 

Mehr von Michael Larsen (8)

Senses Working Overtime - Improving Software Through Accessibility and Inclus...
Senses Working Overtime - Improving Software Through Accessibility and Inclus...Senses Working Overtime - Improving Software Through Accessibility and Inclus...
Senses Working Overtime - Improving Software Through Accessibility and Inclus...
 
Future Proofing Your Sofware: Design Inclusively
Future Proofing Your Sofware: Design InclusivelyFuture Proofing Your Sofware: Design Inclusively
Future Proofing Your Sofware: Design Inclusively
 
Making a Web for Everyone
Making a Web for EveryoneMaking a Web for Everyone
Making a Web for Everyone
 
The Intersection of Accessibility and Inclusive Design
The Intersection of Accessibility and Inclusive DesignThe Intersection of Accessibility and Inclusive Design
The Intersection of Accessibility and Inclusive Design
 
Senses Working Overtime: Improving Software Quality Through Accessibility and...
Senses Working Overtime: Improving Software Quality Through Accessibility and...Senses Working Overtime: Improving Software Quality Through Accessibility and...
Senses Working Overtime: Improving Software Quality Through Accessibility and...
 
A Cup of Tea With Michael Larsen
A Cup of Tea With Michael LarsenA Cup of Tea With Michael Larsen
A Cup of Tea With Michael Larsen
 
Combating Tester Apathy
Combating Tester ApathyCombating Tester Apathy
Combating Tester Apathy
 
Ask the Tester with Michael Larsen
Ask the Tester with Michael LarsenAsk the Tester with Michael Larsen
Ask the Tester with Michael Larsen
 

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Kürzlich hochgeladen (20)

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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
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
 

Get the Balance Right: Acceptance Test Driven Development, GUI Automation and Exploratory Testing

  • 1. ATDD GUI ET GET THE BALANCE RIGHT ACCEPTANCE TEST DRIVEN DEVELOPMENT, GUI AUTOMATION AND EXPLORATORY TESTING
  • 2. MICHAEL LARSEN Senior Tester, Sidereel.com Chair, Education Special Interest Group, Association For Software Testing Black Belt, Miagi-do School of Software Testing Founder/Facilitator, Weekend Testing Americas TESTHEAD: http://mkltesthead.com Twitter: @mkltesthead
  • 3. WHAT’S HAPPENED SINCE 2001? Eleven years since the Agile Manifesto Test Driven Development (TDD) has emerged as a standard to guide code development driven by tests. Acceptance Test Driven Development (ATDD) extends model. Proliferation of automated testing tools for a variety of platforms and needs.
  • 4. DO WE STILL NEED TESTERS? NO: Testing is dead. With the development of these tools, developers now do the testing earlier and up front [Savioa, 2011]. YES: Apply reason and dynamic thought to problems. Thinking, actively engaged testers are needed now more than ever [Tomlinson, 2011].
  • 6. ATDD, WHAT IS IT? Places the focus on User Stories from the expectations of the customers. Is geared towards the members of the team that are not necessarily programmers. Uses tools that allow a more natural language to present the requirements.
  • 7. ATDD Scenario: Twitter user signs in Given I connect to twitter from the sign in page When I log into twitter with good credentials Then I go to the user private profile page And I can confirm my twitter credentials Expressed in Gherkin, the language used with Cucumber. Tied to actual coded methods to make the process work.
  • 8. TDD AND ATDD ARE NOT TESTING! TDD and ATDD are design processes. Help develop clean, well functioning code. Help ensure software being developed meets needs of the project
  • 9. WHY ISN’T THIS TESTING? Testing: “The art and the act of asking questions of a product, then developing & devising new and more inventive questions based on the answers we receive.”
  • 10. WHERE DO TDD AND ATDD EXCEL? Disciplined approach to developing cleaner software. Act as a brake on "cowboy code". New programmers can see code in context with the tests that have been written.
  • 11. WHERE DO TDD AND ATDD EXCEL? TDD and ATDD work well with Continuous Integration. Keeps issues based on dependencies to a minimum. Programmers focus on "just enough design" and "just enough development". Entire product team does design and development work.
  • 12. WHERE DO TDD AND ATDD FALL SHORT? Unrealistic expectations. Only be as good as the overall skill of the developer(s). Can be over applied.
  • 13. WHAT IS FRONT END GUI AUTOMATION? Proliferation of tools that help simulate the actions of users. Follow standard workflows • (logging in, navigating to pages, clicking on links, filling in forms, etc.). Tools range from lightweight apps like Texter up to full feature development suites (Selenium/WebDriver, FitNesse, TestComplete, etc .).
  • 14. HOW DOES GUI AUTOMATION DIFFER FROM TDD/ATDD? Helps with constructing acceptance test cases Helps to check and demonstrate the acceptance criteria has been met.
  • 15. GUI AUTOMATION Remember our original example:
  • 16. GUI AUTOMATION Cucumber statements = abstraction of real code. Map to appropriate tools that make statements work on the application or browser.
  • 17. GUI AUTOMATION The code below is Ruby, using Capybara to make calls to the browser:
  • 18. GUI AUTOMATION Step Definitions -> Capybara and Ruby
  • 19. WHERE DOES GUI AUTOMATION EXCEL? Tremendous blessing when dealing with repetitious steps (set up and take down). Important part of Acceptance Test verification. Semi proxy for human interaction.
  • 20. GUI AUTOMATION DEFICIENCIES GUI tends to be the most fragile layer of an application. Tremendous overhead of script maintenance. Not good at checking context.
  • 22. WHAT IS EXPLORATORY TESTING? “Scientific thinking in real-time” [Bach, 2012] Puts test design and test execution together. The tests that we did before inform the tests that we will do now. Those tests will inform the tests we will perform later.
  • 23. EXPLORATORY TESTING Concepts are defined, but they are not completely predefined or run in a rigid sequence. Allows for a development of test ideas that are interesting. Example: Automated tests can be made exploratory by randomizing order. Purpose: Discover where dependencies or state conditions do exist.
  • 24. EXPLORATORY TESTING VS. AUTOMATED TESTING Instead of saying "automated testing", I prefer to use the term "computer aided testing". Exploratory Testing can, and often does, use elements of computer aided testing to help accomplish its goals.
  • 25. AUTOMATION CAN’S AND CANNOT’S Automation Can: Automation Cannot: Generate test data to be used in Create curiosity. forms or as variable values. Parse the output of a program and Make sapient (actively thinking) use it as input for another program. decisions. Create a log of actions and Invent a new idea or an approach transactions. based on the output of a sequence of tests. Alert if an assertion is met or not Notice something unexpected met. (unless we have already defined what is unexpected). Search for patterns in output, or Make a judgment call as to the help to reveal patterns we did not value or importance of a piece of know about. functionality.
  • 26. WHERE DOES EXPLORATORY TESTING EXCEL? Allows the tester to choose the sequence of steps that can provide answers about the state or condition of a product. Imagination and creativity open up possibilities. When there is little in the way of formalized documentation.
  • 27. EXPLORING REQUIREMENTS Remember this acceptance test? Scenario: Twitter user signs in through Twitter Given I connect to twitter from the sign in page When I log into twitter with good credentials Then I go to the user private profile page And I can confirm my twitter credentials
  • 28. SAMPLE EXPLORATION QUESTIONS Is there a login interface? Does it provide for proper error handling if I can't log in? Does it give me feedback to let me know that I have successfully logged in? Can I trick the system into letting me log in with improper credentials? Does it present me with information that could help me guess a login without actually having one? Where else could I use this functionality?
  • 29. EXPLORATORY TESTING IS PART OF TDD/ATDD Proposing a failing test first, and then creating code that meets the acceptance criteria Programmer must consider what the application needs to do Determine which avenue(s) to implement the feature(s).
  • 30. BENEFITS OF EXPLORATORY TESTING Walking down various paths Jumping off point to look in other places Simple Cucumber statement "And let me see that": And /^let me see that$/ do puts "PAUSED - Press Enter to continue: #{$1}aaa" puts "" $stdin.gets End
  • 31. EXPLORATORY TESTING’S DEFICIENCIES Less likely to find new revelations by going over the same ground (pesticide paradox) Not enough time to go through all possibilities. Sentient humans do it. Sentient humans get bored. • SBTM techniques can help
  • 32. CAN WE CREATE A BALANCE? TDD, ATDD, and front end GUI automation are processes. Exploratory Testing is a process and a mindset. Developing and defining acceptance is exploratory. Front End GUI Automation starts from capturing discoveries made while examining requirements.
  • 33. THE ROLE OF TESTERS ”Testing is dead" == testing needed to be a part of an entire process of quality and improvement, starting at the earliest stages of design and development. Exploration, automation, and testing must come earlier in the process, and involve not just testers, but everyone on the product team.
  • 34. STRIKING A BALANCE Can we leverage the "testing everywhere" idea, and help develop a balance for all of these goals? Can we see them as interdependent, and not as separate and standalone activities?
  • 35. TDD AND ATDD TAKE AN EXPLORATORY MINDSET • Testing is part of the initial development effort. • Testing comes first. • Putting the emphasis on TDD/ATDD makes sure that it meets the criteria it is being designed for. Testers can also help guide and provide consideration for testability in areas the programmers might not consider. Asking "what if" questions vital at this stage
  • 36. FOCUS ON DELIVERING BUSINESS VALUE Question 1: "is what I am doing helping to deliver real value to my customers"? If we put the business value first, that will guide us in our testing efforts and the approaches that we use [Crispin, 2008].
  • 37. AUTOMATION DOES NOT HAVE TO BE PERMANENT Make room for "throwaway automation”; steps that can be used to help explore different avenues. Freight or passenger trains vs. taxi cabs. • Freight and passenger trains limited to the rails the trains can ride on. • Taxi cab can be called to appear anywhere and take us anywhere.
  • 38. EXPLORATION IS A MINDSET Exploratory Testing is a way of thinking about questions and answers. Exploratory Testing does not live outside of automated testing. Automation and Computer Aided Testing can be central to exploration.
  • 39. ZEN MIND, BEGINNERS MIND Domain Expert Level Exploratory Testing Novice Level Exploratory Testing They are different. Source of mental friction is knowing the eccentricities of your application and when they can get in the way of effective testing and exploration.
  • 40. USE PERSONAS TO VISUALIZE GOALS Put yourself into the shoes of as many potential customers of our product as I can. That means understanding the interests, desires and ways of interaction of many different groups of people. The ways that they interact with the devices they use to discover content/interact is very different.
  • 41. SESSION BASED TECHNIQUES • Developing small charters and executing on them in set periods of time. • Focus testing areas that are most important. • Focus on a small sub system. Keep our testing fresh, our eyes and minds focused, work on what's most important.
  • 42. CONCLUSION TDD focuses on writing correct and clean code. ATDD focuses on making sure the functionality being delivered makes good on the goals and promises made to our customers. Automation happens at many levels. Exploration happens at all of these levels, and is an approach and a mindset, not a methodology. Working together, the odds of quality software are much more heavily in our favor.
  • 43. QUESTIONS ???

Hinweis der Redaktion

  1. “by repeatedly running the same tests, we will not only not find new bugs, but thebugs that are left will be more resistant to the tests we do perform [Beizer, 1990].
  2. Developers have an exploratory mindset, but at the moment, ATDD explores to discover the real requirements. TDD is not exploratory in the same way. There is an aspect that is exploratory, the first TDD test will lead you to the nest test, the small tests lead you to TDD.
  3. .