SlideShare a Scribd company logo
1 of 34
Download to read offline
Specification by Example with GUI tests - 
How could that work? 
Emily Bache, Bache Consulting & Pagero 
Geoff Bache, Jeppesen 
@esconfs 
#esconfs
Geoff & Emily Bache - Specification By Example With GUI Tests-How Could That Work - EuroSTAR 2013
Specification by Example 
with Rich-Client application? 
3
Jeppesen 
 Agile transition underway 
 next-generation Crew Management System 
4
5
Specification by Example 
6
Specification by Example 
 Gojko Adzic’s book 
 Collaborative workshops 
 Define Example Scenarios BEFORE 
build code 
7
Agile Requirements 
User Story + Conversation + Examples 
= Requirement 
From “Agile Testing” by Crispin, Gregory 
8 
aka Scenarios
Scenario -> Regression test 
 BEFORE code is written, it’s a requirement 
specification 
 AFTER code is written it’s a regression test 
Important to preserve the language & format 
9 
Living Documentation
GUI testing 
with Record - Replay 
10
Recorded GUI Tests 
 Click around the GUI like a user 
would 
 Record a script 
 Re-play the script to regression 
test 
11 
Assumes the GUI is already built
Recorded Scripts 
Easy to create, hard to maintain 
12
Page Object Pattern 
13 
Test Case Scripts 
Hand Coded 
Page Objects 
Hand Coded 
System Under Test
GUI testing 
with Cucumber, Fitnesse etc 
14
Using Cucumber 
Feature 
http://cukes.info 
Step Definitions 
System Under Test (SUT)
Using Fitnesse 
16 
http://fitnesse.org
“Domain Language” Tests 
Domain Language 
Scenario or Table 
Test Fixture 
“Glue Code” 
“Step Definitions” 
System Under Test 
17 
Hand Coded 
Hand Coded
Bypass GUI? 
Domain Language 
Scenario 
Test Fixture 
Bypass GUI, test 
core system directly 
GUI 
18 
Under-the-GUI API
19
Demo: 
building a new feature 
with StoryText 
20
 Open Source 
 Development paid for by Jeppesen 
 supports Java Swing, Eclipse RCP, PyGTK, Tkinter, wxPython 
 http://texttest.org 
21
TextTest tests have two parts 
Use Case GUI Log 
List of user actions: 
Domain language 
Recorded text: 
Contents of GUI 
22
TextTest - test fixtures 
 Create “use case” part of text by Record session in UI 
 Name your actions: snippets of domain language 
 UI Map - domain language mapped to actions 
23
Compose a Domain Language 
24 
 Group several user actions and name them 
 Match the language of the specification workshop 
 Re-usable terms for many tests
Record the Test Fixture/Step definitions 
Use Case 
(one per test) 
“UI Map” + “shortcuts” 
(shared by whole suite) 
System Under Test 
25 
Recorded 
Configured
StoryText tests 
Use Case GUI Log 
List of user actions: 
Domain language 
Recorded text: 
Contents of GUI 
26
The GUI log 
 “Assert” part of the test 
 Auto-generated by 
StoryText 
 ASCII art represents UI 
state 
27
StoryText tests 
Use Case GUI Log 
Plain Text: search, store, manipulate, diff, version... 
28
29
Sample Use-Case : 
Undo Service Type changes 
30 
open default plan and show rosters 
change service type of activity JPO 2537 for 
Brogan to M 
undo 
wait for completion of undo 
close and discard changes
Crew Management System 
31
Assert Everything by default 
 Log of absolutely everything that changes in the GUI 
 Each test defines filters to focus on interesting parts 
 Often catch errors the test wasn’t designed to find 
32
Limitations of the approach 
 Only supports certain GUI libraries 
 Maintainability of tests depends on good test 
design 
◦ filter GUI log carefully 
33
Conclusions 
 Specification by Example - automating Domain 
Language scenarios needs fixture code 
◦ TextTest “records” the fixtures 
 GUI intensive applications - need to check 
carefully what’s on the screen 
◦ TextTest takes “screen shots” as ASCII art 
34

More Related Content

Viewers also liked

Zeger Van Hese - Testing in the Age of Distraction, The Importance of (De)foc...
Zeger Van Hese - Testing in the Age of Distraction, The Importance of (De)foc...Zeger Van Hese - Testing in the Age of Distraction, The Importance of (De)foc...
Zeger Van Hese - Testing in the Age of Distraction, The Importance of (De)foc...TEST Huddle
 
Remi Hansen - Test Strategies Are 90% Waste - EuroSTAR 2013
Remi Hansen - Test Strategies Are 90% Waste - EuroSTAR 2013Remi Hansen - Test Strategies Are 90% Waste - EuroSTAR 2013
Remi Hansen - Test Strategies Are 90% Waste - EuroSTAR 2013TEST Huddle
 
Albert Witteveen - With Cloud Computing Who Needs Performance Testing
Albert Witteveen - With Cloud Computing Who Needs Performance TestingAlbert Witteveen - With Cloud Computing Who Needs Performance Testing
Albert Witteveen - With Cloud Computing Who Needs Performance TestingTEST Huddle
 
Rob Lambert - Moving To Weekly Releases - EuroSTAR 2013
Rob Lambert - Moving To Weekly Releases - EuroSTAR 2013Rob Lambert - Moving To Weekly Releases - EuroSTAR 2013
Rob Lambert - Moving To Weekly Releases - EuroSTAR 2013TEST Huddle
 
Jeanne Hofmans & Eduard Hartog - How to Test a Tunnel - EuroSTAR 2013
Jeanne Hofmans & Eduard Hartog - How to Test a Tunnel - EuroSTAR 2013Jeanne Hofmans & Eduard Hartog - How to Test a Tunnel - EuroSTAR 2013
Jeanne Hofmans & Eduard Hartog - How to Test a Tunnel - EuroSTAR 2013TEST Huddle
 
Pekka Marjamaki - Testing Me - EuroSTAR 2013
Pekka Marjamaki - Testing Me - EuroSTAR 2013Pekka Marjamaki - Testing Me - EuroSTAR 2013
Pekka Marjamaki - Testing Me - EuroSTAR 2013TEST Huddle
 
Morten Hougaard - Autism, A Benefit For Testing - EuroSTAR 2013
Morten Hougaard - Autism, A Benefit For Testing - EuroSTAR 2013Morten Hougaard - Autism, A Benefit For Testing - EuroSTAR 2013
Morten Hougaard - Autism, A Benefit For Testing - EuroSTAR 2013TEST Huddle
 
Tony Bruce - One More question.... - EuroSTAR 2013
Tony Bruce - One More question.... -  EuroSTAR 2013Tony Bruce - One More question.... -  EuroSTAR 2013
Tony Bruce - One More question.... - EuroSTAR 2013TEST Huddle
 
Jouri Dufour - How About Security Testing - EuroSTAR 2013
Jouri Dufour - How About Security Testing - EuroSTAR 2013Jouri Dufour - How About Security Testing - EuroSTAR 2013
Jouri Dufour - How About Security Testing - EuroSTAR 2013TEST Huddle
 
Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013
Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013
Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013TEST Huddle
 
Bob Harnisch & Tim Koomen - Mixing Waterfall, Agile & Outsourcing at Dutch Ra...
Bob Harnisch & Tim Koomen - Mixing Waterfall, Agile & Outsourcing at Dutch Ra...Bob Harnisch & Tim Koomen - Mixing Waterfall, Agile & Outsourcing at Dutch Ra...
Bob Harnisch & Tim Koomen - Mixing Waterfall, Agile & Outsourcing at Dutch Ra...TEST Huddle
 
Pradeep Soundararajan - Testing for Sales and Competitor Analysis - EuroSTAR ...
Pradeep Soundararajan - Testing for Sales and Competitor Analysis - EuroSTAR ...Pradeep Soundararajan - Testing for Sales and Competitor Analysis - EuroSTAR ...
Pradeep Soundararajan - Testing for Sales and Competitor Analysis - EuroSTAR ...TEST Huddle
 
Jackie McDougall - Testing on Trial - EuroSTAR 2013
Jackie McDougall - Testing on Trial - EuroSTAR 2013Jackie McDougall - Testing on Trial - EuroSTAR 2013
Jackie McDougall - Testing on Trial - EuroSTAR 2013TEST Huddle
 
Markus Gartner - Beyond Testing - EuroSTAR 2012
Markus Gartner - Beyond Testing - EuroSTAR 2012Markus Gartner - Beyond Testing - EuroSTAR 2012
Markus Gartner - Beyond Testing - EuroSTAR 2012TEST Huddle
 
Alexandra Schladebeck - What Agile Teams Can Learn From World of Warcraft - E...
Alexandra Schladebeck - What Agile Teams Can Learn From World of Warcraft - E...Alexandra Schladebeck - What Agile Teams Can Learn From World of Warcraft - E...
Alexandra Schladebeck - What Agile Teams Can Learn From World of Warcraft - E...TEST Huddle
 
Andy Glover - Testing is evolving, but where is the evidence - EuroSTAR 2012
Andy Glover - Testing is evolving, but where is the evidence - EuroSTAR 2012Andy Glover - Testing is evolving, but where is the evidence - EuroSTAR 2012
Andy Glover - Testing is evolving, but where is the evidence - EuroSTAR 2012TEST Huddle
 
Ruud Teunissen - The Awful Truth About Estimation, Have I Been Wrong All Alon...
Ruud Teunissen - The Awful Truth About Estimation, Have I Been Wrong All Alon...Ruud Teunissen - The Awful Truth About Estimation, Have I Been Wrong All Alon...
Ruud Teunissen - The Awful Truth About Estimation, Have I Been Wrong All Alon...TEST Huddle
 
Rajesh Mathur - Testing in a Challenging Environment - EuroSTAR 2013
Rajesh Mathur - Testing in a Challenging Environment - EuroSTAR 2013Rajesh Mathur - Testing in a Challenging Environment - EuroSTAR 2013
Rajesh Mathur - Testing in a Challenging Environment - EuroSTAR 2013TEST Huddle
 
Ard Kramer & Joep Lobee - This Is Not a Success Story - EuroSTAR 2013
Ard Kramer & Joep Lobee - This Is Not a Success Story - EuroSTAR 2013Ard Kramer & Joep Lobee - This Is Not a Success Story - EuroSTAR 2013
Ard Kramer & Joep Lobee - This Is Not a Success Story - EuroSTAR 2013TEST Huddle
 
Adrian Rapan - Questioning Acceptance Tests - EuroSTAR 2013
Adrian Rapan - Questioning Acceptance Tests - EuroSTAR 2013Adrian Rapan - Questioning Acceptance Tests - EuroSTAR 2013
Adrian Rapan - Questioning Acceptance Tests - EuroSTAR 2013TEST Huddle
 

Viewers also liked (20)

Zeger Van Hese - Testing in the Age of Distraction, The Importance of (De)foc...
Zeger Van Hese - Testing in the Age of Distraction, The Importance of (De)foc...Zeger Van Hese - Testing in the Age of Distraction, The Importance of (De)foc...
Zeger Van Hese - Testing in the Age of Distraction, The Importance of (De)foc...
 
Remi Hansen - Test Strategies Are 90% Waste - EuroSTAR 2013
Remi Hansen - Test Strategies Are 90% Waste - EuroSTAR 2013Remi Hansen - Test Strategies Are 90% Waste - EuroSTAR 2013
Remi Hansen - Test Strategies Are 90% Waste - EuroSTAR 2013
 
Albert Witteveen - With Cloud Computing Who Needs Performance Testing
Albert Witteveen - With Cloud Computing Who Needs Performance TestingAlbert Witteveen - With Cloud Computing Who Needs Performance Testing
Albert Witteveen - With Cloud Computing Who Needs Performance Testing
 
Rob Lambert - Moving To Weekly Releases - EuroSTAR 2013
Rob Lambert - Moving To Weekly Releases - EuroSTAR 2013Rob Lambert - Moving To Weekly Releases - EuroSTAR 2013
Rob Lambert - Moving To Weekly Releases - EuroSTAR 2013
 
Jeanne Hofmans & Eduard Hartog - How to Test a Tunnel - EuroSTAR 2013
Jeanne Hofmans & Eduard Hartog - How to Test a Tunnel - EuroSTAR 2013Jeanne Hofmans & Eduard Hartog - How to Test a Tunnel - EuroSTAR 2013
Jeanne Hofmans & Eduard Hartog - How to Test a Tunnel - EuroSTAR 2013
 
Pekka Marjamaki - Testing Me - EuroSTAR 2013
Pekka Marjamaki - Testing Me - EuroSTAR 2013Pekka Marjamaki - Testing Me - EuroSTAR 2013
Pekka Marjamaki - Testing Me - EuroSTAR 2013
 
Morten Hougaard - Autism, A Benefit For Testing - EuroSTAR 2013
Morten Hougaard - Autism, A Benefit For Testing - EuroSTAR 2013Morten Hougaard - Autism, A Benefit For Testing - EuroSTAR 2013
Morten Hougaard - Autism, A Benefit For Testing - EuroSTAR 2013
 
Tony Bruce - One More question.... - EuroSTAR 2013
Tony Bruce - One More question.... -  EuroSTAR 2013Tony Bruce - One More question.... -  EuroSTAR 2013
Tony Bruce - One More question.... - EuroSTAR 2013
 
Jouri Dufour - How About Security Testing - EuroSTAR 2013
Jouri Dufour - How About Security Testing - EuroSTAR 2013Jouri Dufour - How About Security Testing - EuroSTAR 2013
Jouri Dufour - How About Security Testing - EuroSTAR 2013
 
Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013
Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013
Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013
 
Bob Harnisch & Tim Koomen - Mixing Waterfall, Agile & Outsourcing at Dutch Ra...
Bob Harnisch & Tim Koomen - Mixing Waterfall, Agile & Outsourcing at Dutch Ra...Bob Harnisch & Tim Koomen - Mixing Waterfall, Agile & Outsourcing at Dutch Ra...
Bob Harnisch & Tim Koomen - Mixing Waterfall, Agile & Outsourcing at Dutch Ra...
 
Pradeep Soundararajan - Testing for Sales and Competitor Analysis - EuroSTAR ...
Pradeep Soundararajan - Testing for Sales and Competitor Analysis - EuroSTAR ...Pradeep Soundararajan - Testing for Sales and Competitor Analysis - EuroSTAR ...
Pradeep Soundararajan - Testing for Sales and Competitor Analysis - EuroSTAR ...
 
Jackie McDougall - Testing on Trial - EuroSTAR 2013
Jackie McDougall - Testing on Trial - EuroSTAR 2013Jackie McDougall - Testing on Trial - EuroSTAR 2013
Jackie McDougall - Testing on Trial - EuroSTAR 2013
 
Markus Gartner - Beyond Testing - EuroSTAR 2012
Markus Gartner - Beyond Testing - EuroSTAR 2012Markus Gartner - Beyond Testing - EuroSTAR 2012
Markus Gartner - Beyond Testing - EuroSTAR 2012
 
Alexandra Schladebeck - What Agile Teams Can Learn From World of Warcraft - E...
Alexandra Schladebeck - What Agile Teams Can Learn From World of Warcraft - E...Alexandra Schladebeck - What Agile Teams Can Learn From World of Warcraft - E...
Alexandra Schladebeck - What Agile Teams Can Learn From World of Warcraft - E...
 
Andy Glover - Testing is evolving, but where is the evidence - EuroSTAR 2012
Andy Glover - Testing is evolving, but where is the evidence - EuroSTAR 2012Andy Glover - Testing is evolving, but where is the evidence - EuroSTAR 2012
Andy Glover - Testing is evolving, but where is the evidence - EuroSTAR 2012
 
Ruud Teunissen - The Awful Truth About Estimation, Have I Been Wrong All Alon...
Ruud Teunissen - The Awful Truth About Estimation, Have I Been Wrong All Alon...Ruud Teunissen - The Awful Truth About Estimation, Have I Been Wrong All Alon...
Ruud Teunissen - The Awful Truth About Estimation, Have I Been Wrong All Alon...
 
Rajesh Mathur - Testing in a Challenging Environment - EuroSTAR 2013
Rajesh Mathur - Testing in a Challenging Environment - EuroSTAR 2013Rajesh Mathur - Testing in a Challenging Environment - EuroSTAR 2013
Rajesh Mathur - Testing in a Challenging Environment - EuroSTAR 2013
 
Ard Kramer & Joep Lobee - This Is Not a Success Story - EuroSTAR 2013
Ard Kramer & Joep Lobee - This Is Not a Success Story - EuroSTAR 2013Ard Kramer & Joep Lobee - This Is Not a Success Story - EuroSTAR 2013
Ard Kramer & Joep Lobee - This Is Not a Success Story - EuroSTAR 2013
 
Adrian Rapan - Questioning Acceptance Tests - EuroSTAR 2013
Adrian Rapan - Questioning Acceptance Tests - EuroSTAR 2013Adrian Rapan - Questioning Acceptance Tests - EuroSTAR 2013
Adrian Rapan - Questioning Acceptance Tests - EuroSTAR 2013
 

Similar to Geoff & Emily Bache - Specification By Example With GUI Tests-How Could That Work - EuroSTAR 2013

