SlideShare a Scribd company logo
@Wakaleo @JanMolak#SerenityBDD
Screenplay

Next generation automated
acceptance testing
AUTHOR OF ‘BDD IN ACTION’
@wakaleo
www.johnfergusonsmart.com
@Wakaleo @JanMolak#SerenityBDD
Sustainable test automation
to deliver features that matter
@Wakaleo @JanMolak#SerenityBDD
Learn
Measure
Build
@Wakaleo @JanMolak#SerenityBDD
Requirements
Discovery
Automation and
Feedback
Software
Craftsmanship
Learn Build
Measure
@Wakaleo @JanMolak#SerenityBDD
Requirements
Discovery
Automation and
Feedback
Software
Craftsmanship
Learn Build
Measure
@Wakaleo @JanMolak#SerenityBDD
source:
- 44% - “Out of Control - Why Control Systems Go Wrong and How to Prevent Failure”
- 56% - “An Information Systems Manifesto”
- 80% - “Requirements: A quick and inexpensive way to improve testing”
44-80%of all defects are caused by unclear,
ambiguous or incorrect requirements
@Wakaleo @JanMolak#SerenityBDD
Behaviour-Driven Development
@Wakaleo @JanMolak#SerenityBDD
Behaviour-Driven Development
Domain-Driven Design
@Wakaleo @JanMolak#SerenityBDD
Domain-Driven Design
Behaviour-Driven Development
User-Centred Design
@Wakaleo @JanMolak#SerenityBDD
Building the
application
Testing the
application
When we are…
We model…
The domain
How the user interacts
with the application
Account
Purchase
Product
Open an account
Look for a
product
Completes a
purchase
NOUNS VERBS
The key
concepts
are…
@Wakaleo @JanMolak#SerenityBDD #Devoxx
HOW
Enter the value ‘Get a
coffee’



Click on TAB
WHAT
Record a todo item
WHY
Keep a list of things I need
to do
@Wakaleo @JanMolak#SerenityBDD
Actors
Goals
Tasks
Interactions
System
have
involve
require
with the
Focus on
outstanding
items
@Wakaleo @JanMolak#SerenityBDD
Actor Goals Tasks Interactions
Press “Enter”
Type “Walk the dog”
Record things
I need to do
Mark as complete
Record an item
Filter the list
@Wakaleo @JanMolak#SerenityBDD
Feature:	Filter	the	list	to	find	items	of	interest



		In	order	to	focus	on	outstanding	items

		James	would	like	to	filter	his	todo	list	

		to	only	show	items	of	interest	
		Scenario:	Viewing	Active	items	only



		Given	James	has	a	list	with	Walk	the	dog,	Get	a	coffee

				And	he	completes	Walk	the	dog

			When	he	filters	his	list	to	show	only	Active	tasks

			Then	his	todo	list	should	contain	Get	a	coffee
@Wakaleo @JanMolak#SerenityBDD
Feature:	Filter	the	list	to	find	items	of	interest



		In	order	to	focus	on	outstanding	items	
		James	would	like	to	filter	his	todo	list		
		to	only	show	items	of	interest	
		Scenario:	Viewing	Active	items	only	
		Given	James	has	a	list	with	Walk	the	dog,	Get	a	coffee	
				And	he	completes	Walk	the	dog

			When	he	filters	his	list	to	show	only	Active	tasks

			Then	his	todo	list	should	contain	Get	a	coffee
Actor
@Wakaleo @JanMolak#SerenityBDD
Feature:	Filter	the	list	to	find	items	of	interest

		In	order	to	focus	on	outstanding	items	
		James	would	like	to	filter	his	todo	list	

		to	only	show	items	of	interest	
		Scenario:	Viewing	Active	items	only	


		Given	James	has	a	list	with	Walk	the	dog,	Get	a	coffee

				And	he	completes	Walk	the	dog

			When	he	filters	his	list	to	show	only	Active	tasks

			Then	his	todo	list	should	contain	Get	a	coffee
Actor
Goals
@Wakaleo @JanMolak#SerenityBDD
Scenario:	Viewing	Active	items	only

