The software developer is always responsible for testing the individual units (modules) of the program ensuring that each performs the function for which it was designed. In many cases, the developer also conducts integration testing
A testing step that leads to construction of the complete program structure. Only after the software architecture is complete, does an independent test group (ITG) become involved?
The role of an ITG is to remove the inherent problems associated with letting the builder test the thing that has been built. Independent testing removes the conflict of interest that may otherwise present. After all, personnel in the ITG team are paid to find errors.
How ever, the software developer does not turn the program over to ITG and walk away. The developer and the ITG work closely throughout a software project to ensure that thorough tests will be conducted. While testing is conducted, the developer must be available to correct errors that are uncovered.
The ITG is part of the software development project team in the sense that it becomes involved during the specification process and stays involved (planning and specifying test procedures) throughout a large project.
However, in many cases the ITG reports to the SQA organization, there by achieving a degree of independence that might not be possible if it were a part of the software development organization.
The software engineering process may be viewed as a spiral.
Initially system engineering defines the roll of software and leads to software requirements and 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.
The 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. Testing progresses by moving outward along the spiral to integration testing, where the focus is on design and the construction of the software architecture. Talking another turn outward on the spiral, we encounter
Validation testing where requirements established as part of software requirements analysis are validated against the software that has been constructed. Finally, We arrive at system testing where the software and other system elements are tested as a whole.
To test computer software, we spiral out along streamlines that broaden the scope of testing with each turn.Considering the process from a procedural point of view testing within the context of software engineering is a series of four steps that are implemented sequentially.
The steps are shown In Figure initially tests focus on each module individually, assuring that it functions as a unit hence the name unit testing. Unit testing makes heavy use of white-box testing techniques, exercising specific paths in a module's control structure to ensure complete coverage and maximum error detection.
Next, modules must be assembled or integrated to form the complete software package. Integration testing addresses the issues associated with the dual problems of verification and program construction. Black-box test case design techniques are most prevalent during integration, although a limited amount of white -box testing may be used to ensure coverage of major control paths. After the software has been integrated (constructed), sets of high-order test are conducted. Validation criteria (established during requirements analysis) must be tested.
Validation testing provides final assurance that software needs all functional, behavioral and performance requirements. Black-box testing techniques are used exclusively during validation.
The last high-order testing step falls outside the boundary of software engineering and into the broader context of computer system engineering. Software once validated must be combined with other system elements (e.g., hardware, people, and databases). System testing verifies the tall elements mesh properly and that overall system function/performance is achieved.
INTEGRATION TESTING PART ONE
INTEGRATION TESTING PART TWO
INTEGRATION TESTING PART THREE
INTEGRATION TESTING PART FOUR
INTEGRATION TESTING PART FIVE
INTEGRATION TEST STANDARDS
INTEGRATION TEST STANDARDS PART TWO
QUALITY ASSURANCE PART TWO
QUALITY ASSURANCE SQA
QUALITY OF DESIGN OF TEST CASE
QUALITY MANAGEMENT IN SOFTWARE TESTING
TOOLS FOR QUALITY MANAGEMENT
STATICAL QUALITY ASSURANCE
ISO APPROACH TO QUALITY TESTING