SlideShare a Scribd company logo
Jason Benton
Agile Birmingham

June 2014
Beyond “Quality Assurance”

The secrets of testing on an agile team
Software Testing

Agile Coaching
Jason Benton
Twitter: @jasonfbenton

Email: jasonfbenton@gmail.com
AGILE
You keep using that word. I do not think it
means what you think it means
The Princess Bride (1987) ©
Teams are small and focused
Smaller, more frequent releases
Collaboration is essential
Self organizing teams
produce the best software
Christoffer A Rasmussen
Continuous improvement
StuckInCustoms
Challenges…
As a Association Director, I
would like to create a child
care site so that I can
schedule programs
As a Association Director, I
would like to create a child
care site so that I can
schedule programs
As a Association Director, I
would like to manage fee
charts so that I can charge
members different rates
for different programs
As a Site Director, I would
like to register a child for a
program so that I can
schedule programs
As a Site Director, I would
like to look up a child so
that I can view their
registered programs
Smaller, more frequent releases
TestingPercentage
0
25
50
75
100
Iteration
Beginning of sprint End of sprint
Testing happens late
As a <type of user> , I would
like <some functionality>, so
that <I can accomplish some
goal>.
Acceptance
Criteria
Acceptance
Criteria
Acceptance
Criteria
Acceptance
Criteria
Acceptance
Criteria
Agile Testing at Daxko
http://context-driven-testing.com/
• The value of any practice depends on its context.
• There are good practices in context, but there are no best practices.
• People, working together, are the most important part of any project’s
context.
• Projects unfold over time in ways that are often not predictable.
• The product is a solution. If the problem isn’t solved, the product doesn’t
work.
• Good software testing is a challenging intellectual process.
• Only through judgment and skill, exercised cooperatively throughout the
entire project, are we able to do the right things at the right times to
effectively test our products.
The Seven Basic Principles of the Context-Driven School
Quality is
everyone’s
responsibility
Testing Principles
• The essential value of any test is its ability to provide information and reduce uncertainty.
• The value of any practice depends on its context.
• There are good practices in context, but there are no best practices. Effective testing requires contextual analysis and
consideration. Factors such as risk, complexity, fragility, priority, value, and performance need to be considered.
• Testing activities should begin as early as possible. Be practical! Testers should collaborate with development to break
stories into small, testable pieces during planning.
• Manual test sessions need to vary over time. The same tests repeated manually over time provide diminishing value. This
is one of the biggest advantages of structured exploratory testing.
• Test documentation is a valuable tool to the extent that it helps you manage your testing project and find defects. Beyond
that, it is a diversion of resources.
• Know the user. Know the problem we are trying to solve. Focus on delivering value to customers. Finding and fixing
defects does not help if the system built is unusable and does not fulfill the user's needs and expectations.
• To be effective and efficient, testing activities must include: plan or charter for testing, test design, preparing test
environments, executing tests, and evaluating results. These activities may overlap or take place concurrently.
• Defects should be communicated in a constructive way. Bad feelings between testers, designers, and developers can be
avoided. Communicate findings in a neutral, fact focused way without criticism.
• Inspect and adapt. Reflect on what went well and what can be improved with each iteration. Strive to continuously learn
and improve.
• Automated testing is better than manual testing.
• Manual testing is better than automated testing.
As a registered user, I
would like to be able to
login so that I can access
my files from anywhere
3 unsuccessful
login attempts
results in a 10
minute lockout
Account is
protected by
username
(email) and
password
Authenticated
users can see
their account
info (name,
email, and
password)
3 unsuccessful
login attempts
results in a 10
minute lockout
Account is
protected by
username
(email) and
password
Authenticated
users can see
their account
info (name,
email, and
password)
As a registered user, I
would like to be able to
login so that I can access
my files from anywhere
3 unsuccessful
login attempts
results in a 10
minute lockout
Account is
protected by
username
(email) and
password
Authenticated
users can see
their account
info (name,
email, and
password)
As a registered user, I
would like to be able to
login so that I can access
my files from anywhere
Iterative
Plan
Design
Develop
Test
Plan
Design
Develop
Test
Plan
Design
Develop
Test
Plan
Design
Develop
Test
2 Weeks 2 Weeks 2 Weeks 2 Weeks
Eliminate Waste
Session Based
Exploratory Testing
http://www.satisfice.com/sbtm/
Exploratory Testing:
Simultaneous learning, test design and test execution.
1) Charter - the goal or mission for the test session
!
2) Session - an uninterrupted period of time spent testing
!
3) Session Report - detailed record of the testing session and results
!
4) Debrief - a short discussion about the session report
Session Based Exploratory Testing
Charter Examples
• Explore all workflows for adding members (in-house and online)
• Explore and analyze the Reciprocity app. Produce a Feature Map that outlines the
capabilities and features.
• Explore the budget workflow from start to finish.
• Compare data in various custom reports from before and after an upgrade to Logi.
• Verify all maintenance item fixes in the Fundraising component for Operations 11.6
• Test all fields that allow data entry for SQL injection.
• Check UI against Daxko design standards.
• Test all 3rd party integration with Operations
• Explore the ability to change member info using the online account feature
• Validate the accuracy of the financial batch jobs for credit card processing
Session Report Example
• Require testers to identify test objectives and focus their testing
efforts on fulfilling them.
• Encourage testers to modify existing tests and add new tests to
meet those objectives as they test.
• Provide a useful way to manage and review exploratory testing.
• Focus attention on the testing that’s actually performed, not just
on test case results.
• Give testers the flexibility to respond to changes and re-plan their
testing quickly.
Benefits
Tools and Techniques
Feature Maps
Feature Maps
Heuristics
http://www.satisfice.com/tools/htsm.pdf
Risk Heuristics:

Generic risks are risks that are universal to any system. These are my favorite generic risks:
!
• Complex: anything disproportionately large, intricate, or convoluted.
!
• New: anything that has no history in the product.
!
• Changed: anything that has been tampered with or "improved".
!
• Upstream Dependency: anything whose failure will cause cascading failure in the rest of the system.
!
• Downstream Dependency: anything that is especially sensitive to failures in the rest of the system.
!
• Critical: anything whose failure could cause substantial damage.
!
• Precise: anything that must meet its requirements exactly.
!
• Popular: anything that will be used a lot.
!
• Strategic: anything that has special importance to your business, such as a feature that sets you apart
from the competition.
!
• Third-party: anything used in the product, but developed outside the project.
!
• Distributed: anything spread out in time or space, yet whose elements must work together.
!
• Buggy: anything known to have a lot of problems.
!
• Recent failure: anything with a recent history of failure.
SFDPO - San Francisco Depot"
!
• Structure (what the product is): What files does it have? Do I know anything
about how it was built? Is it one program or many? What physical material comes
with it? Can I test it module by module?
!
• Function (what the product does): What are its functions? What kind of error
handling does it do? What kind of user interface does it have? Does it do anything
that is not visible to the user? How does it interface with the operating system?
!
• Data (what it processes): What kinds of input does it process? What does its
output look like? What kinds of modes or states can it be in? Does it come
packaged with preset data? Is any of its input sensitive to timing or sequencing?
!
• Platform (what it depends upon): What systems does it run on? Does the
environment have to be configured in any special way? Does it depend on third-
party components?
!
• Operations (how it will be used): Who will use it? Where and how will they use it?
What will they use it for? Are there certain things that users are more likely to do?
Is there user data we could get to help make the tests more realistic?
Big Visible Charts
Test Automation
Unit
Service
UI
Test Automation
Unit
Service
UI
Functional Test Automation
• Whole team responsibility
• Page Object Model design pattern
• Watir & RSpec
• Breadth > Depth
• Run tests often
• Make broken tests visible to the team
Compliance
Lessons Learned
TestingPercentage
0
25
50
75
100
Iteration
Beginning of sprint End of sprint
Test early, test often
Build quality in
Unit Testing Code Reviews
Pairing Automated Tests
Continuous
Integration
Story Mapping
Collaborate on test ideas
Collaborate on problems
Get testers involved in planning and
estimation
Jakuza
Be cross-functional!
Get out of the building!
Office Space (1999) ©
Outcomes > Output
Get everyone testing!
Question value vs. cost for all of your
testing efforts.
Use prod-like environments for testing
Learn where defects cluster
Questions?
Software Testing

Agile Coaching
Jason Benton
Twitter: @jasonfbenton

Email: jasonfbenton@gmail.com

More Related Content

What's hot

Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
SHREEHARI WADAWADAGI
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
sharmaparish
 
Performance Testing And Its Type | Benefits Of Performance Testing
Performance Testing And Its Type | Benefits Of Performance TestingPerformance Testing And Its Type | Benefits Of Performance Testing
Performance Testing And Its Type | Benefits Of Performance Testing
KostCare
 
Principles of Software testing
Principles of Software testingPrinciples of Software testing
Principles of Software testing
Md Mamunur Rashid
 
Performance testing
Performance testingPerformance testing
Performance testing
Ranpreet kaur
 
Quality Concept
Quality ConceptQuality Concept
Quality Concept
Anand Jat
 
Manual and Automation notes.pdf
Manual and Automation notes.pdfManual and Automation notes.pdf
Manual and Automation notes.pdf
synamedia
 
Performance testing
Performance testingPerformance testing
Performance testing
Jyoti Babbar
 
Regression testing
Regression testingRegression testing
Regression testing
Anamta Sayyed
 
EFFECTIVE MODULAR DESIGN.pptx
EFFECTIVE MODULAR DESIGN.pptxEFFECTIVE MODULAR DESIGN.pptx
EFFECTIVE MODULAR DESIGN.pptx
DrTThendralCompSci
 
Software testing
Software testing Software testing
Software testing
Kunal Prajapati
 
Testing types functional and nonfunctional - Kati Holasz
Testing types   functional and nonfunctional - Kati HolaszTesting types   functional and nonfunctional - Kati Holasz
Testing types functional and nonfunctional - Kati Holasz
Holasz Kati
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testing
Richard Bishop
 
Unit 1 defects classes
Unit 1 defects classesUnit 1 defects classes
Unit 1 defects classes
Roselin Mary S
 
Software security testing
Software security testingSoftware security testing
Software security testing
nehabsairam
 
System testing
System testingSystem testing
System testing
Kinnudj Amee
 
Comparison manual & automation
Comparison manual & automationComparison manual & automation
Comparison manual & automation
Rashmi Kanta Mohapatra
 
Smoke Testing
Smoke TestingSmoke Testing
Smoke Testing
Kanoah
 
Software testing
Software testingSoftware testing

What's hot (20)

Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
 
Performance Testing And Its Type | Benefits Of Performance Testing
Performance Testing And Its Type | Benefits Of Performance TestingPerformance Testing And Its Type | Benefits Of Performance Testing
Performance Testing And Its Type | Benefits Of Performance Testing
 
Principles of Software testing
Principles of Software testingPrinciples of Software testing
Principles of Software testing
 
Performance testing
Performance testingPerformance testing
Performance testing
 
Quality Concept
Quality ConceptQuality Concept
Quality Concept
 
Manual and Automation notes.pdf
Manual and Automation notes.pdfManual and Automation notes.pdf
Manual and Automation notes.pdf
 
Performance testing
Performance testingPerformance testing
Performance testing
 
Regression testing
Regression testingRegression testing
Regression testing
 
EFFECTIVE MODULAR DESIGN.pptx
EFFECTIVE MODULAR DESIGN.pptxEFFECTIVE MODULAR DESIGN.pptx
EFFECTIVE MODULAR DESIGN.pptx
 
Software testing
Software testing Software testing
Software testing
 
Testing types functional and nonfunctional - Kati Holasz
Testing types   functional and nonfunctional - Kati HolaszTesting types   functional and nonfunctional - Kati Holasz
Testing types functional and nonfunctional - Kati Holasz
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testing
 
Verification & Validation
Verification & ValidationVerification & Validation
Verification & Validation
 
Unit 1 defects classes
Unit 1 defects classesUnit 1 defects classes
Unit 1 defects classes
 
Software security testing
Software security testingSoftware security testing
Software security testing
 
System testing
System testingSystem testing
System testing
 
Comparison manual & automation
Comparison manual & automationComparison manual & automation
Comparison manual & automation
 
Smoke Testing
Smoke TestingSmoke Testing
Smoke Testing
 
Software testing
Software testingSoftware testing
Software testing
 

Viewers also liked

Knowledge sharing for QA teams
Knowledge sharing for QA teamsKnowledge sharing for QA teams
Knowledge sharing for QA teams
Zbyszek Mockun
 
Code campiasi qa-in-agile-projects-ana-figher-embarcadero
Code campiasi qa-in-agile-projects-ana-figher-embarcaderoCode campiasi qa-in-agile-projects-ana-figher-embarcadero
Code campiasi qa-in-agile-projects-ana-figher-embarcadero
Codecamp Romania
 
Tools for Software Verification and Validation
Tools for Software Verification and ValidationTools for Software Verification and Validation
Tools for Software Verification and Validationaliraza786
 
Regression and performance testing
Regression and performance testingRegression and performance testing
Regression and performance testing
Himanshu
 
Validation testing
Validation testingValidation testing
Validation testingSlideshare
 

Viewers also liked (6)

Knowledge sharing for QA teams
Knowledge sharing for QA teamsKnowledge sharing for QA teams
Knowledge sharing for QA teams
 
Code campiasi qa-in-agile-projects-ana-figher-embarcadero
Code campiasi qa-in-agile-projects-ana-figher-embarcaderoCode campiasi qa-in-agile-projects-ana-figher-embarcadero
Code campiasi qa-in-agile-projects-ana-figher-embarcadero
 
Tools for Software Verification and Validation
Tools for Software Verification and ValidationTools for Software Verification and Validation
Tools for Software Verification and Validation
 
Regression and performance testing
Regression and performance testingRegression and performance testing
Regression and performance testing
 
Testing tools
Testing toolsTesting tools
Testing tools
 
Validation testing
Validation testingValidation testing
Validation testing
 

Similar to Beyond "Quality Assurance"

Unit4 for st.pdf
Unit4 for st.pdfUnit4 for st.pdf
Unit4 for st.pdf
Poonkodi Jayakumar
 
! Testing for agile teams
! Testing for agile teams! Testing for agile teams
! Testing for agile teams
Dennis Popov
 
Tune Agile Test Strategies to Project and Product Maturity
Tune Agile Test Strategies to Project and Product MaturityTune Agile Test Strategies to Project and Product Maturity
Tune Agile Test Strategies to Project and Product Maturity
TechWell
 
Organizational responsibilities and test automation
Organizational responsibilities and test automationOrganizational responsibilities and test automation
Organizational responsibilities and test automation
vineeta vineeta
 
Unit4 for st.pdf
Unit4 for st.pdfUnit4 for st.pdf
Unit4 for st.pdf
Poonkodi Jayakumar
 
體驗劇場_1050524_W14_易用性測試_楊政達
體驗劇場_1050524_W14_易用性測試_楊政達體驗劇場_1050524_W14_易用性測試_楊政達
體驗劇場_1050524_W14_易用性測試_楊政達
Visual Cognition and Modeling Lab
 
Agile testingandautomation
Agile testingandautomationAgile testingandautomation
Agile testingandautomation
jeisner
 
Advancing Testing Program Maturity in your organization
Advancing Testing Program Maturity in your organizationAdvancing Testing Program Maturity in your organization
Advancing Testing Program Maturity in your organization
Ramkumar Ravichandran
 
Software testing
Software testingSoftware testing
Software testing
Nico Heidtke
 
The Leaders Guide to Getting Started with Automated Testing
The Leaders Guide to Getting Started with Automated TestingThe Leaders Guide to Getting Started with Automated Testing
The Leaders Guide to Getting Started with Automated Testing
James Briers
 
Agile Testing - What, why and how.
Agile Testing - What, why and how.Agile Testing - What, why and how.
Agile Testing - What, why and how.
Asim Kazmi
 
How to make change happen in your organisation by talking your devs language
How to make change happen in your organisation by talking your devs languageHow to make change happen in your organisation by talking your devs language
How to make change happen in your organisation by talking your devs language
Builtvisible
 
Intro to Lean UX with UserTesting
Intro to Lean UX with UserTestingIntro to Lean UX with UserTesting
Intro to Lean UX with UserTesting
Carlos González de Villaumbrosia
 
Effective Business Analysis in a Changing World
Effective Business Analysis in a Changing WorldEffective Business Analysis in a Changing World
Effective Business Analysis in a Changing World
DevFactoTechnologies
 
Establishing an Agile Testing Culture
Establishing an Agile Testing CultureEstablishing an Agile Testing Culture
Establishing an Agile Testing Culture
TechWell
 
What is Software Quality and how to measure it?
What is Software Quality and how to measure it?What is Software Quality and how to measure it?
What is Software Quality and how to measure it?
Denys Zaiats
 
Metrics in usability testing and user experiences
Metrics in usability testing and user experiencesMetrics in usability testing and user experiences
Metrics in usability testing and user experiences
Him Chitchat
 
Fundamentals_of_Software_testing.pptx
Fundamentals_of_Software_testing.pptxFundamentals_of_Software_testing.pptx
Fundamentals_of_Software_testing.pptx
MusaBashir9
 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testing
Muhammad Khairil
 

Similar to Beyond "Quality Assurance" (20)

Unit4 for st.pdf
Unit4 for st.pdfUnit4 for st.pdf
Unit4 for st.pdf
 
! Testing for agile teams
! Testing for agile teams! Testing for agile teams
! Testing for agile teams
 
Tune Agile Test Strategies to Project and Product Maturity
Tune Agile Test Strategies to Project and Product MaturityTune Agile Test Strategies to Project and Product Maturity
Tune Agile Test Strategies to Project and Product Maturity
 
Organizational responsibilities and test automation
Organizational responsibilities and test automationOrganizational responsibilities and test automation
Organizational responsibilities and test automation
 
Unit4 for st.pdf
Unit4 for st.pdfUnit4 for st.pdf
Unit4 for st.pdf
 
體驗劇場_1050524_W14_易用性測試_楊政達
體驗劇場_1050524_W14_易用性測試_楊政達體驗劇場_1050524_W14_易用性測試_楊政達
體驗劇場_1050524_W14_易用性測試_楊政達
 
Agile testingandautomation
Agile testingandautomationAgile testingandautomation
Agile testingandautomation
 
Advancing Testing Program Maturity in your organization
Advancing Testing Program Maturity in your organizationAdvancing Testing Program Maturity in your organization
Advancing Testing Program Maturity in your organization
 
Usability testing 2013.12.20.
Usability testing 2013.12.20.Usability testing 2013.12.20.
Usability testing 2013.12.20.
 
Software testing
Software testingSoftware testing
Software testing
 
The Leaders Guide to Getting Started with Automated Testing
The Leaders Guide to Getting Started with Automated TestingThe Leaders Guide to Getting Started with Automated Testing
The Leaders Guide to Getting Started with Automated Testing
 
Agile Testing - What, why and how.
Agile Testing - What, why and how.Agile Testing - What, why and how.
Agile Testing - What, why and how.
 
How to make change happen in your organisation by talking your devs language
How to make change happen in your organisation by talking your devs languageHow to make change happen in your organisation by talking your devs language
How to make change happen in your organisation by talking your devs language
 
Intro to Lean UX with UserTesting
Intro to Lean UX with UserTestingIntro to Lean UX with UserTesting
Intro to Lean UX with UserTesting
 
Effective Business Analysis in a Changing World
Effective Business Analysis in a Changing WorldEffective Business Analysis in a Changing World
Effective Business Analysis in a Changing World
 
Establishing an Agile Testing Culture
Establishing an Agile Testing CultureEstablishing an Agile Testing Culture
Establishing an Agile Testing Culture
 
What is Software Quality and how to measure it?
What is Software Quality and how to measure it?What is Software Quality and how to measure it?
What is Software Quality and how to measure it?
 
Metrics in usability testing and user experiences
Metrics in usability testing and user experiencesMetrics in usability testing and user experiences
Metrics in usability testing and user experiences
 
Fundamentals_of_Software_testing.pptx
Fundamentals_of_Software_testing.pptxFundamentals_of_Software_testing.pptx
Fundamentals_of_Software_testing.pptx
 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testing
 

Recently uploaded

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 

Recently uploaded (20)

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 

Beyond "Quality Assurance"

  • 1. Jason Benton Agile Birmingham June 2014 Beyond “Quality Assurance”
 The secrets of testing on an agile team
  • 2. Software Testing Agile Coaching Jason Benton Twitter: @jasonfbenton Email: jasonfbenton@gmail.com
  • 3. AGILE You keep using that word. I do not think it means what you think it means The Princess Bride (1987) ©
  • 4. Teams are small and focused
  • 6.
  • 8. Self organizing teams produce the best software Christoffer A Rasmussen
  • 11. As a Association Director, I would like to create a child care site so that I can schedule programs As a Association Director, I would like to create a child care site so that I can schedule programs As a Association Director, I would like to manage fee charts so that I can charge members different rates for different programs As a Site Director, I would like to register a child for a program so that I can schedule programs As a Site Director, I would like to look up a child so that I can view their registered programs
  • 13.
  • 15. As a <type of user> , I would like <some functionality>, so that <I can accomplish some goal>. Acceptance Criteria Acceptance Criteria Acceptance Criteria Acceptance Criteria Acceptance Criteria
  • 17. http://context-driven-testing.com/ • The value of any practice depends on its context. • There are good practices in context, but there are no best practices. • People, working together, are the most important part of any project’s context. • Projects unfold over time in ways that are often not predictable. • The product is a solution. If the problem isn’t solved, the product doesn’t work. • Good software testing is a challenging intellectual process. • Only through judgment and skill, exercised cooperatively throughout the entire project, are we able to do the right things at the right times to effectively test our products. The Seven Basic Principles of the Context-Driven School
  • 19. Testing Principles • The essential value of any test is its ability to provide information and reduce uncertainty. • The value of any practice depends on its context. • There are good practices in context, but there are no best practices. Effective testing requires contextual analysis and consideration. Factors such as risk, complexity, fragility, priority, value, and performance need to be considered. • Testing activities should begin as early as possible. Be practical! Testers should collaborate with development to break stories into small, testable pieces during planning. • Manual test sessions need to vary over time. The same tests repeated manually over time provide diminishing value. This is one of the biggest advantages of structured exploratory testing. • Test documentation is a valuable tool to the extent that it helps you manage your testing project and find defects. Beyond that, it is a diversion of resources. • Know the user. Know the problem we are trying to solve. Focus on delivering value to customers. Finding and fixing defects does not help if the system built is unusable and does not fulfill the user's needs and expectations. • To be effective and efficient, testing activities must include: plan or charter for testing, test design, preparing test environments, executing tests, and evaluating results. These activities may overlap or take place concurrently. • Defects should be communicated in a constructive way. Bad feelings between testers, designers, and developers can be avoided. Communicate findings in a neutral, fact focused way without criticism. • Inspect and adapt. Reflect on what went well and what can be improved with each iteration. Strive to continuously learn and improve. • Automated testing is better than manual testing. • Manual testing is better than automated testing.
  • 20. As a registered user, I would like to be able to login so that I can access my files from anywhere 3 unsuccessful login attempts results in a 10 minute lockout Account is protected by username (email) and password Authenticated users can see their account info (name, email, and password)
  • 21. 3 unsuccessful login attempts results in a 10 minute lockout Account is protected by username (email) and password Authenticated users can see their account info (name, email, and password) As a registered user, I would like to be able to login so that I can access my files from anywhere
  • 22. 3 unsuccessful login attempts results in a 10 minute lockout Account is protected by username (email) and password Authenticated users can see their account info (name, email, and password) As a registered user, I would like to be able to login so that I can access my files from anywhere
  • 25.
  • 27. Exploratory Testing: Simultaneous learning, test design and test execution.
  • 28. 1) Charter - the goal or mission for the test session ! 2) Session - an uninterrupted period of time spent testing ! 3) Session Report - detailed record of the testing session and results ! 4) Debrief - a short discussion about the session report Session Based Exploratory Testing
  • 29. Charter Examples • Explore all workflows for adding members (in-house and online) • Explore and analyze the Reciprocity app. Produce a Feature Map that outlines the capabilities and features. • Explore the budget workflow from start to finish. • Compare data in various custom reports from before and after an upgrade to Logi. • Verify all maintenance item fixes in the Fundraising component for Operations 11.6 • Test all fields that allow data entry for SQL injection. • Check UI against Daxko design standards. • Test all 3rd party integration with Operations • Explore the ability to change member info using the online account feature • Validate the accuracy of the financial batch jobs for credit card processing
  • 31. • Require testers to identify test objectives and focus their testing efforts on fulfilling them. • Encourage testers to modify existing tests and add new tests to meet those objectives as they test. • Provide a useful way to manage and review exploratory testing. • Focus attention on the testing that’s actually performed, not just on test case results. • Give testers the flexibility to respond to changes and re-plan their testing quickly. Benefits
  • 36. Risk Heuristics:
 Generic risks are risks that are universal to any system. These are my favorite generic risks: ! • Complex: anything disproportionately large, intricate, or convoluted. ! • New: anything that has no history in the product. ! • Changed: anything that has been tampered with or "improved". ! • Upstream Dependency: anything whose failure will cause cascading failure in the rest of the system. ! • Downstream Dependency: anything that is especially sensitive to failures in the rest of the system. ! • Critical: anything whose failure could cause substantial damage. ! • Precise: anything that must meet its requirements exactly. ! • Popular: anything that will be used a lot. ! • Strategic: anything that has special importance to your business, such as a feature that sets you apart from the competition. ! • Third-party: anything used in the product, but developed outside the project. ! • Distributed: anything spread out in time or space, yet whose elements must work together. ! • Buggy: anything known to have a lot of problems. ! • Recent failure: anything with a recent history of failure.
  • 37. SFDPO - San Francisco Depot" ! • Structure (what the product is): What files does it have? Do I know anything about how it was built? Is it one program or many? What physical material comes with it? Can I test it module by module? ! • Function (what the product does): What are its functions? What kind of error handling does it do? What kind of user interface does it have? Does it do anything that is not visible to the user? How does it interface with the operating system? ! • Data (what it processes): What kinds of input does it process? What does its output look like? What kinds of modes or states can it be in? Does it come packaged with preset data? Is any of its input sensitive to timing or sequencing? ! • Platform (what it depends upon): What systems does it run on? Does the environment have to be configured in any special way? Does it depend on third- party components? ! • Operations (how it will be used): Who will use it? Where and how will they use it? What will they use it for? Are there certain things that users are more likely to do? Is there user data we could get to help make the tests more realistic?
  • 39.
  • 42. Functional Test Automation • Whole team responsibility • Page Object Model design pattern • Watir & RSpec • Breadth > Depth • Run tests often • Make broken tests visible to the team
  • 46. Build quality in Unit Testing Code Reviews Pairing Automated Tests Continuous Integration Story Mapping
  • 49. Get testers involved in planning and estimation Jakuza
  • 51. Get out of the building! Office Space (1999) ©
  • 54. Question value vs. cost for all of your testing efforts.
  • 57.
  • 58.
  • 59.
  • 60. Questions? Software Testing Agile Coaching Jason Benton Twitter: @jasonfbenton Email: jasonfbenton@gmail.com

Editor's Notes

  1. Intro (QA+Agile Coach background) Are there any testers here?! Ask what people are struggling with related to agile and testing?
  2. Set the context for what I mean when I say “Agile teams”
  3. Teams are small, cross-functional and dedicated to a single product or product area.
  4. Focus on frequent delivery of value No single, big releases every 6-12 months We measure cycle time to help us keep this short
  5. We embrace the notion that requirements change, unexpected requirements appear, and priorities shift. Our development practices must enable quick, accurate adaptation to these changes. How many times have you heard someone say, “That is cool - but... what if it also did X?”
  6. Everyone is involved in story writing, estimation, planning, etc. Builds a shared understanding! Teams all sit together in a single open space
  7. Teams should be empowered to focus on doing whatever is necessary to deliver the features. Encourage teams to swarm on tasks that need to be completed even if it puts them out of their comfort zone.
  8. Always strive to improve. Constantly look at how we are doing and ask “What could we do to be better?” At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior. Agile is not a destination - We work differently today, than we did 6 months ago. (Does this all sound familiar?)
  9. This creates a lot of challenges from a software testing perspective. A lot of teams haven’t changed their approach to testing. They are doing the same things that were being taught 20 years ago. Most of those things didn’t work then, and certainly don’t now.
  10. Requirements aren’t as detailed - There’s no “the system shall…” level of detail User stories with acceptance criteria
  11. More releases mean more regression testing Some teams push code to production daily!
  12. Pace is much faster. We no longer have periods of weeks to plan our testing
  13. Sprints become mini waterfalls Testing only happens at the end of the sprint Defects carry over into the next sprint
  14. Late changes to the requirements that necessitate additional testing Some teams create additional stories for those
  15. We are context driven. Ultimately, context-driven testing is about doing the best we can with what we get. Rather than trying to apply “best practices,” we accept that very different practices will work best under different circumstances. Understand that as you learn more about how we work. Our way of doing things may or may not work well in your specific context.
  16. Quality is everyone’s responsibility. There’s no throw it over the wall mentality. Happened organically. We don’t play teams against one another. There is a culture of learning, not blame. If we ship a critical defect, the whole team reflects on what they have learned from it and what they should do differently.
  17. We came up with a set of principles that can be used to guide and direct the team. We review them with the team on a regular basis and modify as needed
  18. Requirements are expressed as User Stories with Acceptance Criteria Story mapping helps build a shared understanding Product Owner team creates stories, and the rest of the team helps to refine them.
  19. We focus on who the users are and what are their goals. We can build software that does not have defects and still not meet the users needs.
  20. Tests start around acceptance criteria and user personas
  21. 2 weeks sprints. ScrumBan Definition of “Done” for each team. Working software is demonstrated every 2 weeks. Sprint retrospective at the end of each sprint
  22. Foster a culture where it is OK to question the value of a particular process or activity. Worked to optimize the teams workflow and eliminate unnecessary activities and deliverables.
  23. Biggest example of us eliminating waste is eliminating detailed test cases from our testing process By test cases, I mean “Open this page, enter this value, click this button, expect this result, etc.” type of test cases
  24. ALL of our manual testing is done using exploratory testing
  25. A lot of the old ways of testing assumed that we knew up front all of the ways that the system would be used and how it should behave. That’s simply not possible.
  26. James & Jon Bach created this as a way to put structure and organization around ET.
  27. Charters are created prior to the start of testing, but may be added or changed at any time. Others can suggest charters!
  28. Using Capture plugin for Jira for managing session-based ET.
  29. We found that switching to this process made us more productive and effective. Caveats: You have to have really good testers that can think for themselves!
  30. We don’t have scripted test cases. The Feature Map is simply a map of application and features Broken down into functional areas of the system. Recently updated the menu in our flagship product. It only took a few hours to update the Feature Map.
  31. Checklist Doesn’t tell you how to test. Can help you with managing risk when making changes and doing manual regression. Can help tell you where to focus.
  32. Mental shortcuts experience-based techniques for problem solving, learning, and discovery
  33. Example of a heuristic around determining risk
  34. Example of a test technique heuristic. This one is used to help generate different test ideas
  35. We use a LOT of flip chart paper and sticky notes Cycle time, sprint burnup, user story maps, release plan, PO team backlog, etc. Big on communication and transparency
  36. One team’s task board. There’s a LOT of info on here. Stories are in priority order. Color coded by task. Magnetic avatars to indicate “who” is working on something. Columns indicate progress.
  37. Automation Triangle - Mike Cohn Our CI runs unit tests with each build
  38. QA is focused on functional test automation at the UI. These are expensive to maintain QA can give input to Unit tests (field validation as an example) We are still working on this! Some teams are doing better than others.
  39. QA Team learned Ruby together using online training. dev/tester mentoring We created a weekly workshop to write tests together. Picked Ruby because of popularity, support, and ease.
  40. These processes and tools can work in a highly regulated environment. We have passed our SSAE16 and PCI audits with flying colors for the last 3 years.
  41. Do things that promote early learning Don’t wait until the car is built to test it. Test the parts! Break stories down into smaller stories that can be completed in 1-2 days. Consider pushing acceptance criteria to test instead of complete stories
  42. Promote things that help build quality into your development process. Coaching other team members on testing Trying to improve quality by increasing your testing efforts is like trying to lose weight by weighing yourself more.
  43. Collaborate on test ideas - you may learn things that you don’t need to test (Covered by Unit tests) Paired testing! Dev + Tester, Designer + Tester, Tester + Tester, etc.
  44. Make testing problems visible to the rest of the team! They may be able to help you solve them!
  45. Get testers involved in planning & estimation! They will find problems early. Testers tend to know the whole system and not just parts. They can often point out potential issues well before actual development begins.
  46. When testing is needed, does everyone test? -Alistair Cockburn Think of “roles” as positions on a sports team. The punter will make a tackle if he’s the only defender left between the ball and the endzone - Jeff Patton
  47. Get out of the building. Get your team in front of customers if at all possible. They will build empathy and better understand your customers problems, goals, and needs. You have to really understand the problem before you can develop a solution.
  48. Focus on measuring outcomes instead of output. It’s what really matters. Not velocity, closed cases, support calls, defects, LoC, etc! Does the software help people solve problems and achieve their goals? Don’t count defects or use metrics that count defects. That doesn’t promote behavior that you want. Trust me.
  49. Get everyone testing! Test drive site for everyone (sales, marketing, support, etc.) Rewards and recognition for people that find issues.
  50. This can help you prioritize and know when to stop testing “Is this the most valuable thing I can do to move the project forward?”
  51. Use production-like data and test environments for development and testing.
  52. Create taxonomies for defects. See where they cluster. Work to eliminate entire classes of defects. Ex. Business logic in stored procedures, field validation errors, etc.
  53. Inspect and adapt! Reflect on how the team is working and what could be improved. Do this frequently! I actually do this with my family as well!
  54. Most importantly - Have fun!
  55. Most importantly - Have fun!
  56. Let me know if you have comments or questions!