Ho Chi Minh City Software Testing Conference January 2015
Software Testing in the Agile World
Website: www.hcmc-stc.org
Author: Nhat Do, Vu Duong
Context-Driven Testing (CDT) rejects the notion of generalized “best practices” that apply to all projects, and instead accepts that different practices work best under different circumstances. The third principle of the seven defined in CDT states that people are the most important part of any project’s context. Less of a focus on processes and tools, with more emphasis on people and their collaboration empowers testers with the freedom to make choices about how best to do their job without following a restrictive plan.
In joining the game of workshop and some theory sharing in slides, you will a better understanding of Context-Driven Testing practices, principles and its benefits as well as know how is a nice Marriage of Agile and Context-Driven Testing.
7. CHECKING VS TESTING
Checking
7Context-Driven Testing in Agile
Is confirmation
Is the system working like this?
Give a binary result
Pass or Failed.
Is machine decidable
It’s passed, ready for release
8. CHECKING VS TESTING
Checking
8Context-Driven Testing in Agile
Is confirmation
Is the system working like this?
Give a binary result
Pass or Failed.
Is machine decidable
It’s passed, ready for release
Is focused on making sure
the program does not fail
I try to find bugs as much as
possible
9. CHECKING VS TESTING
Checking
9Context-Driven Testing in Agile
Is confirmation
Is the system working like this?
Give a binary result
Pass or Failed.
Is machine decidable
It’s passed, ready for release
Is focused on making sure
the program does not fail
I try to find bugs as much as
possible
Proves bugs exist, not their
absence
10. CHECKING VS TESTING
Checking
10Context-Driven Testing in Agile
Is confirmation
Is the system working like this?
Give a binary result
Pass or Failed.
Is machine decidable
It’s passed, ready for release
Is focused on making sure
the program does not fail
I try to find bugs as much as
possible
Proves bugs exist, not their
absence
Is Exploration and learning
I’m not sure why system has to
perform like this, not like that
Testing
11. CHECKING VS TESTING
Checking
11Context-Driven Testing in Agile
Is confirmation
Is the system working like this?
Give a binary result
Pass or Failed.
Is machine decidable
It’s passed, ready for release
Is focused on making sure
the program does not fail
I try to find bugs as much as
possible
Proves bugs exist, not their
absence
Testing
Is Exploration and learning
I’m not sure why system has to
perform like this, not like that
Has an open-ended result
What if system shutdown suddenly
12. CHECKING VS TESTING
Checking
12Context-Driven Testing in Agile
Is confirmation
Is the system working like this?
Give a binary result
Pass or Failed.
Is machine decidable
It’s passed, ready for release
Is focused on making sure
the program does not fail
I try to find bugs as much as
possible
Proves bugs exist, not their
absence
Testing
Is Exploration and learning
I’m not sure why system has to
perform like this, not like that
Has an open-ended result
What if system shutdown suddenly
Requires sapience
System would be better if…..
13. CHECKING VS TESTING
Checking
13Context-Driven Testing in Agile
Is confirmation
Is the system working like this?
Give a binary result
Pass or Failed.
Is machine decidable
It’s passed, ready for release
Is focused on making sure
the program does not fail
I try to find bugs as much as
possible
Proves bugs exist, not their
absence
Testing
Is Exploration and learning
I’m not sure why system has to
perform like this, not like that
Has an open-ended result
What if system shutdown suddenly
Requires sapience
System would be better if…..
Is a question that we want
to ask of the program
Hey, do we want to see where his
package in US?
14. CHECKING VS TESTING
Checking
14Context-Driven Testing in Agile
Is confirmation
Is the system working like this?
Give a binary result
Pass or Failed.
Is machine decidable
It’s passed, ready for release
Is focused on making sure
the program does not fail
I try to find bugs as much as
possible
Proves bugs exist, not their
absence
Testing
Is Exploration and learning
I’m not sure why system has to
perform like this, not like that
Has an open-ended result
What if system shutdown suddenly
Requires sapience
System would be better if…..
Is a question that we want
to ask of the program
Hey, do we want to see where his
package in US?
Is a challenging. Intellectual
process
16. WHAT’S CONTEXT-DRIVEN TESTING?
16Context-Driven Testing in Agile
Context-driven testing is a model for developing and debugging computer software that takes into
account the ways in which the programs will be used or are expected to be used in the real world.
Tech Target
Context-driven testing is a certain type of software testing that considers the product’s use in the
field, or a performance or production environment. It is one way that developers assess software as it
is built, looking for flaws and otherwise optimizing its design before its eventual final release
Techopedia
19. CONTEXT-DRIVEN TESTING PRINCIPLES
19Context-Driven Testing in Agile
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.
20. CONTEXT-DRIVEN TESTING PRINCIPLES
20Context-Driven Testing in Agile
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.
21. CONTEXT-DRIVEN TESTING PRINCIPLES
21Context-Driven Testing in Agile
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.
22. CONTEXT-DRIVEN TESTING PRINCIPLES
22Context-Driven Testing in Agile
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.
23. CONTEXT-DRIVEN TESTING PRINCIPLES
23Context-Driven Testing in Agile
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.
24. CONTEXT-DRIVEN TESTING PRINCIPLES
24Context-Driven Testing in Agile
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.
Practices
25. CONTEXT-DRIVEN TESTING PRINCIPLES
25Context-Driven Testing in Agile
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.
Practices
Projects
26. CONTEXT-DRIVEN TESTING PRINCIPLES
26Context-Driven Testing in Agile
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.
Practices
Projects
Testing
27. A Nice Marriage of Agile and
Context-Driven Testing?
27Context-Driven Testing in Agile
28. A NICE MARRIAGE OF AGILE AND CONTEXT-
DRIVEN TESTING?
28Context-Driven Testing in Agile
People
Focus
People, working together, are the
most important part of any project’s
context.
CDT Belief
29. A NICE MARRIAGE OF AGILE AND CONTEXT-
DRIVEN TESTING?
29Context-Driven Testing in Agile
Individuals & Interactions
over process and tools
People
Focus
Agile Spirit
People, working together, are the
most important part of any project’s
context.
CDT Belief
30. A NICE MARRIAGE OF AGILE AND CONTEXT-
DRIVEN TESTING?
30Context-Driven Testing in Agile
Agile SpiritCDT Belief
Individuals & Interactions
over process and tools
People
Focus
Project
Uncertainty
People, working together, are the
most important part of any project’s
context.
Projects unfold over time in ways
that are often not predictable.
31. A NICE MARRIAGE OF AGILE AND CONTEXT-
DRIVEN TESTING?
31Context-Driven Testing in Agile
Agile SpiritCDT Belief
Individuals & Interactions
over process and tools
People
Focus
Responding to Change
over following plan
Project
Uncertainty
People, working together, are the
most important part of any project’s
context.
Projects unfold over time in ways
that are often not predictable.
32. A NICE MARRIAGE OF AGILE AND CONTEXT-
DRIVEN TESTING?
32Context-Driven Testing in Agile
Agile SpiritCDT Belief
Individuals & Interactions
over process and tools
People
Focus
Responding to Change
over following plan
Project
Uncertainty
Product
Focus
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.
33. A NICE MARRIAGE OF AGILE AND CONTEXT-
DRIVEN TESTING?
33Context-Driven Testing in Agile
Agile SpiritCDT Belief
Individuals & Interactions
over process and tools
People
Focus
Responding to Change
over following plan
Working Software
over comprehensive
documentation
Project
Uncertainty
Product
Focus
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.
34. A NICE MARRIAGE OF AGILE AND CONTEXT-
DRIVEN TESTING?
34Context-Driven Testing in Agile
Agile SpiritCDT Belief
Individuals & Interactions
over process and tools
People
Focus
Responding to Change
over following plan
Working Software
over comprehensive
documentation
Project
Uncertainty
Product
Focus
Client
Involvement
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.
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
35. A NICE MARRIAGE OF AGILE AND CONTEXT-
DRIVEN TESTING?
35Context-Driven Testing in Agile
Agile SpiritCDT Belief
Individuals & Interactions
over process and tools
People
Focus
Responding to Change
over following plan
Working Software
over comprehensive
documentation
Customer Collaboration
over contract negotiation
Project
Uncertainty
Product
Focus
Client
Involvement
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.
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
36. Your Turn –
When it could go wrong?
36Context-Driven Testing in Agile
37. WHEN IT COULD GO WRONG?
37Context-Driven Testing in Agile
When ONLY developers do testing; when it is not matured enough (no
planning, no discipline, no documentation)
38. WHEN IT COULD GO WRONG?
38Context-Driven Testing in Agile
When ONLY developers do testing; when it is not matured enough (no
planning, no discipline, no documentation)
When thinking that everyone can test and all can be automated
39. WHEN IT COULD GO WRONG?
39Context-Driven Testing in Agile
When ONLY developers do testing; when it is not matured enough (no
planning, no discipline, no documentation)
When thinking that everyone can test and all can be automated
Key Question: Is your team “mature enough” for this marriage?
40. WHEN IT COULD GO WRONG?
40Context-Driven Testing in Agile
When ONLY developers do testing; when it
is not matured enough (no planning, no
discipline, no documentation)
When thinking that everyone can test and all
can be automated
Key Question: Is your team “mature enough”
for this marriage?