Software testing is any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results. It is a verification and validation process.
Software testing can be classified on the basis of
1. Methodologies 2. Conventions 3. Levels 4. Techniques 5. Intent
(A) Methodology wise
1) Manual Testing is a process in which all the phases of STLC like Test Planning, Test Development, Test Execution, Result Analysis, Bug Tracking and Reporting are accomplished till successful completion by manual means i.e. with human efforts.
2) Automation Testing is a process in which majority of drawbacks of manual testing get addressed properly and it provides speed and accuracy to the existing testing phase. It must be remembered that automation testing is not a replacement for manual testing. It is in fact a continuation of manual testing aimed to provide speed and accuracy to the testing effort.
Automated testing primarily uses an automation tool, which is assistance to the test engineers. An automation tool works on the basis of instructions and information. Automated tools are broadly of three Types like 1) Functional Tools 2) Management Tools 3) Performance Tools
(B) Convention wise
1) Unconventional Testing : It is a sort of testing in which quality assurance engineer checks each and every outcome right from the initial phase of the SDLC.
2) Conventional Testing : It is a sort of testing in which the testing engineer tests the application in the testing phase of SDLC.
(C) Level wise
1) Unit Level Testing refers to the testing carried out on small software units. This is a type of white box testing generally performed by the code developers.
2) Module level testing refers to the testing carried out on a module. This is a type of black box testing generally performed by the test engineers.
3) Integration level Testing : During the process of development, many modules are developed along with their respective interfaces, which are used for integrating these modules. While integration, the developers check & ensure the perfect working of all such interfaces. This falls under the category of white box testing.
4) System level Testing : Whatever testing performed on the application after its deployment in its actual environment is termed as system level testing. This falls under the category of black box testing. The testing engineers generally perform system level testing. System level testing generally includes testing like
(D) Technique wise
1) Black box Testing : Involves testing of functional part of the application. This is generally conducted by the testing engineers. For conducting black box testing, testers need not have any formal structural knowledge of the code.
2) White box Testing : This is known as glass box testing or sometimes clear box testing. This involves testing on the structural part of the application. For performing white box testing, in-depth knowledge of the code is essential, hence generally the code developers do this type of testing.
3) Gray box Testing : Involves testing of functional part as well as the structural part of the application. For performing gray box testing, knowledge of the code is required, hence experienced testers having good knowledge of code development are best suited for performing gray box testing
(E) Intent wise
1) Acceptance Testing : It is the testing which involves running a suite of tests on the completed system.
2) Performance Testing : It is the testing which is performed, to ascertain how the components of a system are performing, given a particular situation.The primary goal of performance testing includes establishing the benchmark behavior of the system.
3) Load Testing : Testing the system by constantly and steadily increasing the load on the system till the time it reaches the threshold limit.
4) Regression Testing : It is retesting the unchanged parts of the application. Test cases are re-executed in order to check whether previous functionality of application is working fine and new changes have not introduced any new bugs.
Software testing can be classified on the basis of
1. Methodologies 2. Conventions 3. Levels 4. Techniques 5. Intent
(A) Methodology wise
1) Manual Testing is a process in which all the phases of STLC like Test Planning, Test Development, Test Execution, Result Analysis, Bug Tracking and Reporting are accomplished till successful completion by manual means i.e. with human efforts.
2) Automation Testing is a process in which majority of drawbacks of manual testing get addressed properly and it provides speed and accuracy to the existing testing phase. It must be remembered that automation testing is not a replacement for manual testing. It is in fact a continuation of manual testing aimed to provide speed and accuracy to the testing effort.
Automated testing primarily uses an automation tool, which is assistance to the test engineers. An automation tool works on the basis of instructions and information. Automated tools are broadly of three Types like 1) Functional Tools 2) Management Tools 3) Performance Tools
(B) Convention wise
1) Unconventional Testing : It is a sort of testing in which quality assurance engineer checks each and every outcome right from the initial phase of the SDLC.
2) Conventional Testing : It is a sort of testing in which the testing engineer tests the application in the testing phase of SDLC.
(C) Level wise
1) Unit Level Testing refers to the testing carried out on small software units. This is a type of white box testing generally performed by the code developers.
2) Module level testing refers to the testing carried out on a module. This is a type of black box testing generally performed by the test engineers.
3) Integration level Testing : During the process of development, many modules are developed along with their respective interfaces, which are used for integrating these modules. While integration, the developers check & ensure the perfect working of all such interfaces. This falls under the category of white box testing.
4) System level Testing : Whatever testing performed on the application after its deployment in its actual environment is termed as system level testing. This falls under the category of black box testing. The testing engineers generally perform system level testing. System level testing generally includes testing like
- System Integration Testing
- Load Testing
- Performance Testing
- Stress Testing
(D) Technique wise
1) Black box Testing : Involves testing of functional part of the application. This is generally conducted by the testing engineers. For conducting black box testing, testers need not have any formal structural knowledge of the code.
2) White box Testing : This is known as glass box testing or sometimes clear box testing. This involves testing on the structural part of the application. For performing white box testing, in-depth knowledge of the code is essential, hence generally the code developers do this type of testing.
3) Gray box Testing : Involves testing of functional part as well as the structural part of the application. For performing gray box testing, knowledge of the code is required, hence experienced testers having good knowledge of code development are best suited for performing gray box testing
(E) Intent wise
1) Acceptance Testing : It is the testing which involves running a suite of tests on the completed system.
2) Performance Testing : It is the testing which is performed, to ascertain how the components of a system are performing, given a particular situation.The primary goal of performance testing includes establishing the benchmark behavior of the system.
3) Load Testing : Testing the system by constantly and steadily increasing the load on the system till the time it reaches the threshold limit.
4) Regression Testing : It is retesting the unchanged parts of the application. Test cases are re-executed in order to check whether previous functionality of application is working fine and new changes have not introduced any new bugs.