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? LOT–2
V-Model – development & testing Customer Acceptance Requirements test Developer Architectural Run tests System test Write tests Design Functional Detailed Integration test Design Structural Module Unit test implementation LOT–3
Traditional model How well do the levels of the traditional Waterfall model correlate with testing? In what way? LOT–4
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 LOT–5
Developer – unit testing stage What is unit testing? How do we do unit testing? LOT–6
Developer – unit testing stage – 2 What is unit testing? How do we do unit testing? Testing of individual components Unit is best understood Have both functional and structural testing LOT–7
Developer – integration testing stage What is integration testing? How do we do integration testing? LOT–8
Developer – integration testing stage – 2 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 LOT–9
Developer – system testing stage What is system testing? How do we do system testing? LOT–10
Developer – system testing stage – 2 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 LOT–11
Acceptance testing stage What is acceptance testing? Who does it? LOT–12
Acceptance testing stage – 2 What is acceptance testing? Who does it? Testing by clients / users to check that the system satisfies requirements Sometimes called alpha testing LOT–13
Basic development methods What are the three basic methods that can be used to develop a system? LOT–14
Basic development methods – 2 What are the three basic methods that can be used to develop a system? Top down Bottom up Big Bang LOT–15
Top-down development How does top-down development work? LOT–16
Top-down development – 2 How does top-down development work? Build upper level Test using stubs Throw away Repeat with next lower level LOT–17
Bottom-up development How does bottom-up development work? LOT–18
Bottom-up development – 2 How does bottom-up development work? Build lower levels Test with drivers Throw away Repeat with next higher level LOT–19
Big bang development How does big-bang development work? LOT–20
Big bang development How does big-bang development work? Build everything Then test No stubs or drivers LOT–21
Problems with waterfall model What are the problems with the waterfall model? LOT–22
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. LOT–23
Waterfall spin-off models Development in stages Level use of staff What types of testing is done ? LOT–24
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–25
Waterfall spin-off models – 3 What are the major types of spin off models? LOT–26
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–27
Waterfall spin-off models – 5 What is their common modus operandi? LOT–28
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 LOT–29
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–30
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–31
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–32
Spiral model – advantage Earlier synthesis and deliverables More customer feedback Risk/benefit analysis is rigorous LOT–33
Rapid prototyping Specification based life cycle model Build quick and dirty system Good for risk analysis Customer feedback LOT–34
Rapid prototyping – 2 System testing is difficult Where is the specification? Good for acceptance testing Emphasis is behaviour, not structure LOT–35
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–36
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 LOT–37
Threads What are threads? LOT–38
Threads – 2 What are threads? Use cases Describe behaviour Have threads at different levels What are the levels? LOT–39
Thread levels Have threads at different levels What are the levels? Unit Integration System LOT–40
Thread levels – 2 What are the threads at each level? Unit ??? Integration ??? System ??? LOT–41
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–42
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–43
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–44
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 LOT–45
Recommend
More recommend