Transcript Slide 1

Software & Systems
Quality Conferences
United Kingdom
2006
Aligning
Development and
Testing Lifecycles
3rd October 2006
Facilitated by
Graham Thomas
Independent Consultant
1
Abstract
The first objective of a test strategy is to align the testing activities with the
development activities. It’s obvious really, but sometimes hard to do. In fact, it
seems to be getting much harder recently with the advent of iterative and agile
development lifecycles – hasn’t it?
Developers change their development approach in order to be more efficient and
effective (and ‘up-to-date’). But testers and their approach haven’t kept pace.
While the developers have changed their methods, by adopting an iterative or
agile approach for example, the test team will probably be used to a more
traditional, structured, V-Model approach.
It’s no surprise that testing and development activities aren’t aligned.
This session will take a look at traditional (structured), iterative (RAD) and agile
(incremental) development lifecycles and their associated testing lifecycle
counterparts
2
Agenda
 Introduction
now
 Setting the scene
15mins
 Group Discussion
20mins
 Conclusion
5mins
3
A brief slideshow
 Identification of the main methodologies
 History of development methodologies
 Strengths & Weaknesses
 Implications for developing a test Strategy
4
Types of Methodology
A
D
B
UAT
SIT
ST
UT
Depth
R
Breadth
V-Model
• Structured
testing
• Large projects
• Fixed interfaces
• Legal/statutory
Rqmts.
Iterative Testing
• Several iterations
(3)
• Changing
Incremental (Agile)
• Small items of
work
• Less structured
requirements
approach
• Business driven
• Time-boxed
• Continuous
integration
5
History of Development Methodologies
• First Computer Program (1842-43 Ada Lovelace)
• First Computer (1930-1940)
• Languages
-
Started with Machine Code
-
Assembler
1951
-
COBOL
1959
-
BASIC
1964
-
C
1972
-
C++
1983
-
Visual Basic 1991
-
C#
2000
6
History of Development Methodologies
• Waterfall
-
Requirements, Design, Implementation, Verification &
Maintenance
• V-Model
-
(1998 – Rational)
Object Orientated, Iterative, user driven, high ceremony
• Agile e.g. XP
-
(1991 – James Martin)
Prototyping, Iterative, Time-boxed, user driven
• RUP
-
(Barry Boehm – 1985)
Iterative
• RAD
-
(1980 ish – Anon)
Aligns testing to waterfall development
• Spiral Model
-
(1970 - Royce )
(1999 – Kent Beck)
Incremental, user driven, low process
7
The V-Model a closer look (1)
8
The V-Model a closer look (2)
Conical
Model
Component
Unit
Testing Integration System
Testing
Testing
User
Acceptance
Testing
9
The V-Model a closer look (3)
- A/C
Rqmts - NFR
- Func
OAT
UAT
BAD
Use Cases/DBD
{Business
Scenarios
System Integration Test
EIT
Design Overview
Detailed
System Design
System Test
10
Iterative e.g. RAD/Spiral (1)
11
Iterative e.g. RAD/Spiral (2)
12
Agile - XP explained (1)
The Values
•
•
•
•
•
Communication
Simplicity
Feedback
Courage
Respect
(added in the latest version)
13
Agile - XP explained (2)
1. Test First Programming
Test First without code
2. The Planning Game
- Business Stories
- Customer decides, Prog.
Implements
3. Small, Frequent Releases
- Release early and release often
4. Always use the Simplest design
that adds business value
5. System Metaphor
- Programmers define a handful of
classes and patterns that shape
the core business problem and
solution
- Like a primitive Architecture
6. On-site Customer
- Customer has authority to define
functionality
- encourages face-to-face dialogue
7. Refactoring
- Restructuring code without
changing its functionality
- Mainly Simplification
8. Pair Programming
9. Collective Code Ownership
10.Coding Standards
- Everyone should use the same
coding styles.
11.Continuous Integration
- At least a few times a day
- All unit tests must pass prior to
integration
- All functional tests must pass
afterwards
12.Forty Hour Week !
- Tired programmers write poor code
and make more mistakes
14
How to correctly identify the development model?
• Structured implies driven by top-down products
e.g. Requirements
-
It is quite common for the top-down products to
be late, missing or incomplete, e.g. requirements
• Iterative means a functional delivery per
iteration that can be tested and implemented
-
Projects often have iterations which just mimic
phases, i.e. not complete until all are finished
• Agile projects are highly disciplined and staffed
with committed people
-
Commonly agile is a term used to excuse existing
bad practice!
15
A few Questions
• Do we [as testers] know the development
lifecycle employed by our developers?
• Is our testing aligned to the development
lifecycle ?
• Are we trying to do testing in a way that is not
compatible with our development approach ?
• Do we need more than one testing approach ?
16
Implications of misaligned lifecycles
• Lets examine the lifecycles to see how the
development and testing approaches align
• Making the assumption that matching
development and testing lifecycles work as
described
• Factors to consider
-
Development and test activities
-
Lifecycle products
-
Timing of activities, dependencies, constraints
-
Objectives of approach
-
Deliverables
-
Measurement
17
Shared Experience
Development Approach
Testing Approach
Structured
Iterative
Agile
Structured
Iterative
Agile
18
Conclusions
• Find out the development approach being used
by your developers
• Work to align the testing activities with the
development activities
• Don’t assume that it is just a case of influencing
the developers to fit the testing mould
• Ask yourself if it is actually the testing approach
that is causing the problems
• Work together with your developers to find the
right testing solution(s)
19
CONTACT DETAILS
Graham Thomas
Independent Consultant
 [email protected]
 +44 7973 387 853
 www.badgerscroft.com
20