SlideShare a Scribd company logo
!
!
K3#
Keynote!
6/25/2015! !
8:30!AM!
!
!
!
!
“Build#the#Right#Product#Right:#Transitioning#Test#
from#Critiquing#to#Defining”##
Presented#by:#
Gerard#Meszaros#
Independent#Consultant#
#
#
#
#
#
Brought#to#you#by:#
#
#
#
#
#
#
340!Corporate!Way,!Suite!300,!Orange!Park,!FL!32073!
888D268D8770!E!904D278D0524!E!sqeinfo@sqe.com!E!www.sqe.com!
!
!
!
!
!
!!!!! !
!!!!
An independent software development consultant and trainer, Gerard Meszaros has
more than thirty years of experience in software and more than a decade of experience
in agile methods. Gerard is an expert in test automation patterns, refactoring of software
and tests, and design for testability. He has applied automated unit and acceptance
testing on projects ranging from full-on eXtreme Programming to traditional waterfall
development in a wide range of industries. Gerard is an expert in the implementation
and customization of agile methods such as Scrum, lean, and eXtreme Programming.
His book xUnit Test Patterns—Refactoring Test Code won a Jolt Productivity Award in
the Best Technical Book category.
Gerard Meszaros
Independent Consultant
1
1 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Build the Right Product Right
Transitioning Test from Critiquing to Defining
Gerard Meszaros
Independent Consultant
CTO of FeedXL.Com
StarCanada2015@gerardm.com
These slides: http://StarCanada2015.gerardm.com
2 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Product & I.T.
I.T.
Embedded
Telecom
My Background
Gerard Meszaros
StarCanada2015@gerardm.com
• Software developer
• Development manager
• Project Manager
• Software architect
• OOA/OOD Mentor
• Requirements (Use Case) Mentor
• XP/TDD Mentor
• Agile PM Mentor
• Test Automation Consultant & Trainer
• Lean/Agile Coach/Consultant
2
3 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Product & I.T.
I.T.
Embedded
Telecom
My Background
• Software developer
• Development manager
• Project Manager
• Software architect
• OOA/OOD Mentor
• Requirements (Use Case) Mentor
• XP/TDD Mentor
• Agile PM Mentor
• Test Automation Consultant & Trainer
• Lean/Agile Coach/Consultant
Gerard Meszaros
StarCanada2015@gerardm.com
4 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Agile
Dev
I’m From Development and I’m Here to Help
3
5 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Johnny’s Report Card
http://fabulesslyfrugal.com/report-card-freebies-for-good-grades/
6 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
QA as Quality Assessment
4
7 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Dev
Test & Fix “Battleship”
Development
Quality
Assessment
Bug Reports
Software
Requirements
B6! Missed!
Requirements
Test
8 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
The Agile Test Problem
Requirements
Development
Testing
5
9 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
The Agile Test Problem
Testing
Development
Requirements
Testing
Development
Requirements
10 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
The Agile Test Problem
Testing
Development
Requirements
Testing
Development
Requirements
Testing
Development
Requirements
Testing
Development
Requirements
6
11 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Automated Testing is Essential
http://www.cordistech.com/
12 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
http://www.etfile.com/blog/to-automate-or-not-to-automate-that-is-the-question/
7
13 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
empowering
http://www.slideshare.net/b2bSEO/robots-replacing-humans-automation
14 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Value of Automated Tests
Tests as Documentation
Faster regression testing
Faster feedback on impact of changes
Better coverage of data combinations
Test with data without seeing that confidential data
Provides more time for exploratory testing
Can be done off hours; reduces delay/resources
Writing tests helps us understand code better
Know when problem was introduced
Fast sanity checking
Performance or load testing
Setting up complex scenarios for manual/exploratory testing
Unit/module tests improve modularity design and API’s
Help Business understand what we/they are asking for
Courtesy of participants of Tuesday’s tutorial
8
15 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Automated Tests are Just Code
That Tests Other Code
Who Tests This Code?
Who Should Write This Code?
16 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Audience Survey
https://lmsa.site-ym.com/news/221726/Sex-and-Gender-Medical-Education-National-Student-Survey.htm
9
17 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Audience Survey (Part 2)
18 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Audience Survey (Part 3)
http://www.mcas.k12.in.us/Page/4826
10
19 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Insanity:
•  Doing the same thing over and over again and
expecting different results
20 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Project Retrospectives
11
21 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
The Prime Directive
Regardless of what we discover, we
understand and truly believe that
everyone did the best job they could,
given what they knew at the time, their
skills and abilities, the resources
available, and the situation at hand
22 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Agile Retrospectives / Sprint Reviews
12
23 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Ineffective Retrospectives
Stop
Start
More
Actions
1. Do something
2. Do another thing
3. Do yet another
thing
4. Do more stuff
5. Do yet more stuff
6.
24 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Ineffective Retrospectives
Stop
Start
More
Actions
1. Do something
2. Do another thing
3. Do yet another
thing
4. Do more stuff
5. Do yet more stuff
6.
How Do We Improve Retrospectives?
13
25 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
One Experiment per Iteration
Stop
Start
More 1.  Hypothesis
2. Experiment
3. Analyse
4. Communicate
26 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
The Toyota Way
14
27 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
5 Why’s
www.123rf.com
28 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
5 Why’s of Test Automation Being Hard
Tests need to
interact via
the UI
Test
Automation
is Hard!
Product isn’t
designed for
testability
Why? Why?
Why?
Tests are
very complex
15
29 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
5 Why’s of Test Automation Being Hard
Dev doesn’t
know how
(or care)
Tests need to
interact via
the UI
Test
Automation
is Hard!
It’s QA’s
problem
Tests are
automated after
Dev Complete
QA isn’t
involved in
product
definition
Product isn’t
designed for
testability
Why? Why?
Why?
Why?
Why?
Why?
Tests are
very complex
Why?
Why?
30 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
5 Why’s of Test Automation Being Hard
Dev doesn’t
know how
(or care)
Tests need to
interact via
the UI
Test
Automation
is Hard!
It’s QA’s
problem
Tests are
automated after
Dev Complete
QA isn’t
involved in
product
definition
QA is too
busy testing
last release
Product isn’t
designed for
testability
Why? Why?
Why?
Why?
Why?
Why?
Why?
Why?
Tests are
very complex
Why?
Why?
QA is supposed
to be
“independent”
Why?
16
31 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Systems Thinking
A B
+
C
-
Notation:
+ Increasing
- Reducing
32 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Systems Thinking
A B
+
C
-
+ +
Notation:
+ Increasing
- Reducing
Reinforcing
Cycle
Balancing
Cycle
17
33 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Systems Thinking
A B
+
C
-
+ +
Notation:
+ Increasing
- Reducing
Vicious or
Virtuous
Cycle
34 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
5 Why’s of Test Automation Being Hard
Dev doesn’t
know how
(or care)
Tests need to
interact via
the UI
Test
Automation
is Hard!
It’s QA’s
problem
Tests are
automated after
Dev Complete
QA isn’t
involved in
product
definition
QA is too
busy testing
last release
Product isn’t
designed for
testability
Why? Why?
Why?
Why?
Why?
Why?
Why?
Why?
Tests are
very complex
Why?
Why?
QA is supposed
to be
“independent”
Why?
18
35 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Test Automation – Systems Thinking Diagram
Dev doesn’t
know how
(or care)
Tests need to
interact via
the UI
Test
Automation
is Hard!
It’s QA’s
problem
Tests are
automated after
Dev Complete
QA isn’t
involved in
product
definition
QA is too
busy testing
last release
Product isn’t
designed for
testability
+ +
+
+
+
+
+
+
Tests are
very complex
+
+
QA is supposed
to be
“independent”
+
A Vicious Cycle
36 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Conway’s Law
The Architecture of System will resemble the
Organization that Built it.
Development
Team
Test
Team
Business
Team
19
37 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Resulting Architecture
Specifi-
cations
Product
Code
Test
Code
Bus Test
Dev
38 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Example-Driven Development
Development flow
Potentially
Executable
Specifications
Example
Interpreter
Code Product
Code
Dev
Test
Dev
DevTestBus Test
20
39 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Example-Driven Development
Runtime View:
Product
Code
Example
Interpreter
Code
Report
Card
Potentially
Executable
Specifications
Dev
Test
Dev
DevTestBus Test
40 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Example-Driven Development
Feedback Loops:
Potentially
Executable
Specifications Product
Code
Example
Interpreter
Code
Report
Card
What they say
How they say it
21
41 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Example-Driven Development
Feedback Loops:
Potentially
Executable
Specifications Product
Code
Example
Interpreter
Code
Report
Card
What they say
How they say it
Isn’t This “Just”
Test Automation
By Another Name?
42 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Tests vs. Checks vs. Examples?ref: http://www.satisfice.com/blog/archives/856
22
43 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Preparing Good Examples
http://thepracticalleader.com/
44 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Example: Notifying of Bank Transactions
Configure
Notification
Rules
Suspend
Notification
Resume
Notification
Account
Holder
Process
Transaction
Transaction
Settlement
NotifybasedonchargeType
NotifybasedonchargeContinent
NotifybasedonchargeCountry
NotifybasedonchargeCity&State
SuspendNotification
23
45 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Checking Notifications
•  Open MegaBank app
•  Log in as “BobMa” with password ******
•  Click on “Manage Notifications” tab
•  Click on “Add New Rule” button
•  Select account “10035692877”
•  Type “Default Rule” into field “rule name”
•  Type “1000” into field “threshold amount”
•  Click on “all transaction types” radio button
•  Click on “all locations” radio button
•  Click on “save changes” button
•  …
•  …
46 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Checking Notifications – 1/2
Given:
User and Accounts
Another
attempt:
When:
Notification
Rule is Configured
Then:
Notification Rule
Configured and
Active
Then:
Notification Rule
is Active
24
47 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Checking Notifications – 2/2
Then: Expected
Notifications
When: The
Transactions to
be processed
Another
attempt:
48 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Test Automation Pyramid
Pyramid originally proposed by Mike Cohn
Exploratory Tests
Unit Tests
Component
Tests (API)
System
Tests (GUI)
25
49 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Behavior Specification at Right Level
Unit Tests
Component
Tests (API)
System
Tests (GUI)
Broad Narrow
Detail
HighLow
Scope
50 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Behavior Specification at Right Level
Broad Narrow
Detail
HighLow
Scope
Component
Tests (API)
System
Tests (GUI)
26
51 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Behavior Specification at Right Level
Component
Tests (API)
System
Tests (GUI)
Rules &
Algorithms
Multi-
Use Case
Workflows
Incomplete
Spec
Too
much detail
Unmaintainable
Detail
HighLow
Broad Narrow
Scope
Transactions
(Use Cases)
52 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Too
much detail
Unmaintainable
Changing Level of Abstraction/Detail
Rules &
Algorithms
Multi-
Use Case
Workflows
Transactions
(Use Cases)
Reduce
Scope a Lot!
ReduceDetailaLot
Reduce
Both a bit
Incomplete
Spec
Broad Narrow
Detail
HighLow
Scope
27
53 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Refactoring Workflow Example
Given:
User and Accounts
When:
Notification
Rule is Configured
Then:
Notification Rule
Configured and
Active
Then:
Notification Rule
is Active
54 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Refactoring Workflow Example
“If it isn’t essential to conveying the
essence of the behavior, it is essential to
not include it.”
28
55 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Then: Expected
Notifications
When: The
Transactions to
be processed
Refactoring Workflow Example
56 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Refactoring Workflow Example
29
57 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Refactoring Workflow Example
58 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Refactoring Workflow ExampleGiven:
User &
Thresholds
When:
Transactions
Are Processed
Then:
We Expect
Notifications
30
59 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Given:
User &
Thresholds
When:
Transactions
Are Processed
Then:
We Expect
Notifications
credit
credit
9991113333
Refactoring Workflow Example
60 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
9991113333
Refactoring Workflow Example
Broad Scope (Multi-Actor);
Minimum Detail (per Actor/Transaction);
Given:
User &
Thresholds
When:
Transactions
Are Processed
Then:
We Expect
Notifications
credit
credit
31
61 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Filling in the Details
Rules &
Algorithms
Multi-
Use Case
Workflows
Transactions
(Use Cases)
Incomplete
Spec
ReduceDetailaLot
Reduce
Both a bit
Too
much detail
Unmaintainable
Reduce
Scope a Lot!
Broad Narrow
Detail
HighLow
Scope
62 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Business Rule Example
Process Transaction
Threshold per Charge Type
Configuration
32
63 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Process Transaction
Threshold per Charge Type
Narrow Scope (Single Rule)
High Detail (Everything that matters)
Example:
Configuration Given these
rules
Then: The
answer should be
Business Rule Example
When we ask
NotificationRequired?
with this transaction:
64 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Life Cycle of an Example
User
Goal
Feature
Story
Title
Story
Narrative
Story
Scenarios
Story
Examples
Executable
Examples
Satisfied
Examples
Formalize
Automate
Develop
Product
Make Concrete
Add Data
Define
Acceptance
Criteria
Work
Breakdown
Product
Design &
Validation
Elaborate
33
65 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Who Does Activities on an Example
User
Goal
Feature
Story
Title
Story
Narrative
Story
Scenarios
Story
Examples
Executable
Examples
Satisfied
Examples
Formalize
Automate
Develop
Product
Make Concrete
Add Data
Define
Acceptance
Criteria
Work
Breakdown
Product
Design &
Validation
Elaborate
DevTest
Bus
DevTest Bus
Dev
Test
Bus
66 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Test-After Architecture
System Under Test
Should we
Notify?Process
Transaction
Configure
Notification
Threshold
Notification
Rules
Transaction
Interface
Configuration
User
Interface
Notification
Log
Workflow
Test
Do
Notification.
Bus
Test Dev
34
67 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Example-Driven Architecture
System Under Test
Should we
Notify?
Do
Notification.
Process
Transaction
Configure
Notification
Threshold
Notification
Rules
Notification
Log
Transaction
Interface
Configuration
User
Interface
Workflow
Example
Workflow
Keyword
Interpreter
Dev Dev
Bus
Test
68 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Transaction
Interface
Configuration
User
Interface
Configure
Notification
Threshold System Under Test
EDA – Business Rules
Do
Notification.
Process
Transaction
Notification
Rules
Notification
Log
Notification
Method Example
Notification
Rules Fake
Notification
Rule Example
Should we
Notify?
Example
Interpreter
Example
Interpreter
Dev
Bus
Test Dev
35
69 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
EDA – Business Rules
Should we
Notify?
Notification
Rules Fake
Notification
Rule Example
Example
Interpreter
Dev
Bus
Test Dev
70 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
After State – Back to Our Systems Diagram
Dev doesn’t
know how
(or care)
Tests need to
interact via
the UI
Test
Automation
is Hard!
It’s QA’s
problem
Tests are
automated after
Dev Complete
QA isn’t
involved in
product
definition
QA is too
busy testing
last release
Product isn’t
designed for
testability
+ +
+
+
+
+
+
+
Tests are
very complex
+
+
QA is supposed
to be
“independent”
+
X
X
X
X X
XXX
36
71 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
After State – Back to Our Systems Diagram
Dev knows
how (and
cares)
Examples
don’t need to
interact via
the UI
Automated
checking is
Easy!
Automation
is Dev’s
problem
Examples are
automated
before Dev
starts
QA is
involved in
product
definition
QA has time for
Examples and
Exploratory
testing
Product is
designed for
testability
+ +
+
+
+
+
+
+
Examples are
simple
+
+
A Virtuous Cycle
72 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
My Challenge to You
Stop
Start
More 1.  Hypothesis
2. Experiment
3. Analyse
4. Communicate
37
73 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
74 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com
Thank You!
Gerard Meszaros
StarCanada2015@gerardm.com
http://www.xunitpatterns.com
Slides: http://StarCanada2015.gerardm.com
Call me when you:
•  Want to transition to Agile or Lean
•  Want to do Agile or Lean better
•  Want to teach developers how to test
•  Need help with test automation strategy
•  Want to improve your test automation
Jolt Productivity Award
winner - Technical Books
Available on MSDN:

More Related Content

PDF
System-Level Test Automation: Ensuring a Good Start
PDF
Test Design for Fully Automated Build Architecture
PDF
Instill a DevOps Testing Culture in Your Team and Organization
PDF
Testing Transformation: The Art and Science for Success
PDF
Develop WebDriver Automated Tests—and Keep Your Sanity
PDF
Communication and Testing: Why You Have Been Wrong All Along!
PDF
Use Layered Model-Based Requirements to Achieve Continuous Testing
PDF
Transforming Your QA and Test Team
System-Level Test Automation: Ensuring a Good Start
Test Design for Fully Automated Build Architecture
Instill a DevOps Testing Culture in Your Team and Organization
Testing Transformation: The Art and Science for Success
Develop WebDriver Automated Tests—and Keep Your Sanity
Communication and Testing: Why You Have Been Wrong All Along!
Use Layered Model-Based Requirements to Achieve Continuous Testing
Transforming Your QA and Test Team

What's hot (20)

PPTX
The Future of Testing
PPTX
Exploratory Testing with JIRA | QASymphony Webinar
PPTX
Let's focus more on Quality and less on Testing by Joel Montvelisky
PPTX
Smarter Automation with Machine Learning & AI-Based Reporting
PPTX
Continuous Testing: The Path Forward
PDF
Test-Driven Development for Embedded C -- OOP Conference 2015, Munich
PDF
Cloudbrew 2019 observability driven development
PDF
Observability driven development
PDF
Test Driven Development for Embedded C
PDF
The art and joy of testing in production
PDF
Patterns of Automation: Simplify Your Test Code
PDF
Try: Fail, Try: Succeed by Tim Grant
PDF
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
PPTX
Advanced Codeless Testing for Web Apps
PDF
Blunders in Test Automation
PDF
Testing in the Dark
PDF
CRMUG UK November 2015 - Testing testing! Panel Discussion with Scott Durow, ...
PDF
Solid c-accu2014.key
PDF
The Tester’s Role in Agile Planning
PDF
DevOps the Big Picture for Testers by Joseph Ours
The Future of Testing
Exploratory Testing with JIRA | QASymphony Webinar
Let's focus more on Quality and less on Testing by Joel Montvelisky
Smarter Automation with Machine Learning & AI-Based Reporting
Continuous Testing: The Path Forward
Test-Driven Development for Embedded C -- OOP Conference 2015, Munich
Cloudbrew 2019 observability driven development
Observability driven development
Test Driven Development for Embedded C
The art and joy of testing in production
Patterns of Automation: Simplify Your Test Code
Try: Fail, Try: Succeed by Tim Grant
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
Advanced Codeless Testing for Web Apps
Blunders in Test Automation
Testing in the Dark
CRMUG UK November 2015 - Testing testing! Panel Discussion with Scott Durow, ...
Solid c-accu2014.key
The Tester’s Role in Agile Planning
DevOps the Big Picture for Testers by Joseph Ours
Ad

Viewers also liked (17)

PDF
Large-Scale Agile Test Automation Strategies in Practice
PDF
Agile Hacks: Creative Solutions for Common Agile Issues
PDF
Implementing Agile in an FDA Regulated Environment
PDF
Prevent Test Automation Shelfware: A Selenium-WebDriver Case Study
PDF
Power Your Teams with Git
PDF
Privacy and Data Security: Minimizing Reputational and Legal Risks
PDF
Create Brainstorming Commandos for Creative Problem Solving
PDF
The Issues Agile Exposes and What To Do about Them
PDF
Managing Technical Debt
PDF
Using DevOps to Drive the Agile ALM
PDF
The Adventures of a First-Time Test Lead: An Unexpected Journey
PDF
Now That We're Agile, What's a Manager to Do?
PDF
Managing a Software Engineering Team
PDF
Use Business Analysts for User Interface Design
PDF
Testing in a Super-Agile Software Development Environment
PDF
Developing a Rugged DevOps Approach to Cloud Security
PDF
From Unclear and Unrealistic Requirements to Achievable User Stories
Large-Scale Agile Test Automation Strategies in Practice
Agile Hacks: Creative Solutions for Common Agile Issues
Implementing Agile in an FDA Regulated Environment
Prevent Test Automation Shelfware: A Selenium-WebDriver Case Study
Power Your Teams with Git
Privacy and Data Security: Minimizing Reputational and Legal Risks
Create Brainstorming Commandos for Creative Problem Solving
The Issues Agile Exposes and What To Do about Them
Managing Technical Debt
Using DevOps to Drive the Agile ALM
The Adventures of a First-Time Test Lead: An Unexpected Journey
Now That We're Agile, What's a Manager to Do?
Managing a Software Engineering Team
Use Business Analysts for User Interface Design
Testing in a Super-Agile Software Development Environment
Developing a Rugged DevOps Approach to Cloud Security
From Unclear and Unrealistic Requirements to Achievable User Stories
Ad

