SLIDE 1
Levels of Testing Chapter 12 Beyond unit testing Life cycle models - - PowerPoint PPT Presentation
Levels of Testing Chapter 12 Beyond unit testing Life cycle models - - PowerPoint PPT Presentation
Levels of Testing Chapter 12 Beyond unit testing Life cycle models What is a life cycle model of software development? What is the traditional life cycle model? LOT2 V-Model development & testing Customer Acceptance
SLIDE 2
SLIDE 3
LOT–3
V-Model – development & testing
Requirements Detailed Design Module implementation Unit test Integration test System test Acceptance test Run tests Write tests Customer Developer Functional Structural Architectural Design
SLIDE 4
LOT–4
Traditional model
How well do the levels of the traditional Waterfall model
correlate with testing?
In what way?
SLIDE 5
LOT–5
Traditional model – 2
How well do the levels of the traditional Waterfall model
correlate with testing?
In what way?
Levels correlate with levels of testing Functional testing is implied Bottom up testing is implied
SLIDE 6
LOT–6
Developer – unit testing stage
What is unit testing? How do we do unit testing?
SLIDE 7
LOT–7
What is unit testing?
How do we do unit testing?
Testing of individual components Unit is best understood Have both functional and structural testing
Developer – unit testing stage – 2
SLIDE 8
LOT–8
Developer – integration testing stage
What is integration testing? How do we do integration testing?
SLIDE 9
LOT–9
What is integration testing?
How do we do integration testing?
Testing to expose problems arising from the combination of components
Bottom up
Combine smaller units into larger ones, until
system level is reached Developer – integration testing stage – 2
SLIDE 10
LOT–10
Developer – system testing stage
What is system testing? How do we do system testing?
SLIDE 11
LOT–11
What is system testing?
How do we do system testing?
Testing the complete system prior to delivery Functional testing No good structural notation for descriptions
Developer – system testing stage – 2
SLIDE 12
LOT–12
Acceptance testing stage
What is acceptance testing? Who does it?
SLIDE 13
LOT–13
What is acceptance testing?
Who does it?
Testing by clients / users to check that the system satisfies requirements
Sometimes called alpha testing
Acceptance testing stage – 2
SLIDE 14
Basic development methods
What are the three basic methods that can be used to
develop a system?
LOT–14
SLIDE 15
LOT–15
What are the three basic methods that can be used to develop a system?
Top down Bottom up Big Bang
Basic development methods – 2
SLIDE 16
LOT–16
Top-down development
How does top-down development work?
SLIDE 17
LOT–17
Top-down development – 2
How does top-down development work?
Build upper level Test using stubs
Throw away Repeat with next lower level
SLIDE 18
LOT–18
Bottom-up development
How does bottom-up development work?
SLIDE 19
LOT–19
Bottom-up development – 2
How does bottom-up development work?
Build lower levels Test with drivers
Throw away Repeat with next higher level
SLIDE 20
LOT–20
Big bang development
How does big-bang development work?
SLIDE 21
LOT–21
Big bang development
How does big-bang development work?
Build everything Then test No stubs or drivers
SLIDE 22
LOT–22
Problems with waterfall model
What are the problems with the waterfall model?
SLIDE 23
LOT–23
Problems with waterfall model – 2
What are the problems with the waterfall model?
Too slow Too rigid Too focused on top-down functional development and
bottom-up testing
Not the way people work Staffing levels of different types batched at different
times with the levels requiring large resource shifts from low to high and back.
SLIDE 24
LOT–24
Waterfall spin-off models
Development in stages
Level use of staff What types of testing is done?
SLIDE 25
LOT–25
Waterfall spin-off models – 2
Development in stages
Level use of staff What types of testing is done?
Testing now entails both
Regression Progression
SLIDE 26
LOT–26
Waterfall spin-off models – 3
What are the major types of spin off models?
SLIDE 27
LOT–27
Waterfall spin-off models – 4
What are the major types of spin off models?
Variations involve constructing a sequence of
systems
Incremental Evolutionary Spiral
SLIDE 28
LOT–28
Waterfall spin-off models – 5
What is their common modus operandi?
SLIDE 29
LOT–29
Waterfall spin-off models – 6
What is their common modus operandi?
Waterfall model is applied to each build
Smaller problem than original System functionality does not change during a
build
SLIDE 30
LOT–30
Incremental model
Have high-level design at the beginning Low-level design results in a series of builds
Incremental testing is useful System testing is not affected
Level off staffing problems
SLIDE 31
LOT–31
Evolutionary model
First build is defined Priorities and customer define next build Difficult to have initial high-level design
Incremental testing is difficult System testing is not affected
SLIDE 32
LOT–32
Spiral model
Combination of incremental and evolutionary After each build assess benefits and risks
Use to decide go/no-go and direction
Difficult to have initial high-level design
Incremental testing is difficult System testing is not affected
SLIDE 33
LOT–33
Spiral model – advantage
Earlier synthesis and deliverables More customer feedback Risk/benefit analysis is rigorous
SLIDE 34
LOT–34
Rapid prototyping
Specification based life cycle model Build quick and dirty system
Good for risk analysis Customer feedback
SLIDE 35
LOT–35
Rapid prototyping – 2
System testing is difficult
Where is the specification?
Good for acceptance testing
Emphasis is behaviour, not structure
SLIDE 36
LOT–36
Executable specifications
Specification based life cycle model Extension of rapid prototyping Specific behavioural models are built and executed
Statecharts Finite state machines Petri nets Z specification language
Customer feedback as for rapid prototyping
SLIDE 37
LOT–37
Integration & system testing
Need to know difference between integration and system
testing
Avoid gaps and redundancies across levels Set testing goals appropriate for each level
Structural & behavioural views separate integration and
system testing goals
SLIDE 38
LOT–38
Threads
What are threads?
SLIDE 39
LOT–39
Threads – 2
What are threads?
Use cases Describe behaviour
Have threads at different levels
What are the levels?
SLIDE 40
LOT–40
Thread levels
Have threads at different levels
What are the levels?
Unit Integration System
SLIDE 41
LOT–41
Thread levels – 2
What are the threads at each level?
Unit
???
Integration
???
System
???
SLIDE 42
LOT–42
Thread levels – 3
Unit
Path in a program graph
Integration
Path in a finite state machine
System level
Data context and sequence of port events
SLIDE 43
LOT–43
Structural insights – integration testing
Assumes unit level testing completed Can be seen as interface testing
What about algorithms at higher levels?
Uses preliminary design
What is preliminary design?
SLIDE 44
LOT–44
Structural insights – system testing
Requirements level What is the difference between the following?
Requirements Preliminary design
What-how and other definitions too vague
Inevitability of intertwining specification and design
SLIDE 45