Saturday, 25 August 2012

Some lesser known testing terminologies



I had created this post to discuss some important types/techniques covered under testing:

Testing Terminologies - Techterabyte
Testing Terminologies

Acceptance Testing
This is conducted to determine whether or not a system satisfies its acceptance criteria and it enable's the customer to determine whether or not to accept the system. It is performed by the customer.

Agile Testing
This emphasizes testing from the perspective of customers who will utilize the system. It is performed by the QA teams.

Ad-hoc Testing
This testing is performed without planning and documentation.In this the tester tries to 'break' the system by randomly trying the system's functionality. It is performed by the testing teams.

Alpha Testing
This is conducted at the developer's site. Usually it is performed by the end user.

API Testing
This is similar to unit testing in which it targets the code level. API Testing is different from unit testing as it is typically a QA task and not a developer task.

All-pairs Testing

It tests all possible discrete combinations of input parameters. It is performed by the testing teams.

Automated Testing
It uses automation testing tools to control the environment set-up, test execution and results reporting. It is performed by a computer and is used inside the testing teams.
Backward Compatibility Testing
This verifies the behavior of the developed software with older versions of the test environment. It is performed by testing teams.

Beta testing
This is the final testing done before releasing application for commercial purpose. It is typically done by end-users.

Big Bang Integration Testing
This technique integrates individual program modules only when everything is ready. It is performed by the testing teams.

Boundary Value Testing
In this tests are designed to include representatives of boundary values. It is performed by the QA testing teams.

Bottom Up Integration Testing

Module at the lowest level are developed first and remaining modules which go towards the 'main' program are integrated and tested one at a time. It is usually performed by the testing teams.

Breadth Testing
A test suite that exercises the full functionality of a product but does not test features in detail. It is performed by testing teams.

Black box Testing
A method of software testing that verifies the functionality of an application without having specific knowledge of the code/internal structure. Tests are based on requirements and functionality. It is performed by QA teams.


Code-driven Testing

This allow the execution of unit tests to determine whether various sections of the code are acting as expected under various circumstances. It is performed by the development teams.

Configuration Testing
This determines minimal and optimal configuration of hardware and software, and the effect of adding or modifying resources such as memory, disk drives and CPU. It is performed by the performance testing engineers.

Destructive Testing
Type of testing in which the tests are carried out to the specimen's failure, to understand a specimen's structural performance or material behaviour under different loads. It is performed by QA teams.

Dynamic Testing
This tests the dynamic behavior of code. It is typically performed by testing teams.

Domain Testing
This checks that the program accepts only valid input. It is white-box testing technique done by software development teams and occasionally by automation testing teams.


Endurance Testing
Type of testing which checks for memory leaks or other problems that may occur with prolonged execution. It is performed by performance engineers.

Equivalence Partitioning Testing
Technique that divides the input data of a software unit into partitions of data from which test cases can be derived. it is performed by the QA teams.

Fault injection Testing
Element of a comprehensive test strategy that enables the tester to concentrate on the manner in which the application under test is able to handle exceptions. It is performed by QA teams.

Functional Testing
Type of black box testing that bases its test cases on the specifications of the software component under test. It is performed by testing teams.

Fuzz Testing
Software testing technique that provides invalid, unexpected, or random data to the inputs of a program - a special area of mutation testing. This is performed by testing teams.


Gorilla Testing
This focuses on heavily testing of one particular module. It is performed by quality assurance teams.

Gray Box Testing
A combination of Black Box and White Box testing methodologies: testing a piece of software against its specification but using some knowledge of its internal workings. It can be performed by either development or testing teams

Glass box Testing
Same as white box testing, based on knowledge of the internal logic of an application’s code. It is performed by development teams.

GUI software Testing
The process of testing a product that uses a graphical user interface, to ensure it meets its written specifications. This is done by the testing teams.

Hybrid Integration Testing
Testing technique which combines top-down and bottom-up integration techniques.It is performed by the testing teams.