Similar to Build the Right Product Right: Transitioning Test from Critiquing to Defining (20)

PPTX
Tackling Strategic Engineering Challenges
PDF
Test Automation Strategies and Frameworks: What Should Your Team Do?
PDF
CookpadTechConf2018-(Mobile)TestAutomation
PPT
SDT Blended Model V3 2009
PDF
Creating a successful continuous testing environment by Eran Kinsbruner
PDF
Are Your Continuous Tests Too Fragile for Agile?
PDF
testingexperience19_09_12
PDF
How to build confidence in your release cycle
PPTX
Test Smarter Not Harder - how to design tests for continuous delivery
PPT
Quality Assurance & Testing in a glimpse
PPT
Universal test solutions customer testimonial 10192013-v2.2
PDF
Manage Testing by Dependencies—Not Activities
PDF
Automated Testing: QA Horizons
PDF
Software Testing Interview Questions & Answers | Edureka
PPT
TestIT Software Assurance
PDF
Top 50 Software Testing Interview Questions & Answers | Edureka
PPTX
Deploying DriveWorks Throughout the Organization
PDF
Continuous delivery is more than dev ops
PDF
Stamp Out Agile and DevOps Bottlenecks
PDF
Why Automation Fails—in Theory and Practice
Tackling Strategic Engineering Challenges
Test Automation Strategies and Frameworks: What Should Your Team Do?
CookpadTechConf2018-(Mobile)TestAutomation
SDT Blended Model V3 2009
Creating a successful continuous testing environment by Eran Kinsbruner
Are Your Continuous Tests Too Fragile for Agile?
testingexperience19_09_12
How to build confidence in your release cycle
Test Smarter Not Harder - how to design tests for continuous delivery
Quality Assurance & Testing in a glimpse
Universal test solutions customer testimonial 10192013-v2.2
Manage Testing by Dependencies—Not Activities
Automated Testing: QA Horizons
Software Testing Interview Questions & Answers | Edureka
TestIT Software Assurance
Top 50 Software Testing Interview Questions & Answers | Edureka
Deploying DriveWorks Throughout the Organization
Continuous delivery is more than dev ops
Stamp Out Agile and DevOps Bottlenecks
Why Automation Fails—in Theory and Practice

