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
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 Specification by Example GUI tests - How could that work

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 Specification by Example GUI tests - How could that work (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

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Specification by Example GUI tests - How could that work

  • 1. Specification by Example with GUI tests - How could that work? Emily Bache, Bache Consulting & Pagero Geoff Bache, Jeppesen @esconfs #esconfs
  • 2.
  • 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