Integration Testing
The phase in software testing in which individual software modules are combined and tested as a group. It is usually conducted by testing teams.

Keyword-driven Testing
This is also called as table-driven testing or action-word testing for automated testing that separates the test creation process into two distinct stages: a Planning Stage and an Implementation Stage. It can be used by either manual or automation testing teams.

Load Testing
Testing technique that puts demand on a system or device and measures its response. It is conducted by the performance engineers.

Loop Testing 
White box testing technique that exercises program loops. It is performed by the development teams.

Model-Based Testing
The application of Model based design for designing and executing the necessary artifacts to perform software testing. It is usually performed by testing teams.

Mutation Testing
This involves modifying programs' source code or byte code in small ways in order to test sections of the code that are seldom or never accessed during normal tests execution. It is normally conducted by testers.

Modularity-driven Testing
Software testing technique which requires the creation of small, independent scripts that represent modules, sections, and functions of the application under test. It is performed by the testing team.

Non-functional Testing
Testing technique which focuses on testing of a software application for its non-functional requirements. Can be conducted by the performance engineers or by manual testing teams.

Negative Testing
Also known as "test to fail" - testing method where the tests' aim is showing that a component or system does not work. It is performed by manual or automation testers.

Operational Testing
Testing technique conducted to evaluate a system or component in its operational environment. It is performed by testing teams.

Pair Testing
Technique in which two team members work together at one keyboard to test the software application. One does the testing and the other analyzes or reviews the testing. This can be done between one Tester and Developer or Business Analyst or between two testers with both participants taking turns at driving the keyboard.

Passive Testing
This monitors the results of a running system without introducing any special test data. It is performed by the testing team.

Parallel Testing
Testing technique which has the purpose to ensure that a new application which has replaced its older version has been installed and is running correctly. It is conducted by the testing team.

Path Testing
Typical white box testing which has the goal to satisfy coverage criteria for each logical path through the program. It is performed by the development team.

Penetration Testing
Testing method which evaluates the security of a computer system or network by simulating an attack from a malicious source. Usually they are conducted by specialized penetration testing companies.

Performance Testing
Functional testing conducted to evaluate the compliance of a system or component with specified performance requirements. It is usually conducted by the performance engineer.

Regression Testing
This ensure that a change like a bug fix did not introduce new faults.The main reason behind this is to determine whether a change in one part of the software affects other parts of the software.It is performed by testing teams.

Recovery Testing
Testing technique which evaluates how well a system recovers from crashes, hardware failures, or other catastrophic problems. It is performed by the testing teams.

Scenario Testing
Testing activity that uses scenarios based on a hypothetical story to help a person think through a complex problem or system for a testing environment. It is performed by the testing teams.

Scalability Testing
Part of the battery of non-functional tests which tests a software application for measuring its capability to scale up - be it the user load supported, the number of transactions, the data volume etc. It is conducted by the performance engineer.

Static Testing
A form of software testing where the software isn't actually used it checks mainly for the sanity of the code, algorithm, or document. It is used by the developer who wrote the code.

Smoke Testing
This examines all the basic components of a software system to ensure that they work properly. It is conducted by the testing team, immediately after a software build is made .

Storage Testing
This verifies the program under test stores data files in the correct directories and that it reserves sufficient space to prevent unexpected termination resulting from lack of space. It is performed by the testing team.

Stress Testing
It is done by the performance engineer to evaluate system or component beyond the limits of the specified requirements.

Structural Testing
This is white box testing technique which takes into consideration the internal structure of a system or component and ensures that each program statement performs its intended function. It is performed by the software developers.

System Testing
The process of testing an integrated hardware and software system to verify that the system meets its specified requirements. It is conducted by the testing teams in both development and target environment.

Top Down Integration Testing
Testing technique that involves starting at the stop of a system hierarchy at the user interface and using stubs to test from the top down until the entire system has been implemented. It is conducted by the testing teams.


No comments:

Post a Comment