More from TechWell (20)

PDF
Failing and Recovering
PDF
Build Your Mobile App Quality and Test Strategy
PDF
Implement BDD with Cucumber and SpecFlow
PDF
Ma 15
PDF
Eliminate Cloud Waste with a Holistic DevOps Strategy
PDF
Transform Test Organizations for the New World of DevOps
PDF
The Fourth Constraint in Project Delivery—Leadership
PDF
Resolve the Contradiction of Specialists within Agile Teams
PDF
Pin the Tail on the Metric: A Field-Tested Agile Game
PDF
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
PDF
A Business-First Approach to DevOps Implementation
PDF
Databases in a Continuous Integration/Delivery Process
PDF
Mobile Testing: What—and What Not—to Automate
PDF
Cultural Intelligence: A Key Skill for Success
PDF
Turn the Lights On: A Power Utility Company's Agile Transformation
PDF
Scale: The Most Hyped Term in Agile Development Today
PDF
Measure DevOps for Objective Continuous Improvement Practices
PDF
Microservices and Docker at Scale: The PB&J of Modern Systems
PDF
Automation Anti-Patterns: Deal with Them
PDF
Put Agile to the Test: A Case Study for Test Agility on a Large IT Project
Failing and Recovering
Build Your Mobile App Quality and Test Strategy
Implement BDD with Cucumber and SpecFlow
Ma 15
Eliminate Cloud Waste with a Holistic DevOps Strategy
Transform Test Organizations for the New World of DevOps
The Fourth Constraint in Project Delivery—Leadership
Resolve the Contradiction of Specialists within Agile Teams
Pin the Tail on the Metric: A Field-Tested Agile Game
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
A Business-First Approach to DevOps Implementation
Databases in a Continuous Integration/Delivery Process
Mobile Testing: What—and What Not—to Automate
Cultural Intelligence: A Key Skill for Success
Turn the Lights On: A Power Utility Company's Agile Transformation
Scale: The Most Hyped Term in Agile Development Today
Measure DevOps for Objective Continuous Improvement Practices
Microservices and Docker at Scale: The PB&J of Modern Systems
Automation Anti-Patterns: Deal with Them
Put Agile to the Test: A Case Study for Test Agility on a Large IT Project