Build Great Networked APIs with Swift, OpenAPI, and gRPC
Build Great Networked APIs with Swift, OpenAPI, and gRPCBuild Great Networked APIs with Swift, OpenAPI, and gRPC
Build Great Networked APIs with Swift, OpenAPI, and gRPCTim Burks
 
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...Sauce Labs
 
YuryMakedonov_GUI_TestAutomation_QAI_Canada_2007_14h
YuryMakedonov_GUI_TestAutomation_QAI_Canada_2007_14hYuryMakedonov_GUI_TestAutomation_QAI_Canada_2007_14h
YuryMakedonov_GUI_TestAutomation_QAI_Canada_2007_14hYury M
 
Ad107 - Enhance Your Existing Applications with XPages
Ad107 - Enhance Your Existing Applications with XPagesAd107 - Enhance Your Existing Applications with XPages
Ad107 - Enhance Your Existing Applications with XPagesddrschiw
 
Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...
Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...
Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...Riccardo Coppola
 
.NET 4 Demystified - Sandeep Joshi
.NET 4 Demystified - Sandeep Joshi.NET 4 Demystified - Sandeep Joshi
.NET 4 Demystified - Sandeep JoshiSpiffy
 
ATAGTR2017 Protractor Cucumber BDD Approach
ATAGTR2017 Protractor Cucumber BDD ApproachATAGTR2017 Protractor Cucumber BDD Approach
ATAGTR2017 Protractor Cucumber BDD ApproachAgile Testing Alliance
 
Functional tests with the FEST framework
Functional tests with the FEST frameworkFunctional tests with the FEST framework
Functional tests with the FEST frameworkDominik Dary
 
Tell Me Quando - Implementing Feature Flags
Tell Me Quando - Implementing Feature FlagsTell Me Quando - Implementing Feature Flags
Tell Me Quando - Implementing Feature FlagsJorge Ortiz
 
Rich GUI Testing: Swing and JavaFX
Rich GUI Testing: Swing and JavaFXRich GUI Testing: Swing and JavaFX
Rich GUI Testing: Swing and JavaFXAlex Ruiz
 
Rich GUI Testing: Swing and JavaFX
Rich GUI Testing: Swing and JavaFXRich GUI Testing: Swing and JavaFX
Rich GUI Testing: Swing and JavaFXAlex Ruiz
 
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech UpdateAdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Updatejamieayre
 
How to develop asp web applications
How to develop asp web applicationsHow to develop asp web applications
How to develop asp web applicationsDeepankar Pathak
 
Developing an ASP.NET Web Application
Developing an ASP.NET Web ApplicationDeveloping an ASP.NET Web Application
Developing an ASP.NET Web ApplicationRishi Kothari
 
Introduzione a junit + integrazione con archibus
Introduzione a junit + integrazione con archibusIntroduzione a junit + integrazione con archibus
Introduzione a junit + integrazione con archibusDavide Fella
 
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...Mickael Istria
 
[Presentation] Automated Model-Based Android GUI Testing using Multi-Level GU...
[Presentation] Automated Model-Based Android GUI Testing using Multi-Level GU...[Presentation] Automated Model-Based Android GUI Testing using Multi-Level GU...
[Presentation] Automated Model-Based Android GUI Testing using Multi-Level GU...Young-Min Baek
 

Similar to Geoff & Emily Bache - Specification By Example With GUI Tests-How Could That Work - EuroSTAR 2013 (20)

Build Great Networked APIs with Swift, OpenAPI, and gRPC
Build Great Networked APIs with Swift, OpenAPI, and gRPCBuild Great Networked APIs with Swift, OpenAPI, and gRPC
Build Great Networked APIs with Swift, OpenAPI, and gRPC
 
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...
 
Gherkin /BDD intro
Gherkin /BDD introGherkin /BDD intro
Gherkin /BDD intro
 
YuryMakedonov_GUI_TestAutomation_QAI_Canada_2007_14h
YuryMakedonov_GUI_TestAutomation_QAI_Canada_2007_14hYuryMakedonov_GUI_TestAutomation_QAI_Canada_2007_14h
YuryMakedonov_GUI_TestAutomation_QAI_Canada_2007_14h
 
Ad107 - Enhance Your Existing Applications with XPages
Ad107 - Enhance Your Existing Applications with XPagesAd107 - Enhance Your Existing Applications with XPages
Ad107 - Enhance Your Existing Applications with XPages
 
Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...
Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...
Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...
 
