MIS 495 -- Dr. Reithel

Chapter 17


Verification refers to the set of activities that ensure that software correctly implements a specific function: "Are we building the product right?"

Validation refers to a different set of activities that ensure that the software that has been built is traceable to customer requirements: "Are we building the right product?"


Testing Strategy

The software engineering process may be viewed as a spiral (see Pressman book, p. 491). Initially, system engineering defines the role of software and leads to software requirements analysis, where the information domain, function, behavior, performance, constraints, and validation criteria for software are established. Moving inward along the spiral, we come to design and finally to coding. To develop computer software, we spiral in along streamlines that decrease the level of abstraction on each turn.

A strategy for software testing may also be viewed in the context of the spiral:

Unit testing begins at the vortex of the spiral and concentrates on each unit of the software as implemented in source code. Unit testing makes heavy use of white-box testing.

Integration testing focuses on design and the construction of the software architecture. This testing addresses the issues associated with the dual problems of verification and program construction.

In validation testing, the requirements are established as part of software requirements analysis are validated against the software that has been constructed. Validation testing provides final assurance that software meets all functional, behavioral, and preformance requirements.

System testing tests the software and other system elements as a whole and verifies that all elements mesh properly and that overall system function/performance is achieved.


Top-Down Intgration

Top-down integration is an incremental approach to construction of program structure. Modules are integrated by moving downward through the control hierarchy, beginning with the main control module. Modules subordinate to the main control module are incorporated into the structure in either a depth-first or breadth-first manner. The top-down integration strategy verifies major control or decision points early in the test process.

Bottom-Up Integration

Bottom-up integration testing, as its name implies, begins construction and testing with atomic modules (i.e., modules at the lowest levels in the program structure). Because modules are integrated from the bottom up, processing required for modules subordinate to a given level is always available and the need for stubs is eliminated.


System Testing

These tests fall outside the scope of the software engineering process and are not conducted solely by the software developer. However, steps taken during software design and testing can greatly improve the probability of successful software integration in the larger system. System testing is actually a series of different tests whose primary purpose is to fully exercise the computer-based system. Although each test has a different purpose, all work to verify that all system elements have been properly integrated and perform allocated functions.


Last Modified: Wednesday, 13-January-99 9:20 CDT
Copyright © 1999 University of Mississippi. All rights reserved.

Comments: reithel@bus.olemiss.edu