Tuesday 7 June 2011

Types of Testing


Unit testing Unit testing focuses on the smallest unit of software design i.e. the software component or module. Using the component-level design description as a guide, important control paths are tested to uncover errors within the boundary of the module. The unit test is white box oriented. Selective testing of execution paths is an essential task during the unit test. Boundary testing is the last and one of the most important tasks of the unit.

Advantages of Unit testing:
(1) Can be applied directly to object code and does not require processing source code. 
(2) Performance profilers commonly implement this measure.

Disadvantages of Unit testing:
(1) In sensitive to some control structure (numbers of iteration).
(2) Does not report whether loops reach their termination condition.
(3) Statement coverage is completely insensitive to the logical operators (// and &&).

Integration TestingIntegration testing is a systematic technique for constructing the program structure while at the same time conducting tests to uncover errors associated with interfacing. The objective is to take unit tested components and build a program structure strictly as per design. The program is constructed and tested in small increments, where errors are easier to isolate and correct.

System testingSystem testing is actually a series of different tests whose primary purpose is to fully exercise the computer-based system. All the tests are done to verify that system elements have been properly integrated and perform allocated functions. Recovery testing is a system test that forces the software to fail in a variety of ways and verifies that recovery is properly performed. Security testing attempts to verify that protection mechanisms built into a system will, in fact protect it, from improper penetration. Stress testing executes a system in a manner that demands resources in abnormal quantity, frequency, or volume and observes how much stress the system can handle. Performance testing is designed to test the run-time performance of software in which both the software and hardware get tested for performance.

Regression testingEach time a new module is added as part of integration process the software changes. These changes may cause problem with functions that previously worked flawlessly. Regression testing is the re-execution of some subset of tests that have already been conducted to ensure that changes have not propagated un-intended side effects. Regression testing may be conducted manually by re-executing a subset of all test cases to ensure that the new integration is flawless. Following are the basic levels of tests performed during regression testing:-
(1) Tests that will exercise all software functions.
(2) Tests that focus on software function that are likely to be affected by the change.
(3) Test that focus on the software components that have been changed.

Acceptance testingAcceptance testing involves Planning & Execution of various types of tests in order to demonstrate that the implemented software system satisfies the requirement stated in the requirements document.

                                                                                                                 







No comments:

Post a Comment