Software testing is regarded as a crucial part of the software development lifecycle where the testing team is responsible in finding errors and mistakes done by the developers in the software development process. Software testing is the process of verifying the software developed by the developing team meets the requirement and criteria according to the client. Software testing is performed in various ways as per the needs of the owner and as per the functionality of the software. There is various process of testing software as per the nature of the software developed. The features of the software under development define the methodologies to be used and process to be followed while testing. Any software under development is tested on two ways from functional and non-functional requirements. Functional testing is done under functional requirements and non-functional testing is done under non-functional requirements.
Functional and non-functional testing has various types within them as well. Different types of testing are kept under functional and non-functional testing as per their behavior of testing and characteristics they have.
Some of the Functional Testing is listed below.
- Unit Testing
- Component Testing
- Smoke Testing
- Integration Testing
- Regression Testing
- Sanity Testing
- System Testing
- User Acceptance Testing
Some of the Non-functional testing is listed below.
- Performance Testing
- Compatibility Testing
- Maintainability Testing
- Security Testing
- Efficiency Testing
- Portability Testing
- Reliability Testing
- Load Testing
- Failover Testing
- Usability Testing
- Stress Testing
- Scalability Testing
- Volume Testing
- Disaster Recovery Testing
- Compliance Testing
- Baseline Testing
- Endurance Testing
- Documentation Testing
- Recovery Testing
- Internationalization Testing
- Localization Testing
As per the process how the software testing is done, testing can be categorized in two different groups as black box testing and white box testing.
Black box testing is a type of testing where testing activities are performed without knowing the internal structure and codes of a program under test. Testers don’t know about the internal code of a program or software in black box testing. Black box testing is normally done by software testers. Black box testing is also called specification based testing. Most common black box testing techniques includes:
- Decision table testing: This testing test the behavior of system with combination of different inputs.
- Equivalence Partitioning: This testing technique divides the input data into valid equivalence partitions and checks the system.
- Boundary Value Analysis: This testing technique tests the system with the value on the extreme ends.
- State Transition Testing: This testing techniques tests the system by executing valid and invalid state transition
- Error Guessing: This testing technique uses the experience of the tester by guessing the error.
White box testing is a type of testing where the internal structure and codes are known to the tester. Testers are given access to the codes of the program under development to test the whole system. White box testing is normally done by software developers. It is also called glass box or clear box testing or structure based testing. Most common white box testing techniques includes:
- Statement coverage: This testing technique executes all the statements of the codes at least once. This is used to calculate and measure the amount of statements in code.
- Decision coverage: This testing technique is done to ensure the possible branch from one decision to execute.
- Path testing: This testing technique is used to test all the possible paths that are executable in a source code.
There is another testing type as well known as gray box testing which combines the black box testing and white box testing techniques for its process.
List of top IT Certification