Testing in a software development life cycle can be described as the vital process that are required to check whether the software under development are free from bugs. Testing helps to identify the bugs present in the software product. Software testing helps to save the future errors that might arise during the operation of a product. Testing is a process that is done in different stages of software development. Some testing are done side by side along with the starting phase of software development period while some are done after completion of some stages in the development and some are done at the end of the development period.
As per the process performed in testing, testing can be categorized as black box testing and white box testing.
Black Box Testing:
Black Box Testing also known as behavioral testing, specification based testing, closed-box testing are the testing types where the tester doesn’t have an access to the codes in the program of the software. Black Box Testing mainly focus on the functionality of the system. The types of Black box testing are Functional Testing and Non-Functional Testing. Under these two categorized, there lies different types of testing.
Some of the common types of testing under Functional and Non-Functional Testing are:
- Unit Testing: It is a testing of individual software component. It is also known as program testing or module testing.
- Integration Testing: It is a type of testing done to the integrated modules of the program.
- System Testing: It is a type of testing performed to the overall system as per the requirements.
- Sanity Testing: Sanity testing is performed in order to determine the performance of the new version of software.
- Smoke Testing: Smoke testing is performed to ensure that the software doesn’t contain any defect during the build.
- Interface Testing: Interface testing is performed to ensure the interface of the software product meet the requirements.
- Regression Testing: Regression testing is done to ensure that the changes made in any codes don’t affect the functionality of the system.
- Beta/Acceptance Testing: The testing performed in the customer’s site is known as beta testing.
- Performance Testing: It is done to ensure the system meets the performance requirements.
- Load Testing: It is done to check the amount of load that the system can handle.
- Stress Testing: It is done to check when the system will fails when the system is running beyond the specification.
- Volume Testing: It is done to check the system response time and behavior by providing large volume of data to the system.
- Security Testing: It is done to check how secure the system is.
- Compatibility Testing: It is done to check the compatibility of the system to different environments.
- Install Testing: It is done to ensure if the system can be installed in various operating systems.
- Recovery Testing: It is done to check how the system recovers itself after crash.
- Reliability Testing: It is done to check how reliable the system is.
- Usability Testing: It is done to check the usability of the system for period of time.
There are different types of testing technique within black box testing methods. The common black box testing techniques are:
- Equivalence Partitioning
- Boundary Value Analysis
- Decision Table Testing
- State Transition Testing
- Error Guessing
White box Testing:
A type of testing where the tester knows about the internal structure and code of the software product is white box testing. It is also known as glass box testing, clear testing or structure based testing.
The most common type of white box testing are:
- Statement coverage
- Branch coverage
- Path coverage