This is a 45 minute introduction to agile testing. The slides are "speaking slides", which means that they should be accompanied by an oral presentation and may not be all that easy to comprehend without context.
4. Agile Manifesto – Some principles
• Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software.
• The most efficient and effective method of
conveying information to and within a
development team is face-to-face conversation.
• Working software is the primary measure of
progress.
• Simplicity--the art of maximizing the amount
of work not done--is essential.
Working in an agile context
5. Agile methodologies
Scrum
• Transparency
• Inspection
• Adaption
XP
Lean Software
• Communication Development
•
•
•
•
Feedback
Simplicity
Respect
Courage
•
•
•
•
•
•
•
Eliminate waste
Build quality in
Create knowledge
Defer commitment
Deliver fast
Respect people
Optimize the
whole
5
Working in an agile context
6. Agile practices summarized
•
•
•
•
Working software delivered frequently
To provide business value as early as possible
By cross-functional teams
That learn and improve
Working in an agile context
7. Overview of agile testing
Definition
Practices
• Agile testing = testing
performed in an agile
team
Testing is a
supporting activity
The whole team
owns the quality
Expected outcome
Deliver software
instead of written
artifacts
Automation
• The team delivers
high-quality software
8. Testing is a supporting activity
1. Gather information and find defects
2. Help the team move fast and stay safe
Image courtesy of cooldesign / FreeDigitalPhotos.net
9. Handovers
Communication barriers
Us-them
”Done” code
Software construction is like building:
Step 1: Build according to blueprint
Step 2: Inspect for defects
Programmer
Bug report
Tester
9
Testing is a supporting activity
Image courtesy of Feelart/ FreeDigitalPhotos.net & http://www.aha-soft.com/
10. The developer and tester mindsets
I program (create),
but I suffer from
creator’s bias.
David the
Developer
I test (break) and am
a critical thinker,
who sees the whole.
Terry
the
Tester
Testing is a supporting activity
13. The whole team owns the quality
• Every team member is responsible for the quality
• Team members that are professional testers may
have more experience in doing this
• Testing activities are estimated just like other
tasks
To do
In progress
Done
Done Done
More Done
The whole team owns the quality
14. Tester work
Do agile teams require testers?
•
•
•
•
Provide a holistic view of the application
Exploratory testing
Specialized testing
Create the ”nasty” test cases
Developer work
Good enough?
•
•
•
•
•
Develop code test-first or well unit-tested
Write integration tests
Practice CI
Create and maintain the automation layer
Testing sessions (with some training and facilitation)
The whole team owns the quality
15. Does a tester on an agile team have to be
a techie?
The whole team owns the quality
19. The test strategy
Deliver software instead of written artifacts
19
Image Flickr commons/The Swedish National Heritage Board
20. Automation
2-4 week iterations
Developer work
Tedious work
Refactoring
• Keeps the amount of work ”constant”
• Agile teams must automate to maintain their
velocity
Automation
23. An agile tester – True or False
True False
Gathers and shares information
Helps the customer to express requirements
Acts a quality police officer that protects the
customer from bad code
Provides feedback
Communicates through a defect tracking
system
Constantly improves and learns
The agile tester
Steps of the fundamental test process:Planning and ControlAnalysis and DesignImplementation and ExecutionEvaluating exit criteria and ReportingTest Closure activities
Dijkstras quote from 1988: ”lines of code spent” http://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html