Friday, January 4, 2008

Testing Types

Structural Testing (White Box Testing): Those testing techniques that involve understanding of the control structure of software components and their procedural design form a part of Structured Testing.

Code-walkthroughs of front-end and back-end code come under this type of testing.

Functional Testing (Black Box Testing): Those testing methods that need functional understanding of ‘what’ a software unit is supposed to perform rather than ‘how’ form a part of Functional Testing.

Business rule validations through sample data in a test sequence comes under this type of testing.

White Box Testing Techniques

Branch Testing: Testing designed to execute each outcome of each decision point in a program.

Control Flow Graphing: A technique (using a dynamic analysis tool) to `generate the graphical representation of the sequence in which operations are performed during the execution of a program.

Basis Path Testing: This is a white box control structure testing technique that enables the definition of “basis set” of execution paths. Test cases derived to exercise the “basis set” ensure that every statement in the program is executed at least once during testing.

Condition Testing: This is a white box control structure testing technique that exercises the testing of each logical condition contained in a program.

Data Flow Testing: This is a white box control structure testing technique that aims at generating test cases to satisfy the execution control of program depending upon the data values and sequences of operation.

Black Box Testing Techniques

Back-to-back testing: Testing in which two or more variants of a program are executed with the same inputs, the outputs are compared and errors analyzed in case of discrepancies.

Big Bang Testing: A type of integration testing in which software components of an application are combined all at once into an overall system.

Bottom-up Testing: A type of integration testing that begins with construction and testing of atomic modules (components at the lowest level in the application structure) and moves up to integrate and test the entire application.

Top-down Testing: A type of integration testing that employs depth-first integration or breadth first integration to start with the controlling module of the application and integrate test the rest of the modules. This testing employs test drivers and stubs for testing and relies on Regression Testing to ensure testing completion.

Regression Testing: Regression Testing refers to the selective re-testing of a system or component to verify that modifications have not caused unintended effects and the system component still conforms to the specified requirements.

Stress Testing: Stress testing is a type of system testing that aims at confronting the system with varied levels of abnormal situations in terms of consumption of computer resources like quantity, frequency or volume.

Performance Testing: Performance testing is a type of system testing that aims to determine whether a system meets the performance requirements within the physical limitation of the computing environment (CPU process speed, memory capacity and number of users etc.) of the system.

Recovery Test: This System test examines how a system recovers from hardware failure, circuit errors, power blackouts and other problems caused by program errors within a pre-specified time.

Security Test: Security features are essential to protect data from unauthorized access and modifications. Security testing is a system testing technique that aims at verifying the protection mechanisms built into the system to protect it from improper penetration.

Fault Tolerance: The type of system testing that aims at testing the ability of the system or component to continue normal operation despite the presence of software or hardware faults.

Equivalence Class Partitioning: This is a black box testing method that divides the input domain of a program into classes of data from which test cases can be prepared. In a unit-testing situation, for field level validation criteria, the equivalence class represents a set of valid or invalid data types to check the validity of inputs.

Boundary Value Analysis: This Black box technique relies on the rule that a greater number of errors tend to occur at the boundaries of the input domain than in the “center”. This leads to developing test case with test criteria as boundary conditions wherein the appropriate inputs are chosen to study the system behavior.

No comments: