chapter 2: testing in software life cycle mnn1063 system testing and evaluation
TRANSCRIPT
Chapter 2:Testing in Software Life CycleMNN1063 System Testing and Evaluation
Software Development Model
0The development process adopted will depend on the project aims and goal
0There are numerous model have been developed to achieve different required objectives
0The life cycle model that is adopted for a project will have a big impact on the testing that is carried out
0Testing are highly related to software development activities
0Testing is organized to fit the development life cycle
Software Development Model
0 In every development life cycle, a part of testing is focused on verification testing and validation testing
0Verification testing is concerned with evaluating a work product, component or system to determine whether it meets the requirement set
0Validation testing is concerned with evaluating a work product, component or system to determine whether it meets the user needs and requirements
Waterfall ModelNeed, wish,
policy, law
User Requirements
Systems Requirements
Global Design
Detail Design
Implementation
Testing
Testing at the End
V-Model
0Was developed to address some of the problems experienced using the traditional waterfall:0 Defects were being found too late
0The V-model provides guidance that testing needs to begin as early as possible
0Testing – in parallel with development
V-Model
0Common V-model uses four test levels0 Component testing – search defects & verifies the
functioning of software components (module, programs, objects, classes)
0 Integration testing –tests interface between components, interface with OS, file systems and hardware
0 System testing – concerned with the behavior of the whole system
0 Acceptance testing – validation testing with respect to user needs, requirements, business process
V-ModelNeed, wish,
policy, law
User Requirements
Systems Requirements
Global Design
Detail Design
Implementation
Component Test Execution
Integration Test Execution
System Test Execution
Acceptance Test Execution
Operational systems
PreparationAcceptance Test
PreparationSystems Test
PreparationIntegration Test
Iterative Life CyclePhase 1
Def
ine
Dev
elop
Bui
ld
Test
Impl
emen
t
Phase 2
Def
ine
Dev
elop
Bui
ld
Test
Impl
emen
t
Phase 3
Def
ine
Dev
elop
Bui
ld
Test
Impl
emen
t
Delivery is divided into increments or builds
Subsequence increments will need testing for new functionality, regression testing of the existing functionality, and integration testing of both new and existing parts
Iterative Life Cycle Example0Rapid Application Development (RAD) – parallel
development
Define Develop Build Test
Define Develop Build Test
Define Develop Build Test
Define Develop Build Test
Function 1
Function 2
Function 3
Function 4
Iterative Life Cycle Example:Agile Development
0Currently one of the most well-known development life-cycle model & human friendly
0Characteristic:0 Promotes the generation of business stories to define
functionality0 Promotes pair programming and shared code ownership0 State component test scripts shall be written before the code
is written0 States that integration and testing of code shall happen
several times0 States that we always implement the simplest solution to meet
today’s problem
Testing within a Life Cycle Model
0Which ever life cycle model is being used, there are several characteristic of good testing:0 Every development activity, there is a corresponding
testing activity0 Each test level has test objectives specific to that level0 The analysis and design of tests for a given test level
should begin during the corresponding development activity
0 Tester should be involved in reviewing documents as soon as drafts are available in the development cycle
Test Levels: Component Testing
0Also known as unit, module and program testing0Searches for defects and verifies the functioning of software0May be done in isolation from the rest of systems0Most often stubs and drivers are used to replace missing
software0May include testing of functionality and specific non-
functionality characteristic0Test cases are derived from work products – software
design, data model0Occurs with access to the code being tested
Test Levels: Component Testing
A
B
A
Stub
Driver
B
Component
Component
Test Levels: Integration Testing
0Test interfaces between components, interaction between different parts of systems
0There are may be more than one level of integration testing
0Greater the scope of integration – the more difficult to isolate failures
0Approaches:0 Big-bang0 Incremental-testing
Test Levels:Systems Testing
0Concerned with the behavior of the whole system/product as defined by the scope of development project or product
0Tests based on risks or requirement specification, business processes, use cases or high level descriptions of systems behavior
0Should investigate both functional and non-functional requirements
0Requires controlled test environment