Sunday, June 1, 2008

Comments on Integration Testing

Comments on Integration Testing

There has been much discussion on the advantages and disadvantages of bottom-up and top-down integration testing. Typically a disadvantage is one is an advantage of the other approach. The major disadvantage of top-down approaches is the need for stubs and the difficulties that are linked with them. Problems linked with stubs may be offset by the advantage of testing major control functions early. The major drawback of bottom-up integration is that the program does not exist until the last module is included.

2.4 Validation Testing

As a culmination of testing, software is completely assembled as a package, interfacing errors have been identified and corrected, and a final set of software tests validation testing are started. Validation can be defined in various ways, but a basic one is valid succeeds when the software functions in a fashion that can reasonably expected by the customer.

2.4.1 Validation test criteria

Software validation is achieved through a series of black box tests that show conformity with requirements. A test plan provides the classes of tests to be performed and a test procedure sets out particular test cases that are to be used to show conformity with requirements.

2.4.2 Configuration review

An important element of the validation process is a configuration review. The role of the review is to ensure that all the components of the software configuration have been properly developed, are catalogued and have the required detail to support the maintenance phase of the software lifecycle.

2.4.3 Alpha and Beta testing

It is virtually impossible for develop to determine how the customer will actually use the program. When custom software is produced for customer a set of acceptance tests are performed to allow the user to check all requirements. Conducted by the end user instead of the developer, an acceptance test can range from an informal test drive to rigorous set of tests. Most developers use alpha and beta testing to identify errors that only users seem to be able to find. Alpha testing is performed at the developer’s sites, with the developer checking over the customers shoulder as they use the system to determine errors. Beta testing is conducted at more than one customer locations with the developer not being present. The customer reports any problems they have to allow the developer to modify the system.
2.5 System Testing

Ultimately, software is included with other system components and a set of system validation and integration tests are performed. Steps performed during software design and testing can greatly improve the probability of successful software integration in the larger system. System testing is a series of different tests whose main aim is to fully exercise the computer-based system. Although each test has a different role, all work should verify that all system elements have been properly integrated and form allocated functions. Below we consider various system tests for computer-based systems.

2.5.1 Recovery Testing

Many computer-based systems need to recover from faults and resume processing within a particular time. In certain cases, a system needs to be fault-tolerant. In other cases, a system failure must be corrected within a specified period of time or severe economic damage will happen. Recovery testing is a system test that forces the software to fail in various ways and verifies the recovery is performed correctly.

2.5.2 Security Testing

Any computer-based system that manages sensitive information or produces operations that can improperly harm individuals is a target for improper or illegal penetration. Security testing tries to verify that protection approaches built into a system will protect it from improper penetration. During security testing, the tester plays the role of the individual who wants to enter the system. The tester may try to get passwords through external clerical approaches; may attack the system with customized software, purposely produce errors and hope to find the key to system entry. The role of the designer is to make entry to the system more expensive than that which can be gained.

2.5.3 Stress Testing

Stress testing executes a system in the demands resources in abnormal quantity, frequently or volume. A variation of stress testing is an approach called sensitivity testing in some situation a very small range of data contained with the bounds of valid data for a program may cause extreme and even erroneous processing or profound performance degradation.


No comments: