25/04/2008

Testing Definations

Testing Deffinitions

Smoke Testing(Cursory Testing): It is a type of testing in which one can perform an initial, non-detailed testing on an application preferably in short span of time to check if all the desired objects/ features/ windows are basically available in order to perform detailed testing on them

Sanity Testing: It is a type of testing that is carried on initially as non-detailed testing in a short span of time, just to make sure that the application is proper ( to see all the entities are available ) in order to carryon detailed testing. Hence Sanity testing is same as Smoke testing.

Regression Testing: It is defined as a type of testing in which an already tested functionality is tested again and again in order to make sure that the functionality is defect free (under bug regression testing) as well as to ensure the existing right functionality is affected or not affected due to the addition of new functionality to it (under functional regression testing).

Regression testing is of two types:

Bug Regression Testing: It is a type of regression testing in which a specific functionality is repeatedly tested to see if there are any bugs as a result of the rectification of old bugs. Since focus is on bugs, it is known as bug regression testing.

Functional Regression Testing: It is another type of regression testing in which the existing right functionality is tested again and again whenever a change is added to it to check if the existing right functionality has any effect due to the new change.

Re-Testing: It is defined as a type of testing in which an already tested functionality is tested again and again to make sure that the defect is tested again and again to make sure that the defect is reproducible if at all any, to rule out environmental issues and to ensure the robustness(strength) of the functionality.

Note: The difference between Regression and Re-testing is that, the regression can’t be done in the first release and it is possible from the second release onwards whereas re-testing is possible in all the releases including first release.

Static Testing: It is a type of testing in which one can perform testing on an application without execution of application.
Example: GUI Testing, document testing, etc.

Dynamic Testing: It is a type of testing in which one can perform testing on an application while application is executed.
Example: Functionality testing.

Alpha Testing: It is a type of user acceptance testing, that is conducted on the product as a final testing within the development company, just before it is delivered to the customer. Alpha testing is done by either test engineer or the customer representative.

Beta Testing: It is a type of user acceptance testing, that is conducted on the product as a first time testing within the customer’s environment, when the product is delivered to the customer and is deployed in to customers environment and is being used by the real time users. Beta testing is done by the real time user.

The advantage of alpha testing is that if at all any defects are encountered; they can be rectified immediately as the product is not yet developed. The disadvantage of beta testing is that the immediate rectification is not possible and it is always time consuming as it needs to follow formal process.

Installation Testing (Deployment Testing): It is a type of testing, in which once the module is delivered to the testing department it will be deployed into the testing environment as per the guidelines defined by the deployment document. The developer checks if the deployment is done successfully as per the guidelines.

Compatibility Testing: It is a type of testing in which mostly the products are tested on various environments which are created and simulated with the combinations of several environmental components like clients, application servers, data base servers, operating systems etc., In order to check if these products are compatible for these environments, so that it addresses the business needs of various enterprises.

Usability Testing: It is a type of testing in which the test engineer checks the “user friendliness” factor of an application apart from the functionality of it.

Exploratory Testing: It is a type of testing in which, the test engineer doesn’t have any functional knowledge initially, and through the exploration on the application he will come to know the functionality and then performs testing on it simultaneously. Hence in this type of testing knowing and testing are performed simultaneously. Since exploration is associated with testing it is known as exploratory testing.

Mutation Testing: It is a type of white box testing in which an initial version of the program is modified into multiple versions while each changed version is known as ‘Mutant’. As each mutant is generated the corresponding text data is created to test the new mutant is perfect as per the requirement. Since mutants are used in this testing, it is known as mutation testing.

Monkey Testing: It is a type of testing in which one perform abnormal, beyond capacity and more volumes of data related operations intentionally on the application to check if it is stable in spite of users abnormal behavior.

End-to-End Testing (Environment Testing): It is a type of testing in which a full fledged complete transaction is performed on one application in order to check if all the environmental components are operationally available to complete the transaction successfully.

Forced Error Testing: It is a type of testing in which, application is tested with invalid inputs in order to check if the error message displayed by it is appropriate or not.

Scalability Testing:
It is a type of testing in which one can check and ensure that the application can be scaled or enhanced with respect to the new functionality addition or the external factors change without demanding re-design and the environments change.

Reliability Testing: It is a type of testing in which, one perform abnormal and normal activities in combination on the application preferably for longer duration in order to check if the stability of application is retained in spite of abnormality for a longer duration. This testing is also known as Soak Testing.

Security Testing: It is a type of testing in which, the vital information of the application/ the application itself is tested in such a way that, if it is accessed by the valid users, protected from invalid users and destructive agents like virus. In other words security testing ensures the protection of vital information from illegal access and the undesirable transactions.

Accessibility Testing: Accessibility is nothing but extendibility of the user friendliness to the disable/handicapped users apart from the normal users. Precisely accessibility is the extendibility of the usability. Accessibility testing is a type of testing in which the test engineer checks the application if the accessibility criteria is justified in it.

Heuristic Testing: It is a type of testing in which, the test engineer depends upon his past experience cover the hidden areas where the possibility of defects are more apart from the normal testing that he performs that is driven by the test case document.

Ad hoc Testing: It is a type of testing in which, the test engineer perform random, an informal testing on an application without using test case document. Unlike formal testing in order to cover the uncovered area with the help of test case document in the form of testing.

Testing done without any formal testing technique is called ad hoc testing.

No comments: