There are various types of error handling techniques that offer ease of handling the errors encountered during testing process. Testing techniques are a great way of solving issues/bugs that a tester may often come across while carrying out testing process for a particular software.
Test techniques aims to take into account the different scenarios that may arise in case of both manual and automation testing. Thus testing techniques are devised in a way so as to ensure that all necessary facts are covered. Here is a list of all the testing techniques that helps to assess the possibilities of error occurrence and to take preventive measures.
People based testing:
In this a group of people are involved in the process of carrying out error handling tests for the application under test.
User Testing - This testing strategy may be adopted at any time during the process of software development. User testing may be done during development process at the client site or at a place chosen by the end user.
Alpha Testing -Alpha testing is a type of in-house testing which is conducted by the test team including some inside members.
Beta Testing -Beta testing comprises of testing by testers outside the organisation, primarily testers from the target market. Beta testing has two categories – design beta and marketing beta. The former is expected to assure that the product design is up to the mark and the latter intends to bring in a large customer base to convince that they must buy the product as and when it becomes available.
Subject matter expertise Testing - In this technique we aim to screen our product under the surveillance of an expert who has a deep knowledge about the product (or subject). The test and development team is open to any form of suggestions, opinions or criticisms.
Paired Testing - As the name suggests, a pair of testers sit together to find bugs in the system.
Coverage Based Testing:
Under this category, testing techniques are important from the point of view of core functionality of the application.
Function Testing - This simply aims to test each function, step by step. Function testing comprises of white box (unit testing) and black box testing. The former emphasises on working of each function properly whereas the latter focuses on features and various user commands.
Feature Integration Testing - This is to test different functions together to check if their performance is in sync with each other.
GUI testing -Test whether the interfaces, meant for user interaction work properly. Eg. Buttons, menu bars etc.
Domain Testing - Domain is basically a set of all possible values of a variable for a function. The tester will run test cases based on an analysis of the variable. Each function is implemented by executing the test values for the variables.
Equivalence class analysis - In this a test case is segregated into a set of values for a single variable. The values lie within a range, say from 1 to 100, if any single value encounters an error it means the rest of the values will follow the same league.
Boundary Testing - These values are either the uppermost or lowermost values of an equivalence class’s set of values. Testers aim to test these extreme values along with their boundary values, that is, the nearest smaller value of the extreme values. For instance, on a scale of 1 to 10, the nearest smallest values would be 0 and 9.
Logic Testing - As the name suggests, logic testing is to check whether the sequence of flow of a program is appropriate. Logic of a program is something like this – if a person has a savings of up to 1 lakh, then he is eligible for a certain kind of medical scheme. Basically, the logic of program lies in the fact that it must abide by conditions or constraints as mentioned by the client of the product.
State based Testing - A state is a prevailing position of the system as a result of some transition. In state based testing, the major objective of the tester is to keep a track of the transitions that move one state into another and carefully observe the results.
Path Testing - A path in a program is simply the steps that transfers control from one statement to another. The idea is to check the sequence of flow of the program to ascertain that the user input triggers the right type of actions and covers the necessary paths and sub-paths.
Statement and Branch Coverage Testing - The tester aims to check each statement coverage along with branching conditions.(loops, if else, while, do.. while). The program must evaluate to true and false conditions as specified in the program.
Combination Testing - Testers combine two or more variables to study interactions among them.
Configuration Coverage - Configuration testing is about testing compatibility between attached devices. For instance, an application is meant to work along with a camera attached to it, therefore, it is verified whether the application works as expected.