.NET 4 Demystified - Sandeep Joshi
.NET 4 Demystified - Sandeep Joshi.NET 4 Demystified - Sandeep Joshi
.NET 4 Demystified - Sandeep Joshi
 
ATAGTR2017 Protractor Cucumber BDD Approach
ATAGTR2017 Protractor Cucumber BDD ApproachATAGTR2017 Protractor Cucumber BDD Approach
ATAGTR2017 Protractor Cucumber BDD Approach
 
Functional tests with the FEST framework
Functional tests with the FEST frameworkFunctional tests with the FEST framework
Functional tests with the FEST framework
 
Tell Me Quando - Implementing Feature Flags
Tell Me Quando - Implementing Feature FlagsTell Me Quando - Implementing Feature Flags
Tell Me Quando - Implementing Feature Flags
 
Birendra_resume
Birendra_resumeBirendra_resume
Birendra_resume
 
2.5 gui
2.5 gui2.5 gui
2.5 gui
 
Rich GUI Testing: Swing and JavaFX
Rich GUI Testing: Swing and JavaFXRich GUI Testing: Swing and JavaFX
Rich GUI Testing: Swing and JavaFX
 
Rich GUI Testing: Swing and JavaFX
Rich GUI Testing: Swing and JavaFXRich GUI Testing: Swing and JavaFX
Rich GUI Testing: Swing and JavaFX
 
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech UpdateAdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
 
How to develop asp web applications
How to develop asp web applicationsHow to develop asp web applications
How to develop asp web applications
 
Developing an ASP.NET Web Application
Developing an ASP.NET Web ApplicationDeveloping an ASP.NET Web Application
Developing an ASP.NET Web Application
 
Introduzione a junit + integrazione con archibus
Introduzione a junit + integrazione con archibusIntroduzione a junit + integrazione con archibus
Introduzione a junit + integrazione con archibus
 
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...
 
[Presentation] Automated Model-Based Android GUI Testing using Multi-Level GU...
[Presentation] Automated Model-Based Android GUI Testing using Multi-Level GU...[Presentation] Automated Model-Based Android GUI Testing using Multi-Level GU...
[Presentation] Automated Model-Based Android GUI Testing using Multi-Level GU...
 

More from TEST Huddle

Why We Need Diversity in Testing- Accenture
Why We Need Diversity in Testing- AccentureWhy We Need Diversity in Testing- Accenture
Why We Need Diversity in Testing- AccentureTEST Huddle
 
Keys to continuous testing for faster delivery euro star webinar
Keys to continuous testing for faster delivery euro star webinar Keys to continuous testing for faster delivery euro star webinar
Keys to continuous testing for faster delivery euro star webinar TEST Huddle
 
Why you Shouldnt Automated But You Will Anyway
Why you Shouldnt Automated But You Will Anyway Why you Shouldnt Automated But You Will Anyway
Why you Shouldnt Automated But You Will Anyway TEST Huddle
 
Being a Tester in Scrum
Being a Tester in ScrumBeing a Tester in Scrum
Being a Tester in ScrumTEST Huddle
 
Leveraging Visual Testing with Your Functional Tests
Leveraging Visual Testing with Your Functional TestsLeveraging Visual Testing with Your Functional Tests
Leveraging Visual Testing with Your Functional TestsTEST Huddle
 
Using Test Trees to get an Overview of Test Work
Using Test Trees to get an Overview of Test WorkUsing Test Trees to get an Overview of Test Work
Using Test Trees to get an Overview of Test WorkTEST Huddle
 
Big Data: The Magic to Attain New Heights
Big Data:  The Magic to Attain New HeightsBig Data:  The Magic to Attain New Heights
Big Data: The Magic to Attain New HeightsTEST Huddle
 
Will Robots Replace Testers?
Will Robots Replace Testers?Will Robots Replace Testers?
Will Robots Replace Testers?TEST Huddle
 
TDD For The Rest Of Us
TDD For The Rest Of UsTDD For The Rest Of Us
TDD For The Rest Of UsTEST Huddle
 
Scaling Agile with LeSS (Large Scale Scrum)
Scaling Agile with LeSS (Large Scale Scrum)Scaling Agile with LeSS (Large Scale Scrum)
Scaling Agile with LeSS (Large Scale Scrum)TEST Huddle
 
Creating Agile Test Strategies for Larger Enterprises
Creating Agile Test Strategies for Larger EnterprisesCreating Agile Test Strategies for Larger Enterprises
Creating Agile Test Strategies for Larger EnterprisesTEST Huddle
 
