Levels of Testing (chapter 12)

advertisement
Levels of Software Applications
• Up to now we have focused on testing techniques at the unit (or
program) level.
• In any medium to large software systems, there are many programs
(sometimes thousands) that formulate various levels of functions to components - to a complete application.
• For example a typical ERP (Enterprise Resource Processing)
package such as SAP or PeopleSoft or CRM may be composed of
multiple layers of application:
–
A comprehensive ERP package to satisfy a wide range of requirements
contains
•
•
•
•
Human Resource
– Benefits management
– Payroll
Manufacturing
– Production Planning and Scheduling
– Inventory
Distribution
– Warehouse management
– Logistics
Financial
.
Levels of Testing
•
Testing at the program unit level is not enough to
handle medium and large software systems.
•
The different levels of software must be integrated and
tested step-by-step - - - until the complete package is
integrated and tested as a whole system:
1.
Integration Test (Functional or higher Component level)
•
•
•
2.
monthly pay computation for regular employees, not including
direct bank deposit or check printing - (“big” functional level)
Complete Payroll - (“very big functional” or component level)
Complete Human Resource - (“big component” or system level)
System Test (component or complete system level)
•
•
•
•
Human resource - (“big component” or system level)
Manufacturing - (“big component” or system level)
Manufacturing and Finance - (Integrated system level)
Complete ERP - (“very large” Integrated system level)
The Effects of Software Process to Testing
•
Software process which develops a software by increments (e.g.
any “Agile” or incremental development process) will naturally
need to consider integration and system testing techniques:
1.
2.
3.
4.
Incremental development , where the design of the whole software is
developed by parts (possibly in parallel), must be coded and tested
separately and then integrated together and retested.
Evolutionary development , where a) small, but well understood, part
of the software is first designed, coded and tested & b) with additional
parts developed later; must perform “continuous integration” and
testing of the software
Spiral development , where pieces of software evolve through planning,
risk assessment, design, coding, and testing, must integrate and
retest as the pieces are accumulated.
Prototype specification based and Agile process based , where the
software or parts of the software are specified, prototyped and
developed separately, must integrate and test these separately
“specified” and separately developed software.
Agile (any incremental) development methodology also requires a
good code Configuration Management system.
Integration and System tests
1.
Integration test can be helped with insights to the
“structural” design of the software.
–
–
2.
Which are the pieces ? - would help us decide what pieces
need to be tested
How are the pieces put together? - would help us decide
where the “linkages” or couplings are and where the test
focus points are.
System test can be helped with insights to the
“behavior” or “functional behavior” of the software
as specified in the requirements
–
Given (a) some pre-conditional state and (b) some input or
stimuli what should the
•
•
i) output be and
ii) the post-conditional state be.
Different Levels of Testing
Integration Testing
Unit Testing
Functional Testing
System
Component Testing Testing
Program unit A
Function 1
Program unit B
.
.
.
Component 1
Function 2
.
.
.
Component 3
Function 8
Program unit T
Can we really keep the levels this simple?
Whole
System
Using Configuration Management tool
• Naming Convention and Promotion Policies are
needed along with Configuration Management
tool
– There must be a clear rule about promoting the artifact
from one stage of development / test to another.
– Once the artifact is promoted to a certain stage, it is
locked at that stage.
– It is also important to promote related artifacts such as
code, help text and test cases
.
.
promote
Unit-tested
Private Copies
promote
Formally
Inspected
promote
Functionally
Tested
promote
Integration
& System Tested
Golden
Copy
Download