Recently uploaded (20)

PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
L1 - Introduction to python Backend.pptx
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
history of c programming in notes for students .pptx
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
System and Network Administration Chapter 2
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPT
Introduction Database Management System for Course Database
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PPTX
Transform Your Business with a Software ERP System
Design an Analysis of Algorithms I-SECS-1021-03
VVF-Customer-Presentation2025-Ver1.9.pptx
L1 - Introduction to python Backend.pptx
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
history of c programming in notes for students .pptx
wealthsignaloriginal-com-DS-text-... (1).pdf
Computer Software and OS of computer science of grade 11.pptx
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
2025 Textile ERP Trends: SAP, Odoo & Oracle
System and Network Administration Chapter 2
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Digital Systems & Binary Numbers (comprehensive )
Upgrade and Innovation Strategies for SAP ERP Customers
Introduction Database Management System for Course Database
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Reimagine Home Health with the Power of Agentic AI​
PTS Company Brochure 2025 (1).pdf.......
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
Transform Your Business with a Software ERP System

Build the Right Product Right: Transitioning Test from Critiquing to Defining

  • 2. ! ! ! ! !!!!! ! !!!! An independent software development consultant and trainer, Gerard Meszaros has more than thirty years of experience in software and more than a decade of experience in agile methods. Gerard is an expert in test automation patterns, refactoring of software and tests, and design for testability. He has applied automated unit and acceptance testing on projects ranging from full-on eXtreme Programming to traditional waterfall development in a wide range of industries. Gerard is an expert in the implementation and customization of agile methods such as Scrum, lean, and eXtreme Programming. His book xUnit Test Patterns—Refactoring Test Code won a Jolt Productivity Award in the Best Technical Book category. Gerard Meszaros Independent Consultant
  • 3. 1 1 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Build the Right Product Right Transitioning Test from Critiquing to Defining Gerard Meszaros Independent Consultant CTO of FeedXL.Com StarCanada2015@gerardm.com These slides: http://StarCanada2015.gerardm.com 2 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Product & I.T. I.T. Embedded Telecom My Background Gerard Meszaros StarCanada2015@gerardm.com • Software developer • Development manager • Project Manager • Software architect • OOA/OOD Mentor • Requirements (Use Case) Mentor • XP/TDD Mentor • Agile PM Mentor • Test Automation Consultant & Trainer • Lean/Agile Coach/Consultant
  • 4. 2 3 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Product & I.T. I.T. Embedded Telecom My Background • Software developer • Development manager • Project Manager • Software architect • OOA/OOD Mentor • Requirements (Use Case) Mentor • XP/TDD Mentor • Agile PM Mentor • Test Automation Consultant & Trainer • Lean/Agile Coach/Consultant Gerard Meszaros StarCanada2015@gerardm.com 4 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Agile Dev I’m From Development and I’m Here to Help
  • 5. 3 5 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Johnny’s Report Card http://fabulesslyfrugal.com/report-card-freebies-for-good-grades/ 6 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com QA as Quality Assessment
  • 6. 4 7 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Dev Test & Fix “Battleship” Development Quality Assessment Bug Reports Software Requirements B6! Missed! Requirements Test 8 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com The Agile Test Problem Requirements Development Testing
  • 7. 5 9 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com The Agile Test Problem Testing Development Requirements Testing Development Requirements 10 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com The Agile Test Problem Testing Development Requirements Testing Development Requirements Testing Development Requirements Testing Development Requirements
  • 8. 6 11 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Automated Testing is Essential http://www.cordistech.com/ 12 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com http://www.etfile.com/blog/to-automate-or-not-to-automate-that-is-the-question/
  • 9. 7 13 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com empowering http://www.slideshare.net/b2bSEO/robots-replacing-humans-automation 14 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Value of Automated Tests Tests as Documentation Faster regression testing Faster feedback on impact of changes Better coverage of data combinations Test with data without seeing that confidential data Provides more time for exploratory testing Can be done off hours; reduces delay/resources Writing tests helps us understand code better Know when problem was introduced Fast sanity checking Performance or load testing Setting up complex scenarios for manual/exploratory testing Unit/module tests improve modularity design and API’s Help Business understand what we/they are asking for Courtesy of participants of Tuesday’s tutorial
  • 10. 8 15 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Automated Tests are Just Code That Tests Other Code Who Tests This Code? Who Should Write This Code? 16 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Audience Survey https://lmsa.site-ym.com/news/221726/Sex-and-Gender-Medical-Education-National-Student-Survey.htm
  • 11. 9 17 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Audience Survey (Part 2) 18 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Audience Survey (Part 3) http://www.mcas.k12.in.us/Page/4826
  • 12. 10 19 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Insanity: •  Doing the same thing over and over again and expecting different results 20 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Project Retrospectives
  • 13. 11 21 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com The Prime Directive Regardless of what we discover, we understand and truly believe that everyone did the best job they could, given what they knew at the time, their skills and abilities, the resources available, and the situation at hand 22 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Agile Retrospectives / Sprint Reviews
  • 14. 12 23 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Ineffective Retrospectives Stop Start More Actions 1. Do something 2. Do another thing 3. Do yet another thing 4. Do more stuff 5. Do yet more stuff 6. 24 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Ineffective Retrospectives Stop Start More Actions 1. Do something 2. Do another thing 3. Do yet another thing 4. Do more stuff 5. Do yet more stuff 6. How Do We Improve Retrospectives?
  • 15. 13 25 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com One Experiment per Iteration Stop Start More 1.  Hypothesis 2. Experiment 3. Analyse 4. Communicate 26 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com The Toyota Way
  • 16. 14 27 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com 5 Why’s www.123rf.com 28 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com 5 Why’s of Test Automation Being Hard Tests need to interact via the UI Test Automation is Hard! Product isn’t designed for testability Why? Why? Why? Tests are very complex
  • 17. 15 29 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com 5 Why’s of Test Automation Being Hard Dev doesn’t know how (or care) Tests need to interact via the UI Test Automation is Hard! It’s QA’s problem Tests are automated after Dev Complete QA isn’t involved in product definition Product isn’t designed for testability Why? Why? Why? Why? Why? Why? Tests are very complex Why? Why? 30 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com 5 Why’s of Test Automation Being Hard Dev doesn’t know how (or care) Tests need to interact via the UI Test Automation is Hard! It’s QA’s problem Tests are automated after Dev Complete QA isn’t involved in product definition QA is too busy testing last release Product isn’t designed for testability Why? Why? Why? Why? Why? Why? Why? Why? Tests are very complex Why? Why? QA is supposed to be “independent” Why?
  • 18. 16 31 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Systems Thinking A B + C - Notation: + Increasing - Reducing 32 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Systems Thinking A B + C - + + Notation: + Increasing - Reducing Reinforcing Cycle Balancing Cycle
  • 19. 17 33 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Systems Thinking A B + C - + + Notation: + Increasing - Reducing Vicious or Virtuous Cycle 34 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com 5 Why’s of Test Automation Being Hard Dev doesn’t know how (or care) Tests need to interact via the UI Test Automation is Hard! It’s QA’s problem Tests are automated after Dev Complete QA isn’t involved in product definition QA is too busy testing last release Product isn’t designed for testability Why? Why? Why? Why? Why? Why? Why? Why? Tests are very complex Why? Why? QA is supposed to be “independent” Why?
  • 20. 18 35 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Test Automation – Systems Thinking Diagram Dev doesn’t know how (or care) Tests need to interact via the UI Test Automation is Hard! It’s QA’s problem Tests are automated after Dev Complete QA isn’t involved in product definition QA is too busy testing last release Product isn’t designed for testability + + + + + + + + Tests are very complex + + QA is supposed to be “independent” + A Vicious Cycle 36 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Conway’s Law The Architecture of System will resemble the Organization that Built it. Development Team Test Team Business Team
  • 21. 19 37 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Resulting Architecture Specifi- cations Product Code Test Code Bus Test Dev 38 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Example-Driven Development Development flow Potentially Executable Specifications Example Interpreter Code Product Code Dev Test Dev DevTestBus Test
  • 22. 20 39 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Example-Driven Development Runtime View: Product Code Example Interpreter Code Report Card Potentially Executable Specifications Dev Test Dev DevTestBus Test 40 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Example-Driven Development Feedback Loops: Potentially Executable Specifications Product Code Example Interpreter Code Report Card What they say How they say it
  • 23. 21 41 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Example-Driven Development Feedback Loops: Potentially Executable Specifications Product Code Example Interpreter Code Report Card What they say How they say it Isn’t This “Just” Test Automation By Another Name? 42 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Tests vs. Checks vs. Examples?ref: http://www.satisfice.com/blog/archives/856
  • 24. 22 43 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Preparing Good Examples http://thepracticalleader.com/ 44 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Example: Notifying of Bank Transactions Configure Notification Rules Suspend Notification Resume Notification Account Holder Process Transaction Transaction Settlement NotifybasedonchargeType NotifybasedonchargeContinent NotifybasedonchargeCountry NotifybasedonchargeCity&State SuspendNotification
  • 25. 23 45 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Checking Notifications •  Open MegaBank app •  Log in as “BobMa” with password ****** •  Click on “Manage Notifications” tab •  Click on “Add New Rule” button •  Select account “10035692877” •  Type “Default Rule” into field “rule name” •  Type “1000” into field “threshold amount” •  Click on “all transaction types” radio button •  Click on “all locations” radio button •  Click on “save changes” button •  … •  … 46 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Checking Notifications – 1/2 Given: User and Accounts Another attempt: When: Notification Rule is Configured Then: Notification Rule Configured and Active Then: Notification Rule is Active
  • 26. 24 47 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Checking Notifications – 2/2 Then: Expected Notifications When: The Transactions to be processed Another attempt: 48 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Test Automation Pyramid Pyramid originally proposed by Mike Cohn Exploratory Tests Unit Tests Component Tests (API) System Tests (GUI)
  • 27. 25 49 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Behavior Specification at Right Level Unit Tests Component Tests (API) System Tests (GUI) Broad Narrow Detail HighLow Scope 50 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Behavior Specification at Right Level Broad Narrow Detail HighLow Scope Component Tests (API) System Tests (GUI)
  • 28. 26 51 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Behavior Specification at Right Level Component Tests (API) System Tests (GUI) Rules & Algorithms Multi- Use Case Workflows Incomplete Spec Too much detail Unmaintainable Detail HighLow Broad Narrow Scope Transactions (Use Cases) 52 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Too much detail Unmaintainable Changing Level of Abstraction/Detail Rules & Algorithms Multi- Use Case Workflows Transactions (Use Cases) Reduce Scope a Lot! ReduceDetailaLot Reduce Both a bit Incomplete Spec Broad Narrow Detail HighLow Scope
  • 29. 27 53 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Refactoring Workflow Example Given: User and Accounts When: Notification Rule is Configured Then: Notification Rule Configured and Active Then: Notification Rule is Active 54 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Refactoring Workflow Example “If it isn’t essential to conveying the essence of the behavior, it is essential to not include it.”
  • 30. 28 55 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Then: Expected Notifications When: The Transactions to be processed Refactoring Workflow Example 56 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Refactoring Workflow Example
  • 31. 29 57 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Refactoring Workflow Example 58 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Refactoring Workflow ExampleGiven: User & Thresholds When: Transactions Are Processed Then: We Expect Notifications
  • 32. 30 59 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Given: User & Thresholds When: Transactions Are Processed Then: We Expect Notifications credit credit 9991113333 Refactoring Workflow Example 60 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com 9991113333 Refactoring Workflow Example Broad Scope (Multi-Actor); Minimum Detail (per Actor/Transaction); Given: User & Thresholds When: Transactions Are Processed Then: We Expect Notifications credit credit
  • 33. 31 61 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Filling in the Details Rules & Algorithms Multi- Use Case Workflows Transactions (Use Cases) Incomplete Spec ReduceDetailaLot Reduce Both a bit Too much detail Unmaintainable Reduce Scope a Lot! Broad Narrow Detail HighLow Scope 62 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Business Rule Example Process Transaction Threshold per Charge Type Configuration
  • 34. 32 63 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Process Transaction Threshold per Charge Type Narrow Scope (Single Rule) High Detail (Everything that matters) Example: Configuration Given these rules Then: The answer should be Business Rule Example When we ask NotificationRequired? with this transaction: 64 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Life Cycle of an Example User Goal Feature Story Title Story Narrative Story Scenarios Story Examples Executable Examples Satisfied Examples Formalize Automate Develop Product Make Concrete Add Data Define Acceptance Criteria Work Breakdown Product Design & Validation Elaborate
  • 35. 33 65 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Who Does Activities on an Example User Goal Feature Story Title Story Narrative Story Scenarios Story Examples Executable Examples Satisfied Examples Formalize Automate Develop Product Make Concrete Add Data Define Acceptance Criteria Work Breakdown Product Design & Validation Elaborate DevTest Bus DevTest Bus Dev Test Bus 66 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Test-After Architecture System Under Test Should we Notify?Process Transaction Configure Notification Threshold Notification Rules Transaction Interface Configuration User Interface Notification Log Workflow Test Do Notification. Bus Test Dev
  • 36. 34 67 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Example-Driven Architecture System Under Test Should we Notify? Do Notification. Process Transaction Configure Notification Threshold Notification Rules Notification Log Transaction Interface Configuration User Interface Workflow Example Workflow Keyword Interpreter Dev Dev Bus Test 68 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Transaction Interface Configuration User Interface Configure Notification Threshold System Under Test EDA – Business Rules Do Notification. Process Transaction Notification Rules Notification Log Notification Method Example Notification Rules Fake Notification Rule Example Should we Notify? Example Interpreter Example Interpreter Dev Bus Test Dev
  • 37. 35 69 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com EDA – Business Rules Should we Notify? Notification Rules Fake Notification Rule Example Example Interpreter Dev Bus Test Dev 70 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com After State – Back to Our Systems Diagram Dev doesn’t know how (or care) Tests need to interact via the UI Test Automation is Hard! It’s QA’s problem Tests are automated after Dev Complete QA isn’t involved in product definition QA is too busy testing last release Product isn’t designed for testability + + + + + + + + Tests are very complex + + QA is supposed to be “independent” + X X X X X XXX
  • 38. 36 71 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com After State – Back to Our Systems Diagram Dev knows how (and cares) Examples don’t need to interact via the UI Automated checking is Easy! Automation is Dev’s problem Examples are automated before Dev starts QA is involved in product definition QA has time for Examples and Exploratory testing Product is designed for testability + + + + + + + + Examples are simple + + A Virtuous Cycle 72 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com My Challenge to You Stop Start More 1.  Hypothesis 2. Experiment 3. Analyse 4. Communicate
  • 39. 37 73 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com 74 Copyright 2015 Gerard Meszaroshttp://StarCanada2015.gerardm.com Thank You! Gerard Meszaros StarCanada2015@gerardm.com http://www.xunitpatterns.com Slides: http://StarCanada2015.gerardm.com Call me when you: •  Want to transition to Agile or Lean •  Want to do Agile or Lean better •  Want to teach developers how to test •  Need help with test automation strategy •  Want to improve your test automation Jolt Productivity Award winner - Technical Books Available on MSDN: