How To
Write A
Recipe For
Automated Testing

@ReadySetAgile

John Riley

Principle Agile Coach and Trainer
### Share Your Experience ---
### Agenda ---
- It's About Automating Acceptance Testing - What Automated Testing in Agile is NOT - Preparing our Kitchen - Ingredients - Baking Instructions - Admiring our Result - Sharing with Others
#### It's About Automating Acceptance Testing ---
#### What Agile automated testing is NOT ---
Automating "done" functionality
dev-qa
Responsibility
of QA only
vuca-sign
Daunting
vuca-sign
Toolset
Heavy
### Defining a Test-First Mindset ---
think-about-it
What does that mean?
TDD
##### A cycle of ##### developing tests ##### *before* any features ##### are developed `(Test-Driven Development)`
TDD
The Cycle:
RED
GREEN
REFACTOR
TDD RED
RED
  • Test defined and written
  • Test is run
  • Test Fails!!
TDD RED GREEN
GREEN
  • Code is written to
    satisfy test passing
TDD RED GREEN REFACTOR
REFACTOR
  • Code is re-written
    according to best practices
    WITHOUT CHANGING
    BEHAVIOR


ATDD

ATDD

A product development practice where acceptance tests are written BEFORE any product code is developed
### Why should we care about acceptance tests with test-driven development? ---
#### Why should we care about acceptance tests with test-driven development? ---
- You are refining stories - Phone number field - Only numbers are allowed - Format into correct phone number - Create your TOP 3 testing scenarios



Phone Number: (   )   -    

Well-refined acceptance criteria IS the test script


The Acceptance Criteria IS code

The good news:
You are probably doing some of these practices now, and are just not aware.

### Ingredients ---
  1. A Common, Controlled Language

  2. A Lightweight Refinement Process

  3. A Common Tool

  4. A Plan to Scale

### Baking Instructions ---
  1. Agree on a Common, Controlled Language

### Baking Instructions ---

Agree on a Common, Controlled Language


Technique 1: Develop a Taxonomy and Terminology


http://contentrules.com/taxonomy-terminology-controlled-vocabulary/

Agree on a Common, Controlled Language


Technique 1: Develop a Taxonomy and Terminology


http://contentrules.com/taxonomy-terminology-controlled-vocabulary/

Agree on a Common, Controlled Language


Technique 1: Develop a Taxonomy and Terminology


http://contentrules.com/taxonomy-terminology-controlled-vocabulary/

taxonomy-terminology

http://contentrules.com/taxonomy-terminology-controlled-vocabulary/

Agree on a Common, Controlled Language


Technique 2: Separate the "What" from the "How"


Agree on a Common, Controlled Language


Technique 2: Separate the "What" from the "How"


Agree on a Common, Controlled Language


Technique 2: Separate the "What" from the "How"


Agree on a Common, Controlled Language


Technique 3: Structure the "What" and "How" into templates


Agree on a Common, Controlled Language


Technique 3: Structure the "What" and "How" into templates


Agree on a Common, Controlled Language


Technique 3: Structure the "What" and "How" into templates


  1. Agree on a Common, Controlled Language

  2. Use this language in your Lightweight Refinement Process

Use this language in your Lightweight Refinement Process


Technique 1: Schedule regular refinement sessions

Use this language in your Lightweight Refinement Process


Technique 2: Amigo Reviews

https://www.getzephyr.com/

Use this language in your Lightweight Refinement Process


Technique 3: Respond to Change



  1. Agree on a Common, Controlled Language

  2. Use this language in your Lightweight Refinement Process

  3. Choose a tool that lines up with your language and process

Choose a tool that lines up with your language and process


...and make sure *everyone* can use it

Choose a tool that lines up with your language and process


...and make sure *everyone* can use it

Choose a tool that lines up with your language and process


...and make sure *everyone* can use it
jira
### Example ---
Template
Acceptance Criteria
Add Scenario, define steps
HomePage.feature

							Feature: Home Page
							
							#AC Template: 
							#	GIVEN I am a <role>
							#	AND I <user_action> <field>
							#	WHEN I <user_action> <control>
							# 	THEN I will be <app_action> <page>
							
							  Scenario Outline: User Log in
								GIVEN I am a <role>
								AND I enter my user name
								AND I enter my password
								WHEN I click the login button
								THEN I will be navigated to the home page
							Examples:	
								| role			|
								| home banking user	|
								| bank manager		|
								| administrator		|
								
						
### Admiring our result (benefits) ---
### Admiring our result (benefits) ---
sor
The test suite
IS the
System Of Record
onboarding
The test suite
is a
POWERFUL
onboarding tool
devops-culture
Integral to a
DevOps culture
### Sharing with Others ---
### Sharing with Others ---
sor

Scale
Organically
### Services at www.ReadySetAgile.com ---



### Thank you! ---

john@ReadySetAgile.com - John Riley