SE 5 3 Testing Conven Softw
SE 5 3 Testing Conven Softw
SE 5 3 Testing Conven Softw
ENGINEERING
Module 5 - Part 3
Unit Testing
● Focus on the smallest unit of software design, i.e module or software component.
● Based on component-level design the internal processing logic and data structures within components are
tested.
Top-down integration
Beginning with main control moves downward by adding subordinate modules.
Can use depth-first or breadth first technique.
Depth first integration moves vertically to the depth, components M1, M2,
M5 then M8 or M6 as demanded by M2 is added.
Breadth first integration moves horizontally through each level, after M1,
components M2, M3 and M4 then M5, M6, M7 are added.
Steps :
1. Main control used as test driver and stubs are placed as subordinate
modules.
2. Stubs replaced by actual modules based on depth first or breadth first
integration.
3. Tests take place as each module is integrated.
4. Another stub is replaced and testing is done
5. Regression testing may be conducted.
Bottom up integration
Begins at atomic modules in lower level and moves upward to main control.
Steps :
• Low level components combined to form clusters(builds).
• Driver placed atop to coordinate test cases.
• Cluster is tested.
• Drivers are removed and clusters are combined.
Regression Testing
Integrating new module introduces new control logic, data flow paths and i/o functions.
This may cause problems to parts that worked correctly before.
Therefore, regression testing re-executes subset of tests that have already been done to ensure proper functioning of
all components.
Steps :
• Components integrated to form builds.
• Tests builds to uncover only show-stopper errors.
• If tests are passed, the build is integrated with other builds and are smoke tested frequently.
Benefits:
Integration risk minimized
Quality of end product improved
Error diagnosis and correction simplified
Progress is easier to assess.
Validation Testing
• Begins at the conclusion of integration testing when individual components have been tested, software completely
assembled as a package, and interfacing errors have been uncovered and corrected.
• Focuses on user-visible actions and user-recognizable output from the system.
Validation-Test Criteria
Test cases that are designed to ensure
• all functional requirements and behavioral characteristics are achieved,
• content is accurate
• all performance requirements are attained
Configuration Review :
• An important element of validation process to ensure that all elements of the software configuration have been
properly developed. It is also known as audit.
validation testing cont…
Acceptance Testing :
• Alpha tests are conducted at developer’s site by a group of end users with the developer “looking over the
shoulder” of the users by recording errors and usage problems. They are conducted in a controlled environment.
• Beta test is conducted at one or more end-user sites, developer is not present and environment is not controlled
by developer. Users record problems and report to the developer who makes modifications and release software
to the customer base.
System Testing
At its final stage a software is incorporated with other system elements such as hardware, people and information and
is usually carried out by a team that is independent of the development team. It includes :-
Recovery Testing
Tests that forces a system to fail in a variety of ways to verify recovery is performed properly.
Security Testing
Tests whether protection mechanism built in fact protects the system from improper penetration.
Stress Testing
Tests system under conditions where it demands resources in abnormal quantity or volume.
Performance Testing
Tests run-time performance and is often coupled with stress testing.
Techniques
Equivalence partitioning
Divides input values into classes of data from which test cases are derived. These equivalence classes contain valid and
invalid partitions of the input conditions.
Boundary Value Analysis
Here test data is selected from boundaries or edges of input domain. The values at the boundary, and just above and
below, or adjacent are taken.
Graph Based Testing
Cause effect graphing involves building a graph based on the causes and effect, i.e., input and output conditions and
deriving test cases to cover the graph and find errors.
White Box Testing
• Other names, Glass-Box testing, Code-Based/Structural testing, Clear-Box/Transparent-Box/Open-Box Testing.
• Internal structure is known, all program based logic paths are covered.
• Test cases are derived to ensure :
o All independent paths within the component is covered
o True/False logic decisions are exercised
o Loops are tested over their input domain and boundary conditions
o Examine internal data structures for validity
• Applied in Unit Testing, Integration Testing, System Testing.
Techniques
Basis Path Testing
A logical complexity measure can be derived from these technique which acts as a basis to define independent logical
paths in a module. It is done with the help of flow graph notations and then deriving paths from them and eventually test
cases.
Control Structure Testing
It includes condition testing, data flow testing, loop testing