Is There A Risk?
Is There A Risk?Is There A Risk?
Is There A Risk?TEST Huddle
 
Are Your Tests Well-Travelled? Thoughts About Test Coverage
Are Your Tests Well-Travelled? Thoughts About Test CoverageAre Your Tests Well-Travelled? Thoughts About Test Coverage
Are Your Tests Well-Travelled? Thoughts About Test CoverageTEST Huddle
 
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
 
Do we need testers on agile teams?
Do we need testers on agile teams?Do we need testers on agile teams?
Do we need testers on agile teams?TEST Huddle
 
How to use selenium successfully
How to use selenium successfullyHow to use selenium successfully
How to use selenium successfullyTEST Huddle
 
Testers & Teams on the Agile Fluency™ Journey
Testers & Teams on the Agile Fluency™ Journey Testers & Teams on the Agile Fluency™ Journey
Testers & Teams on the Agile Fluency™ Journey TEST Huddle
 
Practical Test Strategy Using Heuristics
Practical Test Strategy Using HeuristicsPractical Test Strategy Using Heuristics
Practical Test Strategy Using HeuristicsTEST Huddle
 
Thinking Through Your Role
Thinking Through Your RoleThinking Through Your Role
Thinking Through Your RoleTEST Huddle
 
Using Selenium 3 0
Using Selenium 3 0Using Selenium 3 0
Using Selenium 3 0TEST Huddle
 

More from TEST Huddle (20)

Why We Need Diversity in Testing- Accenture
Why We Need Diversity in Testing- AccentureWhy We Need Diversity in Testing- Accenture
Why We Need Diversity in Testing- Accenture
 
Keys to continuous testing for faster delivery euro star webinar
Keys to continuous testing for faster delivery euro star webinar Keys to continuous testing for faster delivery euro star webinar
Keys to continuous testing for faster delivery euro star webinar
 
Why you Shouldnt Automated But You Will Anyway
Why you Shouldnt Automated But You Will Anyway Why you Shouldnt Automated But You Will Anyway
Why you Shouldnt Automated But You Will Anyway
 
Being a Tester in Scrum
Being a Tester in ScrumBeing a Tester in Scrum
Being a Tester in Scrum
 
Leveraging Visual Testing with Your Functional Tests
Leveraging Visual Testing with Your Functional TestsLeveraging Visual Testing with Your Functional Tests
Leveraging Visual Testing with Your Functional Tests
 
Using Test Trees to get an Overview of Test Work
Using Test Trees to get an Overview of Test WorkUsing Test Trees to get an Overview of Test Work
Using Test Trees to get an Overview of Test Work
 
Big Data: The Magic to Attain New Heights
Big Data:  The Magic to Attain New HeightsBig Data:  The Magic to Attain New Heights
Big Data: The Magic to Attain New Heights
 
Will Robots Replace Testers?
Will Robots Replace Testers?Will Robots Replace Testers?
Will Robots Replace Testers?
 
TDD For The Rest Of Us
TDD For The Rest Of UsTDD For The Rest Of Us
TDD For The Rest Of Us
 
Scaling Agile with LeSS (Large Scale Scrum)
Scaling Agile with LeSS (Large Scale Scrum)Scaling Agile with LeSS (Large Scale Scrum)
Scaling Agile with LeSS (Large Scale Scrum)
 
Creating Agile Test Strategies for Larger Enterprises
Creating Agile Test Strategies for Larger EnterprisesCreating Agile Test Strategies for Larger Enterprises
Creating Agile Test Strategies for Larger Enterprises
 
Is There A Risk?
Is There A Risk?Is There A Risk?
Is There A Risk?
 
Are Your Tests Well-Travelled? Thoughts About Test Coverage
Are Your Tests Well-Travelled? Thoughts About Test CoverageAre Your Tests Well-Travelled? Thoughts About Test Coverage
Are Your Tests Well-Travelled? Thoughts About Test Coverage
 
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
 
Do we need testers on agile teams?
Do we need testers on agile teams?Do we need testers on agile teams?
Do we need testers on agile teams?
 
How to use selenium successfully
How to use selenium successfullyHow to use selenium successfully
How to use selenium successfully
 
Testers & Teams on the Agile Fluency™ Journey
Testers & Teams on the Agile Fluency™ Journey Testers & Teams on the Agile Fluency™ Journey
Testers & Teams on the Agile Fluency™ Journey
 
Practical Test Strategy Using Heuristics
Practical Test Strategy Using HeuristicsPractical Test Strategy Using Heuristics
Practical Test Strategy Using Heuristics
 
Thinking Through Your Role
Thinking Through Your RoleThinking Through Your Role
Thinking Through Your Role
 
Using Selenium 3 0
Using Selenium 3 0Using Selenium 3 0
Using Selenium 3 0
 

Recently uploaded

AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxYounusS2
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceMartin Humpolec
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataSafe Software
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServiceRenan Moreira de Oliveira
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 

Recently uploaded (20)

AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptx
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your Salesforce
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 

Geoff & Emily Bache - Specification By Example With GUI Tests-How Could That Work - EuroSTAR 2013

  • 1. Specification by Example with GUI tests - How could that work? Emily Bache, Bache Consulting & Pagero Geoff Bache, Jeppesen @esconfs #esconfs
  • 3. Specification by Example with Rich-Client application? 3
  • 4. Jeppesen  Agile transition underway  next-generation Crew Management System 4
  • 5. 5
  • 7. Specification by Example  Gojko Adzic’s book  Collaborative workshops  Define Example Scenarios BEFORE build code 7
  • 8. Agile Requirements User Story + Conversation + Examples = Requirement From “Agile Testing” by Crispin, Gregory 8 aka Scenarios
  • 9. Scenario -> Regression test  BEFORE code is written, it’s a requirement specification  AFTER code is written it’s a regression test Important to preserve the language & format 9 Living Documentation
  • 10. GUI testing with Record - Replay 10
  • 11. Recorded GUI Tests  Click around the GUI like a user would  Record a script  Re-play the script to regression test 11 Assumes the GUI is already built
  • 12. Recorded Scripts Easy to create, hard to maintain 12
  • 13. Page Object Pattern 13 Test Case Scripts Hand Coded Page Objects Hand Coded System Under Test
  • 14. GUI testing with Cucumber, Fitnesse etc 14
  • 15. Using Cucumber Feature http://cukes.info Step Definitions System Under Test (SUT)
  • 16. Using Fitnesse 16 http://fitnesse.org
  • 17. “Domain Language” Tests Domain Language Scenario or Table Test Fixture “Glue Code” “Step Definitions” System Under Test 17 Hand Coded Hand Coded
  • 18. Bypass GUI? Domain Language Scenario Test Fixture Bypass GUI, test core system directly GUI 18 Under-the-GUI API
  • 19. 19
  • 20. Demo: building a new feature with StoryText 20
  • 21.  Open Source  Development paid for by Jeppesen  supports Java Swing, Eclipse RCP, PyGTK, Tkinter, wxPython  http://texttest.org 21
  • 22. TextTest tests have two parts Use Case GUI Log List of user actions: Domain language Recorded text: Contents of GUI 22
  • 23. TextTest - test fixtures  Create “use case” part of text by Record session in UI  Name your actions: snippets of domain language  UI Map - domain language mapped to actions 23
  • 24. Compose a Domain Language 24  Group several user actions and name them  Match the language of the specification workshop  Re-usable terms for many tests
  • 25. Record the Test Fixture/Step definitions Use Case (one per test) “UI Map” + “shortcuts” (shared by whole suite) System Under Test 25 Recorded Configured
  • 26. StoryText tests Use Case GUI Log List of user actions: Domain language Recorded text: Contents of GUI 26
  • 27. The GUI log  “Assert” part of the test  Auto-generated by StoryText  ASCII art represents UI state 27
  • 28. StoryText tests Use Case GUI Log Plain Text: search, store, manipulate, diff, version... 28
  • 29. 29
  • 30. Sample Use-Case : Undo Service Type changes 30 open default plan and show rosters change service type of activity JPO 2537 for Brogan to M undo wait for completion of undo close and discard changes
  • 32. Assert Everything by default  Log of absolutely everything that changes in the GUI  Each test defines filters to focus on interesting parts  Often catch errors the test wasn’t designed to find 32
  • 33. Limitations of the approach  Only supports certain GUI libraries  Maintainability of tests depends on good test design ◦ filter GUI log carefully 33
  • 34. Conclusions  Specification by Example - automating Domain Language scenarios needs fixture code ◦ TextTest “records” the fixtures  GUI intensive applications - need to check carefully what’s on the screen ◦ TextTest takes “screen shots” as ASCII art 34