Follow My Blog by Email

Tuesday, August 18, 2009

Software Testing Dictionary

Software Testing Dictionary
Acceptance Test
Formal tests (often performed by a customer) to determine whether or not a system has satisfied predetermined acceptance criteria. These tests are often used to enable the customer (either internal or external) to determine whether or not to accept a system.

Ad Hoc Testing
Testing carried out using no recognised test case design technique.

Alpha Testing
Testing of a software product or system conducted at the developer's site by the customer.

Assertion Testing
A dynamic analysis technique which inserts assertions about the relationship between program variables into the program code. The truth of the assertions is determined as the program executes.

Automated Testing
Software testing which is assisted with software technology that does not require operator (tester) input, analysis, or evaluation.

Beta Testing

Testing conducted at one or more customer sites by the end-user of a delivered software
product or system.

Big-Bang Testing
Integration testing where no incremental testing takes place prior to all the system's components being combined to form the system.

Black Box Testing
A testing method where the application under test is viewed as a black box and the internal behavior of the program is completely ignored. Testing occurs based upon the external specifications. Also known as behavioral testing, since only the external behaviors of the program are evaluated and analyzed.

Boundary Value Analysis (BVA)
BVA is different from equivalence partitioning in that it focuses on "corner cases" or values that are usually out of range as defined by the specification. This means that if function expects all values in range of negative 100 to positive 1000, test inputs would include negative 101 and positive 1001. BVA attempts to derive the value often used as a technique for stress, load or volume testing. This type of validation is usually performed after positive functional validation has completed (successfully) using requirements specifications and user documentation.
Breadth test. - A test suite that exercises the full scope of a system from a top-down perspective, but does not test any aspect in detail.


Cause Effect Graphing
Test data selection technique. The input and output domains are partitioned into classes and analysis is performed to determine which input classes cause which effect. A minimal set of inputs is chosen which will cover the entire effect set. A systematic method of generating test cases representing combinations of conditions. See: testing, functional

