Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
3 Testing Approaches
black-box”
• the inputs have to be given to observe the behavior (output) of the program
“White-box”
• approach examines the internal structure of the program
• This method of testing exposes both errors of omission (errors due to
neglected specification)
• errors of commission (something not defined by the specification).
Exhaustive path
• testing will not address missing paths and data-sensitive errors.
In conclusion,
2. Levels of Testing
In developing a large system, testing usually involves several stages (Refer the
following figure [2]).
• Unit Testing
• Integration Testing
The objective of unit and integration testing was to ensure that the code
implemented the design properly
• System Testing
• Acceptance Testing
• Once the system is integrated, the overall functionality is tested against the
Software Requirements Specification (SRS)
Integration Strategies
· Big Bang approach: Big Bang approach consists of testing each module individually
and linking all these modules together only when every module in the system has
been tested.
Example :
• Locating interface errors, if any, becomes difficult here.
· Incremental approach
• Top-down testing
• Bottom-up testing
• Sandwich testing
System Testing
• , the overall functionality is tested against the Software Requirements
Specification (SRS). Then, the other non-functional requirements like
performance testing are done to ensure readiness of the system to work
successfully in a customer’s actual working environment
Acceptance Testing
• The next step is customer’s validation of the system against User
Requirements Specification (URS). Customer in their working environment
does.
benchmark test,
the system performance is evaluated against test cases that represent typical
conditions under which the system will operate when actually installed.
pilot test installs the system on an experimental basis, and the system is
evaluated against everyday working.
• Sometimes the system is piloted in-house before the customer runs the
real pilot test. The in-house test, in such case, is called an alpha test,
and the customer’s pilot is a beta test.
• A third approach, parallel testing, is done when a new system is
replacing an existing one or is part of a phased development. The new
system is put to use in parallel with previous version and will facilitate
gradual transition of users, and to compare and contrast the new system
with the old.
3. Test Techniques
- Equivalence Partitioning
- Boundary Value Analysis
- Cause Effect Analysis
- Cause Effect Graphing
- Error Guessing
Equivalence Partitioning
testing one value from a class is equivalent to testing any other value from that class
The main drawback of the previous two techniques is that they do not explore the
combination of input conditions.
• Link causes and effects in a Boolean graph which is the cause-effect graph.
• A cause is an input condition or an equivalence class of input conditions
• An effect is an output condition or a system transformation.
• Stop When
All test cases, derived from equivalent partitioning, cause-effect analysis &
boundary-value analysis, are executed without detecting errors.
Drawbacks
• Rather than defining a goal & allowing the tester to select the most appropriate
way of achieving it, it does the opposite !!!
• No way to guarantee that the particular methodology is properly & rigorously used
Predictive Models
• Based on the history of usage / initial testing & the errors found
• Based on the initial testing & the ratio of detected seeded errors to detected
unseeded errors
Using this approach, as an example, we can say that testing is complete if 80% of
the pre-defined number of errors are detected or the scheduled four months of
testing is over, whichever comes later.
Caution !
The Above Condition May Never Be Achieved For The Following Reasons
Module Test
5. Debugging
• Breakpoints
• Desk Checking
• Dumps
• Single-Step Operation
• Traces