SlideShare a Scribd company logo
1 of 21
Download to read offline
Agile Testing Overview
Copyright (c) 2008, Quality Tree Software, Inc. 1
Copyright (c) 2007, Quality Tree Software, Inc. 2
Agile Myths, Busted
Contrary to popular myth, Agile methods are not sloppy, ad hoc, do-whatever-feels-
good processes. Quite the contrary. As Mary Poppendieck points out, speed
requires discipline (see http://www.poppendieck.com/lean-six-sigma.htm). And
Extreme Programming in particular is one of the most disciplined software
development processes I’ve ever seen.
This means that some of the teams that claim to be doing “Agile” aren’t.
Compressing the schedule, throwing out the documentation, and coding up to the
last minute is not Agile: it may result in short term speed but at the cost of long term
pain. Agile methods are above all sustainable.
Agile teams really do need testers – or at least people who have strong testing skills.
But there is a small grain of truth in the idea that Agile teams don’t need QA. That’s
because Agile teams don’t need is QA acting as a Quality Police. The business
stakeholder – whether the Scrum Product Owner or the XP “Customer” – define
what’s acceptable and what’s not. The QA or Test group supports the business
stakeholder by helping them clarify acceptance criteria and understand risks.
Agile Testing Overview
Copyright (c) 2008, Quality Tree Software, Inc. 3
Version 5.6 Copyright (c) 2007, Quality Tree Software, Inc. 4
Testing Moves the Project Forward
On traditional projects, testing is usually treated as a quality gate, and the QA/Test
group often serves as the quality gatekeeper. It’s considered the responsibility of
testing to prevent bad software from going out to the field. The result of this
approach is long, drawn out bug scrub meetings in which we argue about the priority
of the bugs found in test and whether or not they are sufficiently important and/or
severe to delay a release.
On Agile teams, we build the product well from the beginning, using testing to
provide feedback on an ongoing basis about how well the emerging product is
meeting the business needs.
This sounds like a small shift, but it has profound implications. The adversarial
relationship that some organizations foster between testers and developers must be
replaced with a spirit of collaboration. It’s a completely different mindset.
Copyright (c) 2007, Quality Tree Software, Inc. 5
Testing is NOT a Phase…
…on Agile teams, testing is a way of life.
Agile teams test continuously. It’s the only way to be sure that the features
implemented during a given iteration or sprint are actually done.
Continuous testing is the only way to ensure continuous progress.
Everyone Tests
On traditional projects, the independent testers are responsible for all test activities.
In Agile, getting the testing done is the responsibility of the whole team. Yes, testers
execute tests. Developers do too.
The need to get all testing done in an iteration may mean that the team simply
cannot do as much in each sprint as they originally thought. If this is the case, then
Agile has made visible the impedance mismatch between test and dev that already
existed. And that means that the team was not going as fast as they thought. They
appeared to be going quickly because the developers were going fast. But if the
testing isn't done, then the features aren't done, and the team just does not have the
velocity they think.
Another way of thinking about this idea is that testing is the "herbie" on the team
(see Goldratt's The Goal). Theory of Constraints says that the whole team can only
go as fast as the slowest part. To go faster, the team has to widen the throughput of
the slowest part of the process. Eliminate the bottleneck; everyone tests.
Agile Testing Overview
Copyright (c) 2008, Quality Tree Software, Inc. 6
Agile Testing Overview
Copyright (c) 2008, Quality Tree Software, Inc. 7
Shortening Feedback Loops
How long does the team have to wait for information about how the software is
behaving? Measure the time between when a programmer writes a line of code and
when someone or something executes that code and provides information about how
it behaves. That’s a feedback loop.
If the software isn’t tested until the very end of a long release, the feedback loops
will be extended and can be measured in months. That’s too long.
Shorter feedback loops increase Agility. Fortunately, on Agile projects the software
is ready to test almost from the beginning. And Agile teams typically employ
several levels of testing to uncover different types of information.
Automated unit tests check the behavior of individual functions/methods and object
interactions. They’re run often, and provide feedback in minutes. Automated
acceptance tests usually check the behavior of the system end-to-end. (Although,
sometimes they bypass the GUI, checking the underlying business logic.) They’re
typically run on checked in code on an ongoing basis, providing feedback in an hour
or so. Agile projects favor automated tests because of the rapid feedback they
provide.
Manual regression tests take longer to execute and, because a human must be
available, may not begin immediately. Feedback time increases to days or weeks.
Manual testing, particularly manual exploratory testing, is still important. However,
Agile teams typically find that the fast feedback afforded by automated regression is
a key to detecting problems quickly, thus reducing risk and rework.
Version 5.6 Copyright (c) 2007, Quality Tree Software, Inc. 8
So Where Do Those Expectations Come From?
Once upon a time, before I started working on XP projects, I worked on a project
where the developer protested “SCOPE CREEP!” to every bug report I filed.
Sadly, the two of us built up a lot of animosity arguing over whether or not the bugs
I found were bugs or enhancements. I reasoned that I was testing conditions that
were likely to occur in the real world, and “not crashing” did not count as an
enhancement. The programmer argued that he’d done what he’d been asked to do
and that it was too late to add more work to his plate. “No one said anything about
the software being able to handle corrupt data!” he snapped.
I realized that the programmer thought I was making up new requirements as I went
along.
Of course, that’s not what I intended. The way I saw it, my testing was revealing
answers to questions no one had thought to ask before: What if this file is locked?
What if that connection is broken? What if the data is corrupted? I would have asked
the questions earlier if I could, but this was a waterfall-ish project, and testing
happened at the very end of the process.
Working with XP teams has taught me that every test, whether manual or automated,
scripted or exploratory, represents a bundle of expectations. Like the file tests I ran
on that early project, sometimes those expectations represent implicit requirements
(like “don’t crash”). But sometimes my expectations turn out to be unreasonable.
So now, before I spend a huge amount of time testing for a given type of risk, I ask
questions to clarify my expectations with the project stakeholders.
Agile Testing Overview
Copyright (c) 2008, Quality Tree Software, Inc. 9
Keep the Code Clean
This principle is an example of the discipline that Agile teams have. It takes
tremendous internal discipline to fix bugs as they are found. If it’s a genuine bug, as
opposed to a new story, it is fixed within the iteration. To do otherwise is like
cooking in a filthy kitchen: it takes longer to wade through the mess to do the
cooking, and the resulting food may or may not be edible.
Lightweight Documentation
Instead of writing verbose, comprehensive test documentation, Agile testers:
•! Use reusable checklists to suggest tests
•! Focus on the essence of the test rather than the incidental details
•! Use lightweight documentation styles/tools
•! Capturing test ideas in charters for Exploratory Testing
•! Leverage documents for multiple purpose
Leveraging One Test Artifact for Manual and Automated Tests
Rather than investing in extensive, heavyweight step-by-step manual test scripts in
Word or a test management tool, we capture expectations in a format supported by
automated test frameworks like FIT/Fitnesse. The test could be executed manually,
but more importantly that same test artifact becomes an automated test when the
programmers write a fixture to connect the test to the software under test.
Agile Testing Overview
Copyright (c) 2008, Quality Tree Software, Inc. 10
Agile Testing Overview
Copyright (c) 2008, Quality Tree Software, Inc. 11
“Done Done,” Not Just Done
In traditional environments that have a strict division between development and test,
it is typical for the developers to say they are “done” with a feature when they have
implemented it, but before it is tested.
Of course the feature isn’t “done” until it’s been tested and any bugs have been
fixed. That’s why there’s a long standing joke in the industry that a given software
release is usually “90% done” for 90% of the project. (Or, in other words, the last
10% of the effort takes 90% of the time.)
Agile teams don’t count something as “done,” and ready to be accepted by the
Product Owner or Customer until it has been implemented and tested.
Copyright (c) 2007, Quality Tree Software, Inc. 12
Test-Last v. Test-Driven
In traditional environments, tests are derived from project artifacts such as
requirements documents. The requirements and design come first, and the tests
follow. And executing those tests happens at the end of the project. This is a “test-
last” approach.
However, tests provide concrete examples of what it means for the emerging
software to meet the requirements. Defining the tests with the requirements, rather
than after, and using those tests to drive the development effort, gives us much more
clear done criteria and shared focus on the goal. This test-first approach can be seen
in the TDD and ATDD practices (see later slides).
Agile Testing Overview
Copyright (c) 2008, Quality Tree Software, Inc. 13
Agile Testing Overview
Copyright (c) 2008, Quality Tree Software, Inc. 14
Copyright (c) 2007, Quality Tree Software, Inc. 15
Agile Testing Overview
Copyright (c) 2008, Quality Tree Software, Inc. 16
Copyright (c) 2007, Quality Tree Software, Inc. 17
The ATDD Cycle!
Discuss: work with the business stakeholders to understand their real
needs and concerns. In traditional environments, this is usually called
“requirements elicitation.” In the context of Agile development, the
purpose of this discussion is not to gather a huge list of requirements but
rather to understand what the business stakeholder needs from one
particular feature. During these discussions, ask questions designed to
uncover assumptions, understand expectations around non-functional
needs such as stability, reliability, security, etc., and explore the full scope
of work the business stakeholder is requesting.!
Distill: collaborate with the business stakeholders to distill their stated
needs into a set of acceptance tests, or examples, that define “done.”
These tests should focus on externally detectable behavior and will be
expressed in tables or keywords.!
Develop: write the code to implement the requested feature using test-
driven development (TDD). !
Demonstrate: show the business stakeholder the new feature in the
emerging system and request feedback. !
Version 5.6 Copyright (c) 2007, Quality Tree Software, Inc. 18
A Short History of Exploratory Testing
Cem Kaner coined the term “Exploratory Testing” in his book Testing Computer
Software, although the practice of Exploratory Testing certainly predates the book.
Since the book’s publication two decades ago, Cem Kaner, James Bach, and a group
of others (including Elisabeth Hendrickson and James Lyndsay) have worked to
articulate just what Exploratory Testing is and how to do it.
Exploratory Testing Can Be Rigorous
Two key things distinguish good Exploratory Testing as a disciplined form of
testing:
•! Using a wide variety of analysis/testing techniques to target vulnerabilities
from multiple perspectives.
•! Using charters to focus effort on those vulnerabilities that are of most interest
to stakeholders.
Agile Testing Overview
Copyright (c) 2008, Quality Tree Software, Inc. 19
Agile Testing Overview
20Copyright (c) 2007 Quality Tree Software, Inc.
Collaborative Testing
Even before I started working with XP teams, I felt that it is important for testers to
collaborate with all the other project stakeholders. In the course of my years in this
industry, I have observed that isolation usually leads to duplicated and wasted effort.
Working on XP teams confirmed my beliefs. By integrating testing and
development, we produced more solid code, more quickly, than I had seen on any of
my past projects. Certainly there are contexts where independent testing is required,
such as with safety-critical systems. But that doesn’t mean the independent testers
should be the only ones testing.
In XP, testing isn’t a phase but rather a way of working so that at any given point in
a project, you know that the work done to date meets the expectations stakeholders
have of that work. And that requires a whole team effort.
Agile Testing Overview
Copyright (c) 2008, Quality Tree Software, Inc. 21

More Related Content

What's hot

8 Steps to an Effective ERP Project Launch
8 Steps to an Effective ERP Project Launch8 Steps to an Effective ERP Project Launch
8 Steps to an Effective ERP Project Launch
Lionshare Software, Inc.
 
eCIO PPT Roles for a SAP and Systems Integration Project
eCIO PPT Roles for a SAP and Systems Integration ProjecteCIO PPT Roles for a SAP and Systems Integration Project
eCIO PPT Roles for a SAP and Systems Integration Project
David Niles
 
PDCA Problem Solving Technique & Tools
PDCA Problem Solving Technique & ToolsPDCA Problem Solving Technique & Tools
PDCA Problem Solving Technique & Tools
Flevy.com Best Practices
 
Erp Asap implementation 1214825612078403-9
Erp Asap implementation 1214825612078403-9Erp Asap implementation 1214825612078403-9
Erp Asap implementation 1214825612078403-9
Hari Krishna
 

What's hot (18)

ASAP Methodology
ASAP MethodologyASAP Methodology
ASAP Methodology
 
SAP ASAP 8 Methodology
SAP ASAP 8 MethodologySAP ASAP 8 Methodology
SAP ASAP 8 Methodology
 
SAP Implementation And Strategies- Basic Guidelines For Project Manager
SAP Implementation And Strategies- Basic Guidelines For Project ManagerSAP Implementation And Strategies- Basic Guidelines For Project Manager
SAP Implementation And Strategies- Basic Guidelines For Project Manager
 
Asap implementation methodology (2)
Asap implementation methodology (2)Asap implementation methodology (2)
Asap implementation methodology (2)
 
Asap methodology 1st phase- project preparation
Asap methodology  1st phase- project preparationAsap methodology  1st phase- project preparation
Asap methodology 1st phase- project preparation
 
SAP Model -Smarterenergyconsulting.com
SAP Model -Smarterenergyconsulting.comSAP Model -Smarterenergyconsulting.com
SAP Model -Smarterenergyconsulting.com
 
Asap roadmap
Asap roadmapAsap roadmap
Asap roadmap
 
ASAP 8.0 Methodology
ASAP 8.0 MethodologyASAP 8.0 Methodology
ASAP 8.0 Methodology
 
Understand SAP ASAP 8.0
Understand SAP ASAP 8.0Understand SAP ASAP 8.0
Understand SAP ASAP 8.0
 
Lean and Agile SAP
Lean and Agile SAPLean and Agile SAP
Lean and Agile SAP
 
Asap methodology
Asap methodologyAsap methodology
Asap methodology
 
Sap implementation
Sap implementationSap implementation
Sap implementation
 
8 Steps to an Effective ERP Project Launch
8 Steps to an Effective ERP Project Launch8 Steps to an Effective ERP Project Launch
8 Steps to an Effective ERP Project Launch
 
eCIO PPT Roles for a SAP and Systems Integration Project
eCIO PPT Roles for a SAP and Systems Integration ProjecteCIO PPT Roles for a SAP and Systems Integration Project
eCIO PPT Roles for a SAP and Systems Integration Project
 
SAP Implementation Phase!!
SAP Implementation Phase!!SAP Implementation Phase!!
SAP Implementation Phase!!
 
PDCA Problem Solving Technique & Tools
PDCA Problem Solving Technique & ToolsPDCA Problem Solving Technique & Tools
PDCA Problem Solving Technique & Tools
 
Agile meets Enterprise ERP
Agile meets Enterprise ERPAgile meets Enterprise ERP
Agile meets Enterprise ERP
 
Erp Asap implementation 1214825612078403-9
Erp Asap implementation 1214825612078403-9Erp Asap implementation 1214825612078403-9
Erp Asap implementation 1214825612078403-9
 

Viewers also liked

Validations in-lsmw
Validations in-lsmwValidations in-lsmw
Validations in-lsmw
thopubaachi
 
54145899 sap-sd-int-tips
54145899 sap-sd-int-tips54145899 sap-sd-int-tips
54145899 sap-sd-int-tips
Nitesh Mahajan
 
Ccna security
Ccna securityCcna security
Ccna security
dkaya
 
Sap sd-sun-surya-material
Sap sd-sun-surya-materialSap sd-sun-surya-material
Sap sd-sun-surya-material
sahilkh500
 

Viewers also liked (20)

Introductio to network 1
Introductio to network   1Introductio to network   1
Introductio to network 1
 
GSM
GSMGSM
GSM
 
CCNA - Dr. Mostafa Elgamala
CCNA - Dr. Mostafa ElgamalaCCNA - Dr. Mostafa Elgamala
CCNA - Dr. Mostafa Elgamala
 
How to perform critical authorizations and so d checks in sap systems
How to perform critical authorizations and so d checks in sap systemsHow to perform critical authorizations and so d checks in sap systems
How to perform critical authorizations and so d checks in sap systems
 
Lsmw (Legacy System Migration Workbench)
Lsmw (Legacy System Migration Workbench)Lsmw (Legacy System Migration Workbench)
Lsmw (Legacy System Migration Workbench)
 
SAP SD LSMW -Legacy System Migration Workbench
SAP SD LSMW -Legacy  System  Migration  WorkbenchSAP SD LSMW -Legacy  System  Migration  Workbench
SAP SD LSMW -Legacy System Migration Workbench
 
Validations in-lsmw
Validations in-lsmwValidations in-lsmw
Validations in-lsmw
 
Using idoc method in lsmw
Using idoc method in lsmwUsing idoc method in lsmw
Using idoc method in lsmw
 
Recording steps in SAP BDC
Recording steps in SAP BDCRecording steps in SAP BDC
Recording steps in SAP BDC
 
54145899 sap-sd-int-tips
54145899 sap-sd-int-tips54145899 sap-sd-int-tips
54145899 sap-sd-int-tips
 
Accounts payable-notes
Accounts payable-notesAccounts payable-notes
Accounts payable-notes
 
Microsoft MCSA - Install active directory domain services (adds) role
Microsoft MCSA - Install active directory domain services (adds) roleMicrosoft MCSA - Install active directory domain services (adds) role
Microsoft MCSA - Install active directory domain services (adds) role
 
SAP SD Complete Guide
SAP SD Complete GuideSAP SD Complete Guide
SAP SD Complete Guide
 
Ccna security
Ccna securityCcna security
Ccna security
 
Rollout solution template SAP SD
Rollout solution template   SAP SDRollout solution template   SAP SD
Rollout solution template SAP SD
 
Pricing Concept in SAP SD by Venkat Mannam
Pricing Concept in SAP SD by Venkat MannamPricing Concept in SAP SD by Venkat Mannam
Pricing Concept in SAP SD by Venkat Mannam
 
Sap sd-sun-surya-material
Sap sd-sun-surya-materialSap sd-sun-surya-material
Sap sd-sun-surya-material
 
Sap sd-pricing-in-depth-configuration-guide
Sap sd-pricing-in-depth-configuration-guideSap sd-pricing-in-depth-configuration-guide
Sap sd-pricing-in-depth-configuration-guide
 
SAP SD Interview Questions with Explanation
SAP SD Interview Questions with Explanation SAP SD Interview Questions with Explanation
SAP SD Interview Questions with Explanation
 
SAP SD Business Blueprint
SAP SD Business BlueprintSAP SD Business Blueprint
SAP SD Business Blueprint
 

Similar to Agile testingoverview

Inrotduction of Testing
Inrotduction of TestingInrotduction of Testing
Inrotduction of Testing
Palash Ghosh
 
Role Of Qa And Testing In Agile 1225221397167302 8
Role Of Qa And Testing In Agile 1225221397167302 8Role Of Qa And Testing In Agile 1225221397167302 8
Role Of Qa And Testing In Agile 1225221397167302 8
a34sharm
 

Similar to Agile testingoverview (20)

Tackling software testing challenges in the agile era
Tackling software testing challenges in the agile eraTackling software testing challenges in the agile era
Tackling software testing challenges in the agile era
 
Myths and reality about software testing
Myths and reality about software testingMyths and reality about software testing
Myths and reality about software testing
 
Open Source tools in Continuous Integration environment (case study for agil...
Open Source tools in Continuous Integration environment  (case study for agil...Open Source tools in Continuous Integration environment  (case study for agil...
Open Source tools in Continuous Integration environment (case study for agil...
 
Continuous Integration testing based on Selenium and Hudson
Continuous Integration testing based on Selenium and HudsonContinuous Integration testing based on Selenium and Hudson
Continuous Integration testing based on Selenium and Hudson
 
Effective Testing fo Startups
Effective Testing fo StartupsEffective Testing fo Startups
Effective Testing fo Startups
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
 
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
 
Inrotduction of Testing
Inrotduction of TestingInrotduction of Testing
Inrotduction of Testing
 
Agile Testing 20021015
Agile Testing 20021015Agile Testing 20021015
Agile Testing 20021015
 
Testing Software
Testing SoftwareTesting Software
Testing Software
 
Software Testing Principles
Software Testing PrinciplesSoftware Testing Principles
Software Testing Principles
 
Agile case studies
Agile case studiesAgile case studies
Agile case studies
 
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
 
Role Of Qa And Testing In Agile 1225221397167302 8
Role Of Qa And Testing In Agile 1225221397167302 8Role Of Qa And Testing In Agile 1225221397167302 8
Role Of Qa And Testing In Agile 1225221397167302 8
 
Testing in agile
Testing in agileTesting in agile
Testing in agile
 
Seven Keys to Navigating Your Agile Testing Transition
Seven Keys to Navigating Your Agile Testing TransitionSeven Keys to Navigating Your Agile Testing Transition
Seven Keys to Navigating Your Agile Testing Transition
 
Jason Olson - Test What You've Built
Jason Olson - Test What You've BuiltJason Olson - Test What You've Built
Jason Olson - Test What You've Built
 
DevOps
DevOpsDevOps
DevOps
 
! Testing for agile teams
! Testing for agile teams! Testing for agile teams
! Testing for agile teams
 

Recently uploaded

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Recently uploaded (20)

Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 

Agile testingoverview

  • 1. Agile Testing Overview Copyright (c) 2008, Quality Tree Software, Inc. 1
  • 2. Copyright (c) 2007, Quality Tree Software, Inc. 2 Agile Myths, Busted Contrary to popular myth, Agile methods are not sloppy, ad hoc, do-whatever-feels- good processes. Quite the contrary. As Mary Poppendieck points out, speed requires discipline (see http://www.poppendieck.com/lean-six-sigma.htm). And Extreme Programming in particular is one of the most disciplined software development processes I’ve ever seen. This means that some of the teams that claim to be doing “Agile” aren’t. Compressing the schedule, throwing out the documentation, and coding up to the last minute is not Agile: it may result in short term speed but at the cost of long term pain. Agile methods are above all sustainable. Agile teams really do need testers – or at least people who have strong testing skills. But there is a small grain of truth in the idea that Agile teams don’t need QA. That’s because Agile teams don’t need is QA acting as a Quality Police. The business stakeholder – whether the Scrum Product Owner or the XP “Customer” – define what’s acceptable and what’s not. The QA or Test group supports the business stakeholder by helping them clarify acceptance criteria and understand risks.
  • 3. Agile Testing Overview Copyright (c) 2008, Quality Tree Software, Inc. 3
  • 4. Version 5.6 Copyright (c) 2007, Quality Tree Software, Inc. 4 Testing Moves the Project Forward On traditional projects, testing is usually treated as a quality gate, and the QA/Test group often serves as the quality gatekeeper. It’s considered the responsibility of testing to prevent bad software from going out to the field. The result of this approach is long, drawn out bug scrub meetings in which we argue about the priority of the bugs found in test and whether or not they are sufficiently important and/or severe to delay a release. On Agile teams, we build the product well from the beginning, using testing to provide feedback on an ongoing basis about how well the emerging product is meeting the business needs. This sounds like a small shift, but it has profound implications. The adversarial relationship that some organizations foster between testers and developers must be replaced with a spirit of collaboration. It’s a completely different mindset.
  • 5. Copyright (c) 2007, Quality Tree Software, Inc. 5 Testing is NOT a Phase… …on Agile teams, testing is a way of life. Agile teams test continuously. It’s the only way to be sure that the features implemented during a given iteration or sprint are actually done. Continuous testing is the only way to ensure continuous progress.
  • 6. Everyone Tests On traditional projects, the independent testers are responsible for all test activities. In Agile, getting the testing done is the responsibility of the whole team. Yes, testers execute tests. Developers do too. The need to get all testing done in an iteration may mean that the team simply cannot do as much in each sprint as they originally thought. If this is the case, then Agile has made visible the impedance mismatch between test and dev that already existed. And that means that the team was not going as fast as they thought. They appeared to be going quickly because the developers were going fast. But if the testing isn't done, then the features aren't done, and the team just does not have the velocity they think. Another way of thinking about this idea is that testing is the "herbie" on the team (see Goldratt's The Goal). Theory of Constraints says that the whole team can only go as fast as the slowest part. To go faster, the team has to widen the throughput of the slowest part of the process. Eliminate the bottleneck; everyone tests. Agile Testing Overview Copyright (c) 2008, Quality Tree Software, Inc. 6
  • 7. Agile Testing Overview Copyright (c) 2008, Quality Tree Software, Inc. 7 Shortening Feedback Loops How long does the team have to wait for information about how the software is behaving? Measure the time between when a programmer writes a line of code and when someone or something executes that code and provides information about how it behaves. That’s a feedback loop. If the software isn’t tested until the very end of a long release, the feedback loops will be extended and can be measured in months. That’s too long. Shorter feedback loops increase Agility. Fortunately, on Agile projects the software is ready to test almost from the beginning. And Agile teams typically employ several levels of testing to uncover different types of information. Automated unit tests check the behavior of individual functions/methods and object interactions. They’re run often, and provide feedback in minutes. Automated acceptance tests usually check the behavior of the system end-to-end. (Although, sometimes they bypass the GUI, checking the underlying business logic.) They’re typically run on checked in code on an ongoing basis, providing feedback in an hour or so. Agile projects favor automated tests because of the rapid feedback they provide. Manual regression tests take longer to execute and, because a human must be available, may not begin immediately. Feedback time increases to days or weeks. Manual testing, particularly manual exploratory testing, is still important. However, Agile teams typically find that the fast feedback afforded by automated regression is a key to detecting problems quickly, thus reducing risk and rework.
  • 8. Version 5.6 Copyright (c) 2007, Quality Tree Software, Inc. 8 So Where Do Those Expectations Come From? Once upon a time, before I started working on XP projects, I worked on a project where the developer protested “SCOPE CREEP!” to every bug report I filed. Sadly, the two of us built up a lot of animosity arguing over whether or not the bugs I found were bugs or enhancements. I reasoned that I was testing conditions that were likely to occur in the real world, and “not crashing” did not count as an enhancement. The programmer argued that he’d done what he’d been asked to do and that it was too late to add more work to his plate. “No one said anything about the software being able to handle corrupt data!” he snapped. I realized that the programmer thought I was making up new requirements as I went along. Of course, that’s not what I intended. The way I saw it, my testing was revealing answers to questions no one had thought to ask before: What if this file is locked? What if that connection is broken? What if the data is corrupted? I would have asked the questions earlier if I could, but this was a waterfall-ish project, and testing happened at the very end of the process. Working with XP teams has taught me that every test, whether manual or automated, scripted or exploratory, represents a bundle of expectations. Like the file tests I ran on that early project, sometimes those expectations represent implicit requirements (like “don’t crash”). But sometimes my expectations turn out to be unreasonable. So now, before I spend a huge amount of time testing for a given type of risk, I ask questions to clarify my expectations with the project stakeholders.
  • 9. Agile Testing Overview Copyright (c) 2008, Quality Tree Software, Inc. 9 Keep the Code Clean This principle is an example of the discipline that Agile teams have. It takes tremendous internal discipline to fix bugs as they are found. If it’s a genuine bug, as opposed to a new story, it is fixed within the iteration. To do otherwise is like cooking in a filthy kitchen: it takes longer to wade through the mess to do the cooking, and the resulting food may or may not be edible.
  • 10. Lightweight Documentation Instead of writing verbose, comprehensive test documentation, Agile testers: •! Use reusable checklists to suggest tests •! Focus on the essence of the test rather than the incidental details •! Use lightweight documentation styles/tools •! Capturing test ideas in charters for Exploratory Testing •! Leverage documents for multiple purpose Leveraging One Test Artifact for Manual and Automated Tests Rather than investing in extensive, heavyweight step-by-step manual test scripts in Word or a test management tool, we capture expectations in a format supported by automated test frameworks like FIT/Fitnesse. The test could be executed manually, but more importantly that same test artifact becomes an automated test when the programmers write a fixture to connect the test to the software under test. Agile Testing Overview Copyright (c) 2008, Quality Tree Software, Inc. 10
  • 11. Agile Testing Overview Copyright (c) 2008, Quality Tree Software, Inc. 11 “Done Done,” Not Just Done In traditional environments that have a strict division between development and test, it is typical for the developers to say they are “done” with a feature when they have implemented it, but before it is tested. Of course the feature isn’t “done” until it’s been tested and any bugs have been fixed. That’s why there’s a long standing joke in the industry that a given software release is usually “90% done” for 90% of the project. (Or, in other words, the last 10% of the effort takes 90% of the time.) Agile teams don’t count something as “done,” and ready to be accepted by the Product Owner or Customer until it has been implemented and tested.
  • 12. Copyright (c) 2007, Quality Tree Software, Inc. 12 Test-Last v. Test-Driven In traditional environments, tests are derived from project artifacts such as requirements documents. The requirements and design come first, and the tests follow. And executing those tests happens at the end of the project. This is a “test- last” approach. However, tests provide concrete examples of what it means for the emerging software to meet the requirements. Defining the tests with the requirements, rather than after, and using those tests to drive the development effort, gives us much more clear done criteria and shared focus on the goal. This test-first approach can be seen in the TDD and ATDD practices (see later slides).
  • 13. Agile Testing Overview Copyright (c) 2008, Quality Tree Software, Inc. 13
  • 14. Agile Testing Overview Copyright (c) 2008, Quality Tree Software, Inc. 14
  • 15. Copyright (c) 2007, Quality Tree Software, Inc. 15
  • 16. Agile Testing Overview Copyright (c) 2008, Quality Tree Software, Inc. 16
  • 17. Copyright (c) 2007, Quality Tree Software, Inc. 17 The ATDD Cycle! Discuss: work with the business stakeholders to understand their real needs and concerns. In traditional environments, this is usually called “requirements elicitation.” In the context of Agile development, the purpose of this discussion is not to gather a huge list of requirements but rather to understand what the business stakeholder needs from one particular feature. During these discussions, ask questions designed to uncover assumptions, understand expectations around non-functional needs such as stability, reliability, security, etc., and explore the full scope of work the business stakeholder is requesting.! Distill: collaborate with the business stakeholders to distill their stated needs into a set of acceptance tests, or examples, that define “done.” These tests should focus on externally detectable behavior and will be expressed in tables or keywords.! Develop: write the code to implement the requested feature using test- driven development (TDD). ! Demonstrate: show the business stakeholder the new feature in the emerging system and request feedback. !
  • 18. Version 5.6 Copyright (c) 2007, Quality Tree Software, Inc. 18 A Short History of Exploratory Testing Cem Kaner coined the term “Exploratory Testing” in his book Testing Computer Software, although the practice of Exploratory Testing certainly predates the book. Since the book’s publication two decades ago, Cem Kaner, James Bach, and a group of others (including Elisabeth Hendrickson and James Lyndsay) have worked to articulate just what Exploratory Testing is and how to do it. Exploratory Testing Can Be Rigorous Two key things distinguish good Exploratory Testing as a disciplined form of testing: •! Using a wide variety of analysis/testing techniques to target vulnerabilities from multiple perspectives. •! Using charters to focus effort on those vulnerabilities that are of most interest to stakeholders.
  • 19. Agile Testing Overview Copyright (c) 2008, Quality Tree Software, Inc. 19
  • 20. Agile Testing Overview 20Copyright (c) 2007 Quality Tree Software, Inc. Collaborative Testing Even before I started working with XP teams, I felt that it is important for testers to collaborate with all the other project stakeholders. In the course of my years in this industry, I have observed that isolation usually leads to duplicated and wasted effort. Working on XP teams confirmed my beliefs. By integrating testing and development, we produced more solid code, more quickly, than I had seen on any of my past projects. Certainly there are contexts where independent testing is required, such as with safety-critical systems. But that doesn’t mean the independent testers should be the only ones testing. In XP, testing isn’t a phase but rather a way of working so that at any given point in a project, you know that the work done to date meets the expectations stakeholders have of that work. And that requires a whole team effort.
  • 21. Agile Testing Overview Copyright (c) 2008, Quality Tree Software, Inc. 21