Clean Test
A test whose primary purpose is validation; that is, tests designed to demonstrate the software`s correct working.syn. positive test.

Code Walkthrough
A manual testing [error detection] technique where program [source code] logic [structure] is traced manually [mentally] by a group with a small set of test cases, while the state of program variables is manually monitored, to analyze the programmer's logic and assumptions.Contrast with code audit, code inspection, code review.

Compatibility Testing
The process of determining the ability of two or more systems to exchange information. In a situation where the developed software replaces an already working program, an investigation should be conducted to assess possible comparability problems between the new software and other programs or systems.

Condition Coverage
A test coverage criteria requiring enough test cases such that each condition in a decision takes on all possible outcomes at least once, and each point of entry to a program or subroutine is invoked at least once. Contrast with branch coverage, decision coverage, multiple condition coverage, path coverage, statement coverage.

Conformance Directed Testing
Testing that seeks to establish conformance to requirements or specification. CRUD Testing. Build CRUD matrix and test all object creation, reads, updates, and deletion.

Data Flow Testing

Testing in which test cases are designed based on variable usage within the code.

Database Testing

Check the integrity of database field values.

Depth Testing
A test case, that exercises some part of a system to a significant level of detail.

Decision Coverage
A test coverage criteria requiring enough test cases such that each decision has a true and false result at least once, and that each statement is executed at least once. Syn: branch coverage. Contrast with condition coverage, multiple condition coverage, path coverage, statement coverage.

Dirty Testing
Same as negative testing.

Dynamic Testing
Testing, based on specific test cases, by execution of the test object or running programs.

End-to-End testing

Similar to system testing; the 'macro' end of the test scale; involves testing of a complete application environment in a situation that mimics real-world use, such as interacting with a database, using network communications, or interacting with other hardware, applications, or systems if appropriate.

Error Guessing
A test case design technique where the experience of the tester is used to postulate what faults exist, and to design tests specially to expose them.

Error Seeding
The purposeful introduction of faults into a program to test effectiveness of a test suite or other quality assurance program.

Exception Testing
Identify error messages and exception handling processes an conditions that trigger them.

Exhaustive Testing
Executing the program with all possible combinations of values for program variables. Feasible only for small, simple programs.

Exploratory Testing
An interactive process of concurrent product exploration, test design, and test execution. The heart of exploratory testing can be stated simply: The outcome of this test influences the design of the next test.

Formal Testing
Testing conducted in accordance with test plans and procedures that have been reviewed and approved by a customer, user, or designated level of management.

Free Form Testing
Ad hoc or brainstorming using intuition to define test cases.

Functional testing
Application of test data derived from the specified functional requirements without regard to the final program structure. Also known as black-box testing.

Gray Box Testing

It is a tezting technique in which we consider both black and white box testing.


High-Level TestING
These tests involve testing whole, complete .


Integration Testing
Testing conducted after unit and feature testing. The intent is to expose faults in the interactions between software modules and functions. Either top-down or bottom-up approaches can be used. A bottom-up method is preferred, since it leads to earlier unit testing (step-level integration) This method is contrary to the big-band approach where all source modules are combined and tested in one step. The big-band approach to integration should be discouraged.

Lateral Testing
A test design technique based on lateral thinking principals, to identify faults.

Load Testing
Testing an application under heavy loads, such as testing of a web site under a range of loads to determine at what point the system's response time degrades or fails.

Load-Stability Testing
Test design to determine whether a Web application will remain serviceable over extended time span.

Load Isolation Testing
The workload for this type of test is designed to contain only the subset of test cases that caused the problem in previous testing.

Monkey Testing

Input are generated from probability distributions that reflect actual expected usage statistics -- e.g., from user profiles. There are different levels of IQ in smart monkey testing. In the simplest, each input is considered independent of the other inputs. That is, a given test requires an input vector with five components. In low IQ testing, these would be generated independently. In high IQ monkey testing, the correlation (e.g., the covariance) between these input distribution is taken into account. In all branches of smart monkey testing, the input is considered as a single event.

Maximum Simultaneous Connection testing
This is a test performed to determine the number of connections which the firewall or Web server is capable of handling.

Mutation testing
Mutation testing is reuired to ensure that the software doesn't fail. It is also good debugging mechanism. After the software works correctly. mutation testing can be done to simulate wrong inputs.
In mutation testing, program is modified or logic is changed. Different mutants are tested with same test cases. If the mutants fails, and the actual program works correctly test cases are considered as pass.

Multiple Condition Coverage
A test coverage criteria which requires enough test cases such that all possible combinations of condition outcomes in each decision, and all points of entry, are invoked at least once. Contrast with branch coverage, condition coverage, decision coverage, path coverage, statement coverage.

Negative test

A test whose primary purpose is falsification; that is tests designed to brake the software.

Orthogonal Array Testing
Mathematical technique to determine which variations of parameters need to be tested.


Parallel Testing
Testing a new or an alternate data processing system with the same source data that is used in another system. The other system is considered as the standard of comparison. Syn: parallel run.

Performance Testing

Testing conducted to evaluate the compliance of a system or component with specific performance requirements.

Prior Defect History Testing
Test cases are created or rerun for every defect found in prior tests of the system.

Recovery testing
Testing how well a system recovers from crashes, hardware failures, or other catastrophic problems.

Regression Testing
Testing that is performed after making a functional improvement or repair to the program. Its purpose is to determine if the change has regressed other aspects of the program.

Reference testing
A way of deriving expected outcomes by manually validating a set of actual outcomes. A less rigorous alternative to predicting expected outcomes in advance of test execution.

Reliability testing
Verify the probability of failure free operation of a computer program in a specified environment for a specified time.

Range Testing
For each input identifies the range over which the system behavior should be the same.

Robust test
A test, that compares a small amount of information, so that unexpected side effects are less likely to affect whether the test passed or fails.

Sanity Testing
Typically an initial testing effort to determine if a new software version is performing well enough to accept it for a major testing effort. For example, if the new software is often crashing systems, bogging down systems to a crawl, or destroying databases, the software may not be in a 'sane' enough condition to warrant further testing in its current state.

Sensitive Testing
A test, that compares a large amount of information, so that it is more likely to defect unexpected differences between the actual and expected outcomes of the test.

Specification Based Testing
A test, whose inputs are derived from a specification. State-based testing Testing with test cases developed by modeling the system under test as a state machine.

State Transition Testing
Technique in which the states of a system are fist identified and then test cases are written to test the triggers to cause a transition from one condition to another state

Static Testing
Source code analysis. Analysis of source code to expose potential defects.

Statistical Testing
A test case design technique in which a model is used of the statistical distribution of the input to construct representative test cases.

Storage Testing
Study how memory and space is used by the program, either in resident memory or on disk. If there are limits of these amounts, storage tests attempt to prove that the program will exceed them

Stress / Load / Volume Testing
Tests that provide a high degree of activity, either using boundary conditions as inputs or multiple copies of a program executing in parallel as examples.

Structural Testing
Testing that takes into account the internal mechanism [structure] of a system or component. Types include branch testing, path testing, statement testing. Testing to insure each program statement is made to execute during testing and that each program statement performs its intended function. Contrast with functional testing. Syn: white-box testing, glass-box testing, logic driven testing.

System Testing
Black-box type testing that is based on overall requirements specifications; covers all combined parts of a system.

Table Testing

Test access, security, and data integrity of table entries.

Unit Testing

Testing performed to isolate and expose faults and failures as soon as the source code is available, regardless of the external interfaces that may be required. Oftentimes, the detailed design and requirements documents are used as a basis to compare how and what the unit is able to perform. White and black-box testing methods are combined during unit testing.

Usability Testing
Testing for 'user-friendliness'. Clearly this is subjective, and will depend on the targeted end-user or customer.

Volume Testing
Testing where the system is subjected to large volumes of data.[BS7925-1]

White Box Testing
Testing is done under a structural testing strategy and require complete access to the object's structure that is, the source. Also knows as Glass Box Testing.


  1. Thats owsome man...i find it really helpful. Thanks a ton gaurav :-)

  2. Very well written..