Given	James	has	a	list	with	Walk	the	dog,	Get	a	coffee	
			And	he	completes	Walk	the	dog

		When	he	filters	his	list	to	show	only	Active	tasks

		Then	his	todo	list	should	contain	Get	a	coffee
Actor
Goals
Tasks
@Wakaleo @JanMolak#SerenityBDD
Scenario:	Viewing	Active	items	only

	Given	James	has	a	list	with	Walk	the	dog,	Get	a	coffee	
			And	he	completes	Walk	the	dog	
		When	he	filters	his	list	to	show	only	Active	tasks

		Then	his	todo	list	should	contain	Get	a	coffee
Actor
Goals
Tasks
@Wakaleo @JanMolak#SerenityBDD
Scenario:	Viewing	Active	items	only

	Given	James	has	a	list	with	Walk	the	dog,	Get	a	coffee	
			And	he	completes	Walk	the	dog	
		When	he	filters	his	list	to	show	only	Active	tasks	
		Then	his	todo	list	should	contain	Get	a	coffee
Actor
Goals
Tasks
@Wakaleo @JanMolak#SerenityBDD
Scenario:	Viewing	Active	items	only

	Given	James	has	a	list	with	Walk	the	dog,	Get	a	coffee	
			And	he	completes	Walk	the	dog	
		When	he	filters	his	list	to	show	only	Active	tasks	
		Then	his	todo	list	should	contain	Get	a	coffee
Actor
Goals
Tasks
@Wakaleo @JanMolak#SerenityBDD
Scenario:	Viewing	Active	items	only

	Given	James	has	a	list	with	Walk	the	dog,	Get	a	coffee	
			And	he	completes	Walk	the	dog	
		When	he	filters	his	list	to	show	only	Active	tasks	
		Then	his	todo	list	should	contain	Get	a	coffee
Actor
Goals
Tasks
@Wakaleo @JanMolak#SerenityBDD
Scenario:	Viewing	Active	items	only

Given	James	has	a	list	with	Walk	the	dog,	Get	a	coffee	
			And	he	completes	Walk	the	dog

		When	he	filters	his	list	to	show	only	Active	tasks

		Then	his	todo	list	should	contain	Get	a	coffee
Actor
Goals
Tasks
@Wakaleo @JanMolak#SerenityBDD
Scenario:	Viewing	Active	items	only

Start	with	a	list	containing:	Walk	the	dog,	Get	a	coffee	
			And	he	completes	Walk	the	dog	
		When	he	filters	his	list	to	show	only	Active	tasks	
		Then	his	todo	list	should	contain	Get	a	coffee
Actor
Goals
Tasks
@Wakaleo @JanMolak#SerenityBDD
Scenario:	Viewing	Active	items	only

Start	with	a	list	containing:	Walk	the	dog,	Get	a	coffee	
			And	he	completes	Walk	the	dog	
		When	he	filters	his	list	to	show	only	Active	tasks

		Then	his	todo	list	should	contain	Get	a	coffee
Actor
Goals
Tasks
@Wakaleo @JanMolak#SerenityBDD
Scenario:	Viewing	Active	items	only

Start	with	a	list	containing:	Walk	the	dog,	Get	a	coffee	
Complete	a	todo	item	called:	Walk	the	dog	
		When	he	filters	his	list	to	show	only	Active	tasks

		Then	his	todo	list	should	contain	Get	a	coffee
Actor
Goals
Tasks
@Wakaleo @JanMolak#SerenityBDD
Scenario:	Viewing	Active	items	only

Start	with	a	list	containing:	Walk	the	dog,	Get	a	coffee	
Complete	a	todo	item	called:	Walk	the	dog	
		When	he	filters	his	list	to	show	only	Active	tasks	
		Then	his	todo	list	should	contain	Get	a	coffee
Actor
Goals
Tasks
@Wakaleo @JanMolak#SerenityBDD
Scenario:	Viewing	Active	items	only

Start	with	a	list	containing:	Walk	the	dog,	Get	a	coffee	
Complete	a	todo	item	called:	Walk	the	dog	
Filter	list	to	show	only	Active	tasks	
		Then	his	todo	list	should	contain	Get	a	coffee
Actor
Goals
Tasks
@Wakaleo @JanMolak#SerenityBDD
Scenario:	Viewing	Active	items	only

Start	with	a	list	containing:	Walk	the	dog,	Get	a	coffee	
Complete	a	todo	item	called:	Walk	the	dog	
Filter	list	to	show	only	Active	tasks	
		Then	his	todo	list	should	contain	Get	a	coffee
Actor
Goals
Tasks
@Wakaleo @JanMolak#SerenityBDD
Scenario:	Viewing	Active	items	only

Start	with	a	list	containing:	Walk	the	dog,	Get	a	coffee	
Complete	a	todo	item	called:	Walk	the	dog	
Filter	list	to	show	only	Active	tasks	
Expect	to	see:	Get	a	coffee
Actor
Goals
Tasks
@Wakaleo @JanMolak#SerenityBDD
Scenario:	Viewing	Active	items	only

Start	with	a	list	containing:	Walk	the	dog,	Get	a	coffee	
Complete	a	todo	item	called:	Walk	the	dog	
Filter	list	to	show	only	Active	tasks	
Expect	to	see:	Get	a	coffee
Actor
Goals
Tasks
@Wakaleo @JanMolak#SerenityBDD
Scenario:	Viewing	Active	items	only

Start	with	a	list	containing:	Walk	the	dog,	Get	a	coffee	
		Open	browser	on	‘todomvc.com/examples/angularjs/'	
		Resize	browser	window	to	maximum	
		Add	a	todo	item	called	‘Walk	the	dog’	
		Add	a	todo	item	called	‘Get	a	coffee’	
...
Actor
Goals
Tasks
@Wakaleo @JanMolak#SerenityBDD
To	view	Active	items	only,	James	attempts	to:

Start	with	a	list	containing:	Walk	the	dog,	Get	a	coffee	
		Open	browser	on	‘todomvc.com/examples/angularjs/'	
		Resize	browser	window	to	maximum	
		Add	a	todo	item	called	‘Walk	the	dog’	
		Add	a	todo	item	called	‘Get	a	coffee’	
				Enter	the	value	‘Get	a	coffee’	
				Hit	the	Enter	key	
...
Actor
Goals
Tasks
Interactions
Software
Craftsmanship
Automation and
Feedback
@Wakaleo @JanMolak#SerenityBDD
Requirements
Discovery
Learn Build
Measure
@Wakaleo @JanMolak#SerenityBDD
40-70%maintenance overhead for poorly-written test suites
@Wakaleo @JanMolak#SerenityBDD
Serenity BDD
and the Screenplay Pattern
@Wakaleo @JanMolak#SerenityBDD
Complete the requirements circle
Serenity BDD and the Screenplay Pattern
@Wakaleo @JanMolak#SerenityBDD
Serenity BDD and the Screenplay Pattern
User-centric
@Wakaleo @JanMolak#SerenityBDD
Serenity BDD and the Screenplay Pattern
Reusable business DSL…in code
@Wakaleo @JanMolak#SerenityBDD
Serenity BDD and the Screenplay Pattern
Designed to scale
@Wakaleo @JanMolak#SerenityBDD
Serenity BDD
and the Screenplay Pattern
in action
Focus on
outstanding
items
@Wakaleo @JanMolak#SerenityBDD
Actor Goals Tasks Interactions
Press “Enter”
Type “Walk the dog”
Mark as complete
Record an item
Filter the list
Record things
I need to do
@Wakaleo @JanMolak#SerenityBDD
		Actor	james	=	Actor.named(“James”);	actor
@Wakaleo @JanMolak#SerenityBDD
		@Managed	WebDriver	hisBrowser;	
		…	
		

		james.can(BrowseTheWeb.with(hisBrowser));	
an actor
has
abilities
@Wakaleo @JanMolak#SerenityBDD
		james.attemptsTo(

						AddATodoItem.called("Buy	some	milk")

		);	
an actor
performs
tasks
@Wakaleo @JanMolak#SerenityBDD
	@Given(“^.*	has	a	todo	list	containing	(.*)$")

	public	void	has_a_list_with(List<String>	items)	{	
				james.attemptsTo(	
								Start.withATodoListContaining(items)	
				);

	}	
an actor
performs
tasks
@Wakaleo @JanMolak#SerenityBDD
public	class	Start	implements	Task	{



		@Step("{0}	starts	with	#items")

		public	<T	extends	Actor>	void	performAs(T	actor)	{

					actor.attemptsTo(	
									Open.browserOn().the(applicationHomePage),

									AddTodoItems.called(items))	
					);

		}	
		//	...	
}
tasks
can use
other
tasks
@Wakaleo @JanMolak#SerenityBDD
public	class	AddATodoItem	implements	Task	{



		@Step("{0}	adds	a	todo	item	called:	#thingToDo")

		public	void	performAs(Actor	theActor)	{

						theActor.attemptsTo(

										Enter.theValue(thingToDo)

															.into(TodoList.WHAT_NEEDS_TO_BE_DONE)

															.thenHit(RETURN)

						);

		}	
		//	...	

}
tasks
use
inter-
actions
@Wakaleo @JanMolak#SerenityBDD
public class TodoList {
public static Target WHAT_NEEDS_TO_BE_DONE = Target.the("'What needs to be done?' field")
.locatedBy(“#new-todo");
public static Target ITEMS = Target.the("List of todo items")
.locatedBy(".view label");
public static Target ITEMS_LEFT = Target.the("Count of items left")
.locatedBy("#todo-count strong”);
public static Target FILTER = Target.the("filter")
.locatedBy("//*[@id='filters']//a[.='{0}']");
}
Page
Objects
are much
simpler
Automation and
Feedback
@Wakaleo @JanMolak#SerenityBDD
Requirements
Discovery
Software
Craftsmanship
Learn Build
Measure
@Wakaleo @JanMolak#SerenityBDD
Levels of communication
-
+
@Wakaleo @JanMolak#SerenityBDD
10,000 ft

Release Readiness
-
+
@Wakaleo @JanMolak#SerenityBDD
1000 ft

Capabilities and Features
-
+
@Wakaleo @JanMolak#SerenityBDD
100 ft

Scenarios and Steps
-
+
Focus on
outstanding
items
@Wakaleo @JanMolak#SerenityBDD
Actor Goals Capabilities Features
Keeping the
list up to date
Mark as
complete
Record an
item
Remove an
item
Focus on
important
tasks
Scenarios
Complete a
todo item
@Wakaleo @JanMolak#SerenityBDD
Release
Readiness
-
+
-
+
@Wakaleo @JanMolak#SerenityBDD
Release
Readiness
Capabilities
-
+
@Wakaleo @JanMolak#SerenityBDD
Release
Readiness
Capabilities
Features
-
+
@Wakaleo @JanMolak#SerenityBDD
Release
Readiness
Capabilities
Features
Scenarios
@Wakaleo @JanMolak#SerenityBDD
‣ “Page Objects Refactored: SOLID Steps to the Screenplay/
Journey Pattern” - DZone 

Antony Marcano, Andy Palmer, Jan Molak, John Ferguson Smart 

bit.ly/screenplay-page-objects
‣ “Beyond Page Objects: Next Generation Test Automation
with Serenity and the Screenplay Pattern” - InfoQ

John Ferguson Smart, Antony Marcano, Andy Palmer, Jan Molak
bit.ly/screenplay-introduction
Want to know more?
@Wakaleo @JanMolak#SerenityBDD
Want to know more?
Learn about Serenity:

serenity-bdd.info
Learn more about BDD and Serenity, and how we can help:

http://johnfergusonsmart.com
See the project in action:

bit.ly/screenplay-jvm-demo
@Wakaleo @JanMolak#SerenityBDD
Questions?
AUTHOR OF ‘BDD IN ACTION’
@wakaleo
www.johnfergusonsmart.com

More Related Content

What's hot

Junit
JunitJunit
Persona & User Journey in Practice
Persona & User Journey in PracticePersona & User Journey in Practice
Persona & User Journey in Practice
Afif Bimantara
 
UX research report
UX research reportUX research report
UX research report
DariaRolina1
 
Mocking in Java with Mockito
Mocking in Java with MockitoMocking in Java with Mockito
Mocking in Java with MockitoRichard Paul
 
Black box techniques
Black box techniquesBlack box techniques
Black box techniquesQA Guards
 
Introduction to Backbone.js
Introduction to Backbone.jsIntroduction to Backbone.js
Introduction to Backbone.jsPragnesh Vaghela
 
Exploratory testing workshop
Exploratory testing workshopExploratory testing workshop
Exploratory testing workshop
Anne-Marie Charrett
 
Inverting The Testing Pyramid
Inverting The Testing PyramidInverting The Testing Pyramid
Inverting The Testing Pyramid
Naresh Jain
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
Sergey Podolsky
 
Accessibility
AccessibilityAccessibility
Accessibility
Elizabeth Chesters
 
Cross browser testing
Cross browser testingCross browser testing
Cross browser testing
Sauce Labs
 
A Taste of Exploratory Testing
A Taste of Exploratory TestingA Taste of Exploratory Testing
A Taste of Exploratory Testing
Anne-Marie Charrett
 
Unit Testing And Mocking
Unit Testing And MockingUnit Testing And Mocking
Unit Testing And MockingJoe Wilson
 
Testing tool classification
Testing tool classificationTesting tool classification
Testing tool classification
Pragya Rastogi
 
Reusable acceptance criteria and test cases for accessibility
Reusable acceptance criteria and test cases for accessibilityReusable acceptance criteria and test cases for accessibility
Reusable acceptance criteria and test cases for accessibility
Intopia
 
UI Testing Automation
UI Testing AutomationUI Testing Automation
UI Testing AutomationAgileEngine
 
Web Accessibility: A Shared Responsibility
Web Accessibility: A Shared ResponsibilityWeb Accessibility: A Shared Responsibility
Web Accessibility: A Shared Responsibility
Joseph Dolson
 
Software Quality Metrics for Testers - StarWest 2013
Software Quality Metrics for Testers - StarWest 2013Software Quality Metrics for Testers - StarWest 2013
Software Quality Metrics for Testers - StarWest 2013
XBOSoft
 
What is UX design?
What is UX design? What is UX design?
What is UX design?
Kristen Hardy
 

What's hot (20)

Junit
JunitJunit
Junit
 
Persona & User Journey in Practice
Persona & User Journey in PracticePersona & User Journey in Practice
Persona & User Journey in Practice
 
UX research report
UX research reportUX research report
UX research report
 
Mocking in Java with Mockito
Mocking in Java with MockitoMocking in Java with Mockito
Mocking in Java with Mockito
 
Black box techniques
Black box techniquesBlack box techniques
Black box techniques
 
Introduction to Backbone.js
Introduction to Backbone.jsIntroduction to Backbone.js
Introduction to Backbone.js
 
Exploratory testing workshop
Exploratory testing workshopExploratory testing workshop
Exploratory testing workshop
 
Inverting The Testing Pyramid
Inverting The Testing PyramidInverting The Testing Pyramid
Inverting The Testing Pyramid
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Accessibility
AccessibilityAccessibility
Accessibility
 
6. Testing Guidelines
6. Testing Guidelines6. Testing Guidelines
6. Testing Guidelines
 
Cross browser testing
Cross browser testingCross browser testing
Cross browser testing
 
A Taste of Exploratory Testing
A Taste of Exploratory TestingA Taste of Exploratory Testing
A Taste of Exploratory Testing
 
Unit Testing And Mocking
Unit Testing And MockingUnit Testing And Mocking
Unit Testing And Mocking
 
Testing tool classification
Testing tool classificationTesting tool classification
Testing tool classification
 
Reusable acceptance criteria and test cases for accessibility
Reusable acceptance criteria and test cases for accessibilityReusable acceptance criteria and test cases for accessibility
Reusable acceptance criteria and test cases for accessibility
 
UI Testing Automation
UI Testing AutomationUI Testing Automation
UI Testing Automation
 
Web Accessibility: A Shared Responsibility
Web Accessibility: A Shared ResponsibilityWeb Accessibility: A Shared Responsibility
Web Accessibility: A Shared Responsibility
 
Software Quality Metrics for Testers - StarWest 2013
Software Quality Metrics for Testers - StarWest 2013Software Quality Metrics for Testers - StarWest 2013
Software Quality Metrics for Testers - StarWest 2013
 
What is UX design?
What is UX design? What is UX design?
What is UX design?
 

Similar to Screenplay - Next generation automated acceptance testing

Serenity/JS - next generation acceptance testing for modern web applications
Serenity/JS - next generation acceptance testing for modern web applicationsSerenity/JS - next generation acceptance testing for modern web applications
Serenity/JS - next generation acceptance testing for modern web applications
Jan Molak
 
Microservices the modern it stack trends of tomorrow
Microservices the modern it stack trends of tomorrowMicroservices the modern it stack trends of tomorrow
Microservices the modern it stack trends of tomorrow
Jonah Kowall
 
Code Review: How And When
Code Review: How And WhenCode Review: How And When
Code Review: How And When
Paul Gower
 
Behaviour driven architecture
Behaviour driven architectureBehaviour driven architecture
Behaviour driven architecture
Jan Molak
 
Understanding The Mobile SEO Opportunity | Benchmark Search Conference 2015
Understanding The Mobile SEO Opportunity | Benchmark Search Conference 2015Understanding The Mobile SEO Opportunity | Benchmark Search Conference 2015
Understanding The Mobile SEO Opportunity | Benchmark Search Conference 2015
Click Consult (Part of Ceuta Group)
 
"How Can Web Devs Reach the Mobile Market?" by Dimitris Michalakos, Web Techn...
"How Can Web Devs Reach the Mobile Market?" by Dimitris Michalakos, Web Techn..."How Can Web Devs Reach the Mobile Market?" by Dimitris Michalakos, Web Techn...
"How Can Web Devs Reach the Mobile Market?" by Dimitris Michalakos, Web Techn...
Eurapp
 
Optimizing for Mobile First Index
Optimizing for Mobile First IndexOptimizing for Mobile First Index
Optimizing for Mobile First Index
Jamie Indigo
 
Where are you in your mobile maturity … and where do you want to be?
Where are you in your mobile maturity … and where do you want to be?Where are you in your mobile maturity … and where do you want to be?
Where are you in your mobile maturity … and where do you want to be?Axway Appcelerator
 
Mastering the Art of Mobile Testing by Akshita Puram
Mastering the Art of Mobile Testing by Akshita PuramMastering the Art of Mobile Testing by Akshita Puram
Mastering the Art of Mobile Testing by Akshita Puram
QA or the Highway
 
Compuware ASEAN APM User Conference 2013 - University of Customer Experience
Compuware ASEAN APM User Conference 2013 - University of Customer ExperienceCompuware ASEAN APM User Conference 2013 - University of Customer Experience
Compuware ASEAN APM User Conference 2013 - University of Customer ExperienceCompuware ASEAN
 
Car Cybersecurity: What do Automakers Really Think?
Car Cybersecurity: What do Automakers Really Think?Car Cybersecurity: What do Automakers Really Think?
Car Cybersecurity: What do Automakers Really Think?
Security Innovation
 
Car cybersecurity: What do automakers really think?
Car cybersecurity: What do automakers really think?Car cybersecurity: What do automakers really think?
Car cybersecurity: What do automakers really think?
OnBoard Security, Inc. - a Qualcomm Company
 
Bdd with Cucumber and Mocha
Bdd with Cucumber and MochaBdd with Cucumber and Mocha
Bdd with Cucumber and Mocha
Atish Narlawar
 
Designing a secure software development process with DevOps
Designing a secure software development process with DevOpsDesigning a secure software development process with DevOps
Designing a secure software development process with DevOps
Mike Long
 
DarkReading - Securing Your APIs What You Need to Know.pdf
DarkReading - Securing Your APIs What You Need to Know.pdfDarkReading - Securing Your APIs What You Need to Know.pdf
DarkReading - Securing Your APIs What You Need to Know.pdf
tanguran
 
'Shift-Right' - Rapid Evolution with DesignOps
'Shift-Right' - Rapid Evolution with DesignOps'Shift-Right' - Rapid Evolution with DesignOps
'Shift-Right' - Rapid Evolution with DesignOps
CA Technologies
 
"Security is Everybody's Job", Akira Brand
"Security is Everybody's Job", Akira Brand"Security is Everybody's Job", Akira Brand
"Security is Everybody's Job", Akira Brand
Fwdays
 
The ilities of software engineering.pptx
The ilities of software engineering.pptxThe ilities of software engineering.pptx
The ilities of software engineering.pptx
Monica Beckwith
 
Integrating AI in software quality in absence of a well-defined requirements
Integrating AI in software quality in absence of a well-defined requirementsIntegrating AI in software quality in absence of a well-defined requirements
Integrating AI in software quality in absence of a well-defined requirements
Nagarro
 

Similar to Screenplay - Next generation automated acceptance testing (20)

Serenity/JS - next generation acceptance testing for modern web applications
Serenity/JS - next generation acceptance testing for modern web applicationsSerenity/JS - next generation acceptance testing for modern web applications
Serenity/JS - next generation acceptance testing for modern web applications
 
Microservices the modern it stack trends of tomorrow
Microservices the modern it stack trends of tomorrowMicroservices the modern it stack trends of tomorrow
Microservices the modern it stack trends of tomorrow
 
Code Review: How And When
Code Review: How And WhenCode Review: How And When
Code Review: How And When
 
Behaviour driven architecture
Behaviour driven architectureBehaviour driven architecture
Behaviour driven architecture
 
Understanding The Mobile SEO Opportunity | Benchmark Search Conference 2015
Understanding The Mobile SEO Opportunity | Benchmark Search Conference 2015Understanding The Mobile SEO Opportunity | Benchmark Search Conference 2015
Understanding The Mobile SEO Opportunity | Benchmark Search Conference 2015
 
"How Can Web Devs Reach the Mobile Market?" by Dimitris Michalakos, Web Techn...
"How Can Web Devs Reach the Mobile Market?" by Dimitris Michalakos, Web Techn..."How Can Web Devs Reach the Mobile Market?" by Dimitris Michalakos, Web Techn...
"How Can Web Devs Reach the Mobile Market?" by Dimitris Michalakos, Web Techn...
 
Optimizing for Mobile First Index
Optimizing for Mobile First IndexOptimizing for Mobile First Index
Optimizing for Mobile First Index
 
Where are you in your mobile maturity … and where do you want to be?
Where are you in your mobile maturity … and where do you want to be?Where are you in your mobile maturity … and where do you want to be?
Where are you in your mobile maturity … and where do you want to be?
 
Mastering the Art of Mobile Testing by Akshita Puram
Mastering the Art of Mobile Testing by Akshita PuramMastering the Art of Mobile Testing by Akshita Puram
Mastering the Art of Mobile Testing by Akshita Puram
 
Compuware ASEAN APM User Conference 2013 - University of Customer Experience
Compuware ASEAN APM User Conference 2013 - University of Customer ExperienceCompuware ASEAN APM User Conference 2013 - University of Customer Experience
Compuware ASEAN APM User Conference 2013 - University of Customer Experience
 
Car Cybersecurity: What do Automakers Really Think?
Car Cybersecurity: What do Automakers Really Think?Car Cybersecurity: What do Automakers Really Think?
Car Cybersecurity: What do Automakers Really Think?
 
Car cybersecurity: What do automakers really think?
Car cybersecurity: What do automakers really think?Car cybersecurity: What do automakers really think?
Car cybersecurity: What do automakers really think?
 
Bdd with Cucumber and Mocha
Bdd with Cucumber and MochaBdd with Cucumber and Mocha
Bdd with Cucumber and Mocha
 
Designing a secure software development process with DevOps
Designing a secure software development process with DevOpsDesigning a secure software development process with DevOps
Designing a secure software development process with DevOps
 
DarkReading - Securing Your APIs What You Need to Know.pdf
DarkReading - Securing Your APIs What You Need to Know.pdfDarkReading - Securing Your APIs What You Need to Know.pdf
DarkReading - Securing Your APIs What You Need to Know.pdf
 
'Shift-Right' - Rapid Evolution with DesignOps
'Shift-Right' - Rapid Evolution with DesignOps'Shift-Right' - Rapid Evolution with DesignOps
'Shift-Right' - Rapid Evolution with DesignOps
 
resume
resumeresume
resume
 
"Security is Everybody's Job", Akira Brand
"Security is Everybody's Job", Akira Brand"Security is Everybody's Job", Akira Brand
"Security is Everybody's Job", Akira Brand
 
The ilities of software engineering.pptx
The ilities of software engineering.pptxThe ilities of software engineering.pptx
The ilities of software engineering.pptx
 
Integrating AI in software quality in absence of a well-defined requirements
Integrating AI in software quality in absence of a well-defined requirementsIntegrating AI in software quality in absence of a well-defined requirements
Integrating AI in software quality in absence of a well-defined requirements
 

More from John Ferguson Smart Limited

My Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin ScenariosMy Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin Scenarios
John Ferguson Smart Limited
 
Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...
John Ferguson Smart Limited
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
John Ferguson Smart Limited
 
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANTBE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
John Ferguson Smart Limited
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
John Ferguson Smart Limited
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
John Ferguson Smart Limited
 
Shift left-devoxx-pl
Shift left-devoxx-plShift left-devoxx-pl
Shift left-devoxx-pl
John Ferguson Smart Limited
 
Cucumber and Spock Primer
Cucumber and Spock PrimerCucumber and Spock Primer
Cucumber and Spock Primer
John Ferguson Smart Limited
 
All the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practicesAll the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practices
John Ferguson Smart Limited
 
CukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning WorkshopCukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning Workshop
John Ferguson Smart Limited
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
John Ferguson Smart Limited
 
BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!
John Ferguson Smart Limited
 
BDD-Driven Microservices
BDD-Driven MicroservicesBDD-Driven Microservices
BDD-Driven Microservices
John Ferguson Smart Limited
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
John Ferguson Smart Limited
 
It's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersIt's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for Testers
John Ferguson Smart Limited
 
BDD in Action - Devoxx 2014
BDD in Action - Devoxx 2014BDD in Action - Devoxx 2014
BDD in Action - Devoxx 2014
John Ferguson Smart Limited
 
BDD in Action: Building Software Right and Building the Right Software
BDD in Action: Building Software Right and Building the Right SoftwareBDD in Action: Building Software Right and Building the Right Software
BDD in Action: Building Software Right and Building the Right Software
John Ferguson Smart Limited
 
BDD: The unit test of the product owner
BDD: The unit test of the product ownerBDD: The unit test of the product owner
BDD: The unit test of the product owner
John Ferguson Smart Limited
 
Its testing-jim-but-not-as-we-know-it-devoxx
Its testing-jim-but-not-as-we-know-it-devoxxIts testing-jim-but-not-as-we-know-it-devoxx
Its testing-jim-but-not-as-we-know-it-devoxx
John Ferguson Smart Limited
 
BDD in Action - building software that matters
BDD in Action - building software that mattersBDD in Action - building software that matters
BDD in Action - building software that matters
John Ferguson Smart Limited
 

More from John Ferguson Smart Limited (20)

My Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin ScenariosMy Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin Scenarios
 
Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
 
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANTBE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
 
Shift left-devoxx-pl
Shift left-devoxx-plShift left-devoxx-pl
Shift left-devoxx-pl
 
Cucumber and Spock Primer
Cucumber and Spock PrimerCucumber and Spock Primer
Cucumber and Spock Primer
 
All the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practicesAll the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practices
 
CukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning WorkshopCukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning Workshop
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
 
BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!
 
BDD-Driven Microservices
BDD-Driven MicroservicesBDD-Driven Microservices
BDD-Driven Microservices
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
 
It's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersIt's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for Testers
 
BDD in Action - Devoxx 2014
BDD in Action - Devoxx 2014BDD in Action - Devoxx 2014
BDD in Action - Devoxx 2014
 
BDD in Action: Building Software Right and Building the Right Software
BDD in Action: Building Software Right and Building the Right SoftwareBDD in Action: Building Software Right and Building the Right Software
BDD in Action: Building Software Right and Building the Right Software
 
BDD: The unit test of the product owner
BDD: The unit test of the product ownerBDD: The unit test of the product owner
BDD: The unit test of the product owner
 
Its testing-jim-but-not-as-we-know-it-devoxx
Its testing-jim-but-not-as-we-know-it-devoxxIts testing-jim-but-not-as-we-know-it-devoxx
Its testing-jim-but-not-as-we-know-it-devoxx
 
BDD in Action - building software that matters
BDD in Action - building software that mattersBDD in Action - building software that matters
BDD in Action - building software that matters
 

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 

Screenplay - Next generation automated acceptance testing