0% found this document useful (0 votes)
71 views25 pages

Software Testing Strategies

The document discusses various software testing strategies including unit testing, integration testing, verification and validation, and testing strategies for both conventional and object-oriented software. It emphasizes testing components individually through unit testing and then integrating and testing them together incrementally to find errors. Different testing types like alpha and beta testing are also outlined.

Uploaded by

habado bado
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views25 pages

Software Testing Strategies

The document discusses various software testing strategies including unit testing, integration testing, verification and validation, and testing strategies for both conventional and object-oriented software. It emphasizes testing components individually through unit testing and then integrating and testing them together incrementally to find errors. Different testing types like alpha and beta testing are also outlined.

Uploaded by

habado bado
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 25

Software Testing Strategies

What is Software Testing?


● It is a basically a process of evaluating the functionality of a software
application to find any software bugs.

● It is basically checks whether the developed software meets the specified


requirements and identifies any defects in the software in order to produce a
quality product.
General Characteristics of Strategic Testing

● To perform effective testing, a software team should conduct effective


formal technical reviews
● Testing begins at the component level and work outward toward the
integration of the entire computer-based system

● Different testing techniques are appropriate at different points in time

● Testing is conducted by the developer of the software and (for large


projects) by an independent test group

● Testing and debugging are different activities, but debugging must be


accommodated in any testing strategy
Verification and Validation
Verification

- The set of activities that ensure that software correctly implements a


specific function or algorithm

Validation
- The set of activities that ensure that software correctly implements a specific
function or algorithm
A Strategy for Testing Conventional Software
Testing Strategy applied to Conventional Software
• Unit testing

• Exercises specific paths in a component's control structure to ensure


complete coverage and maximum error detection

• Components are then assembled and integrated

• Unit testing

• Exercises specific paths in a component's control structure to ensure


complete coverage and maximum error detection

• Components are then assembled and integrated


Testing Strategy applied to Conventional Software

• Validation testing

• Provides final assurance that the software meets all functional, behavioral,
and performance requirements

• System testing

• Verifies that all system elements (software, hardware, people, databases)


mesh properly and that overall system function and performance is achieved
Testing Strategy applied to Object Oriented Software
● Must broaden testing to include detections of errors in analysis and design
models
● Unit testing loses some of its meaning and integration testing changes
significantly
● Use the same philosophy but different approach as in conventional software
testing
● Test "in the small" and then work out to testing "in the large"
● Finally, the system as a whole is tested to detect errors in fulfilling
requirements
When is Testing Complete?

There is no definitive answer to this question.


Test Strategies for Conventional Software
● Unit Testing
● Integration Testing
Unit Testing

• Focuses testing on the function or software module


• Concentrates on the internal processing logic and data
structures
• Is simplified when a module is designed with high cohesion
• Reduces the number of test cases
• Allows errors to be more easily predicted and uncovered
Targets for Unit Test Cases
● Module Interface
● Local Data Structures
● Boundary Conditions
● Independent Paths ( Basis Paths)
● Error Handling Paths
Common Computational Errors in Execution Paths

• Misunderstood or incorrect arithmetic precedence

• Mixed mode operations (e.g., int, float, char)

• Incorrect initialization of values

• Precision inaccuracy and round-off errors

• Incorrect symbolic representation of an expression (int vs. float)


Other Errors to Uncover
• Comparison of different data types

• Incorrect logical operators or precedence

• Expectation of equality when precision error makes equality unlikely (using == with float types)

• Incorrect comparison of variables

• Improper or nonexistent loop termination

• Failure to exit when divergent iteration is encountered

• Improperly modified loop variables

• Boundary value violations


Drivers and Stubs for Unit Testing

• Driver
- A simple main program that accepts test case data, passes such data to the
component being tested, and prints the returned results

• Stubs
- Serve to replace modules that are subordinate to (called by) the component to
be tested
Integration Testing
• Defined as a systematic technique for constructing the software
architecture.

• Objective is to take unit tested modules and build a program


structure based on the prescribed design
Non-incremental Integration Testing
Commonly called the “Big Bang” approach

• All components are combined in advance

• The entire program is tested as a whole

• Chaos results

• Many seemingly-unrelated errors are encountered

• Correction is difficult because isolation of causes is complicated

• Once a set of errors are corrected, more errors occur, and testing appears to enter an
endless loop
Incremental Integration Testing
• Three kinds

• Top-down integration

• Bottom-up integration

• Sandwich integration

• The program is constructed and tested in small increments

• Errors are easier to isolate and correct

• Interfaces are more likely to be tested completely

• A systematic test approach is applied


Top-down Integration

Modules are integrated by moving downward through the


control hierarchy, beginning with the main module.
Bottom-up Integration

Integration and testing starts with the most atomic modules in


the control hierarchy
Sandwich Integration

• Consists of a combination of both top-down and bottom-up


integration
• Occurs both at the highest level modules and also at the lowest level
modules
Test Strategies for Object-
Oriented Software
Two different object-oriented testing strategies
• Thread-based testing

• Integrates the set of classes required to respond to one input or event for the system

• Each thread is integrated and tested individually

• Regression testing is applied to ensure that no side effects occur

• Use-based testing

• First tests the independent classes that use very few, if any, server classes

• Then the next layer of classes, called dependent classes, are integrated

• This sequence of testing layer of dependent classes continues until the entire system is
constructed
Alpha and Beta Testing
• Alpha testing

• Conducted at the developer’s site by end users

• Software is used in a natural setting with developers watching intently

• Testing is conducted in a controlled environment

• Beta testing

• Conducted at end-user sites

• Developer is generally not present

• It serves as a live application of the software in an environment that cannot be controlled by the
developer

• The end-user records all problems that are encountered and reports these to the developers at regular
intervals
SYSTEM TESTING

Different Types
● Recovery Testing
● Security Testing
● Stress Testing
● Performance Testing

You might also like