levels of testinglot–3 v-model – development & testing requirements detailed design module...
TRANSCRIPT
Levels of Testing
Chapter 12
Beyond unit testing
LOT–2
Life cycle models
What is a life cycle model of software development?
What is the traditional life cycle model?
LOT–3
V-Model – development & testing
Requirements
DetailedDesign
Moduleimplementation Unit test
Integration test
System test
Acceptancetest
Run
testsW
rite tests
Customer
Developer
Functional
Structural
ArchitecturalDesign
LOT–4
Traditional model
How well do the levels of the traditional Waterfall modelcorrelate with testing?
In what way?
LOT–5
Traditional model – 2
How well do the levels of the traditional Waterfall modelcorrelate with testing?
In what way? Levels correlate with levels of testing
Functional testing is implied
Bottom up testing is implied
LOT–6
Developer – unit testing stage
What is unit testing?
How do we do unit testing?
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
LOT–8
Developer – integration testing stage
What is integration testing?
How do we do integration testing?
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, untilsystem level is reached
Developer – integration testing stage – 2
LOT–10
Developer – system testing stage
What is system testing?
How do we do system testing?
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
LOT–12
Acceptance testing stage
What is acceptance testing?
Who does it?
LOT–13
What is acceptance testing?
Who does it?
Testing by clients / users to check that the systemsatisfies requirements
Sometimes called alpha testing
Acceptance testing stage – 2
Basic development methods
What are the three basic methods that can be used todevelop a system?
LOT–14
LOT–15
What are the three basic methods that can be used todevelop a system?
Top down
Bottom up
Big Bang
Basic development methods – 2
LOT–16
Top-down development
How does top-down development work?
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
LOT–18
Bottom-up development
How does bottom-up development work?
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
LOT–20
Big bang development
How does big-bang development work?
LOT–21
Big bang development
How does big-bang development work?
Build everything
Then test
No stubs or drivers
LOT–22
Problems with waterfall model
What are the problems with the waterfall model?
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 shiftsfrom low to high and back.
LOT–24
Waterfall spin-off models
Development in stages Level use of staff What types of testing is done?
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
LOT–26
Waterfall spin-off models – 3
What are the major types of spin off models?
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
LOT–28
Waterfall spin-off models – 5
What is their common modus operandi?
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 abuild
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
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
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
LOT–33
Spiral model – advantage
Earlier synthesis and deliverables
More customer feedback
Risk/benefit analysis is rigorous
LOT–34
Rapid prototyping
Specification based life cycle model
Build quick and dirty system Good for risk analysis
Customer feedback
LOT–35
Rapid prototyping – 2
System testing is difficult Where is the specification?
Good for acceptance testing Emphasis is behaviour, not structure
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
LOT–37
Integration & system testing
Need to know difference between integration and systemtesting Avoid gaps and redundancies across levels Set testing goals appropriate for each level
Structural & behavioural views separate integration andsystem testing goals
LOT–38
Threads
What are threads?
LOT–39
Threads – 2
What are threads? Use cases Describe behaviour
Have threads at different levels What are the levels?
LOT–40
Thread levels
Have threads at different levels What are the levels?
Unit
Integration
System
LOT–41
Thread levels – 2
What are the threads at each level? Unit
??? Integration
??? System
???
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
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?
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
LOT–45
Behavioural insights
System level Deals with port boundaries
What the user sees and does Sequences of integration-level threads
Integration level Deals with boundaries between port and unit
Within the system Sequences of unit-level threads