Unit Iv
Unit Iv
Verification uses methods like reviews, walkthroughs, It uses methods like Black Box Testing,
inspections, and desk- checking etc. White Box Testing, and non-functional testing
Whether the software conforms to specification is It checks whether the software meets the requirements
checked and expectations of a customer
iv) System testing, where the software and other system elements are
tested as a whole. Software, once validated, must be combined with
other system elements (e.g., hardware, people, databases). System
testing verifies that all elements mesh properly and that overall system
function/performance is achieved.
2)Test strategies for conventional software
• There are many strategies that can be used to test software.
At one extreme, you can wait until the system is fully constructed and
then conduct tests on the overall system in hopes of finding errors.
This approach, although appealing, simply does not work. It will
result in buggy software that disappoints all stakeholders.
• Unit Testing
• Integration Testing
• Validation Testing
• System Testing
Unit Testing
Non-
Incremental Incremental
Testing Testing
Big-Bang
Top- Bottom-
Sandwich Regression Smoke
Down Up
Top-down integration
• Top-down integration testing is an incremental approach to
construction of the software architecture.
• Modules are integrated by moving downward through the control
hierarchy, beginning with the main control module (main program).
• Modules subordinate to the main control module are incorporated into
the structure in either a
• depth-first or
• breadth-first manner.
Depth-first integration integrates all components on a major control path of the
program structure. For example, selecting the left-hand path, components M1, M2 ,
M5 would be integrated first. Next, M8 or M6 would be integrated. Then, the
central and right-hand control paths are built.
Breadth-first integration incorporates all components directly subordinate at each
level, moving across the structure horizontally. From the figure, components M2,
M3, and M4 would be integrated first. The next control level, M5, M6, and so on,
follows
The integration process is performed in a series of five steps:
1. The main control module is used as a test driver and stubs are
substituted for all components directly subordinate to the main control
module.
2. Depending on the integration approach selected (i.e., depth or breadth
first), subordinate stubs are replaced one at a time with actual
components.
3. Tests are conducted as each component is integrated.
4. On completion of each set of tests, another stub is replaced with the
real component.
5. Regression testing may be conducted to ensure that new errors have not
been introduced
The process continues from step 2 until the entire program structure is
built.
Bottom-Up Integration Testing
• Bottom-up integration testing, as its name implies, begins construction
and testing with atomic modules (i.e., components at the lowest levels
in the program structure).
• Bottom-up integration strategy may be implemented with the
following steps:
1. Low-level components are combined into clusters that perform a
specific software sub function.
2. A driver (a control program for testing) is written to coordinate test
case input and output.
3. The cluster is tested.
4. Drivers are removed and clusters are combined moving upward in the
program structure.
Integration follows the pattern illustrated in Figure 17.6. Components
are combined to form clusters 1, 2, and 3. Each of the clusters is tested using
a driver (shown as a dashed block).
Components in clusters 1 and 2 are subordinate to Ma. Drivers D1 and D2
are removed and the clusters are interfaced directly to Ma. Similarly, driver
D3 for cluster 3 is removed prior to integration with module Mb. Both Ma
and Mb will ultimately be integrated with component Mc, and so forth
Sandwich
• Sandwich Testing is the combination of bottom-up approach and
top-down approach, so it uses the advantage of both bottom up
approach and top down approach.
• Initially it uses the stubs and drivers where stubs simulate the
behaviour of missing component. It is also known as the Hybrid
Integration Testing.
Regression Testing
• Each time a new module is added as part of integration testing, the
software changes.
• New data flow paths are established, new I/O may occur, and new
control logic is invoked.
• These changes may cause problems with functions that previously
worked flawlessly.
• In the context of an integration test strategy, regression testing is the
re execution of some subset of tests that have already been conducted
to ensure that changes have not propagated unintended side effects.
Smoke Testing
Advantages:
• The big bang approach can be useful only for small systems.
Disadvantages:
• Testing can commence only after completion of coding.
• Testing may not uncover interface errors.
• Modules critical to the system may not receive the extra testing.
Validation Testing