
- Software Testing - Home
- Software Testing - Overview
- Software Testing - Defect Management
- Software Testing - Life Cycle
- Software Testing - Bug Life Cycle
- Software Testing - Myths
- Software Testing - QA, QC & Testing
- Software Testing - Environment
- Software Testing - Strategies
- Software Testing - Steps
- Software Testing - Test Conditions
- Software Testing - Test Analysis
- Software Testing - ISO Standards
- Software Testing - Types
- Software Testing - Techniques
- Software Testing - Methods
- Software Testing - Metrics
- Software Testing - Levels
- Software Testing - Estimation Techniques
- Software Testing - 7 Principles
- Software Testing - Severity & Priority
- Software Testing - Defect Density
Types of Software Testing
Software testing is performed with the aim to achieve the required quality, and reliability of the software. The term software testing is of immense importance not only for the testers but also for the developers in the team. There are several categories of testing which can be applicable to the software.
Principles of Software Testing
The different principles of software testing are listed below −
- All the test cases should be able to satisfy the end users specifications.
- Testing is performed to detect defects in the software.
- Exhaustive testing is not possible.
- Defect clustering which means maximum count of defects are detected from a small number of modules.
- Pesticide Paradox which means that the same number of test cases if used repeatedly does not detect new defects in the software.
- The testing activities should be kicked off from the early stages of the software development life cycle (SDLC).
- Testing depends on the context.
- Testing is not only concerned with finding defects but also to confirm that the software has been built as per the user requirements.
Types of Software Testing
The different types of software testing are listed below −
1. Manual Testing
It is done to verify the software using its functionalities, and features. It is performed with a defined group of test cases which are created, and executed with the human intervention. It helps to give quick, and visual feedback on the dynamically changing elements of the software. It is less expensive, as it does not require much of the skilled resources. It can be done without any coding or programming knowledge. It is usually useful in scenarios where accidental updates need to be made on the software.
2. Automation Testing
It is done by creating test scripts with the help of the automation tools. It is mostly useful for manual test cases which are lengthy, and contain redundant test steps. It does not require manual intervention till the test results are generated. Thus it enhances the productivity of the testing process. This type of testing is more reliable as there are no chances of human error. It improves the test coverage, and detects more issues in the software.
Types of Software Manual Testing
The different types of software manual testing are listed below −
1. White Box Testing
This technique is used for the verification of the interior structure, code, logic, flow of the software. It is performed by testers who have full understanding of the source code, and have technical expertise. It provides an extensive form of testing, and works towards the code optimization by getting rid of the redundant lines of code. This type of testing detects defects from the early stages of the SDLC. It identifies the bugs which remain unidentified by using other testing techniques.
2. Black Box Testing
This technique is used by the testers who do not have the knowledge of interior working of the software and works completely to test whether its features and functionalities are as per the user requirements. It can be performed by the testers having no programming knowledge. It is mostly suitable for testing the large systems, and carried out from the customers viewpoint. This type of testing also helps in detecting discrepancies in the functional requirements.
3. Grey Box Testing
This technique combines the principles of both the black box testing and the white box testing approaches. The testers have partial knowledge of the interiors of the code. The test cases are created with complete access to the internal data structures and code. It is carried from the customers view point and enhances the overall quality of the software.
Types of Software Black Box Testing
The different types of software black box testing are listed below −
1. Functional Testing
It is done to verify whether the softwares features, and functionalities are working correctly as per the requirements shared by the end users. It helps to reduce the probability of finding defects in the production, and to enhance the quality of the software.
2. Non-Functional Testing
It is done to verify all the non-functional requirements, features, and aspects of the software. It identifies all the performance issues in the software. It is not a time consuming process and enhances the user experience with the software. It also verifies the security features, and tests whether the software is protected from unauthorized access.
Types of Software Functional Testing
The different types of software functional testing are listed below −
- Unit Testing − It is performed by the developers themselves to check whether the code they developed is working correctly.
- Integration Testing − It is performed after the unit testing to check whether there exists any interface or integration issues while the various components of the software have been combined.
- System Testing − It is performed after the integration testing to check whether all the functionalities and performance of the software post all its modules have been integrated. It verifies if the software is working correctly as per the requirements and successfully solves the end users needs.
Types of Software Integration Testing
The different types of software integration testing are listed below −
- Incremental Testing − It is performed by making use of the drivers and stubs to test the various modules of the software. It comprises the top down, and bottom up testing techniques.
- Non-Incremental Testing − It is similar to the big bang testing procedure where the various modules are combined at a time, and then the complete software is verified.
Types of Software Non-functional Testing
The different types of software non-functional testing are listed below −
- Performance Testing − It is done to evaluate the performance, quality, ability, robustness, sensitivity, reactivity, scalability etc of a software. The different types of this type of testing includes load testing, stress testing, stability, and scalability testing.
- Usability Testing − It is done from the customers viewpoint to evaluate if the software is usable.
- Compatibility Testing − It is a concept in which the compatibility of the software is validated against different platforms. It is only done once the software has become relatively stable.
Other Forms of Software Testing
The other forms of software testing are listed below −
- Smoke Testing
- Sanity Testing
- Regression Testing
- Acceptance Testing
- Exploratory testing / Adhoc Testing
- Security Testing
- Globalization Testing
- Alpha Testing
- Beta Testing
Advantages of Software Testing
The advantages of software testing are listed below −
- The testing improves the quality, security, and reliability of the software.
- The testing detects, and fixes defects in the initial stages of the SDLC.
- The testing improves overall customer satisfaction, confidence, and trust on the software.
- The testing reduces the maintenance cost of the software.
- The testing is not a very expensive process.
- The testing helps to achieve a low failure rate, and reduces the probability of detecting defects in the production testing speeds up the development process.
Disadvantages of Software Testing
The disadvantages of software testing are listed below −
- The testing process can be time consuming, and sometimes costly.
- The testing process can slow down the development process.
- There is no guarantee that all the defects will be detected during the testing activities.
- The testing procedure can be difficult to execute for complicated systems.
- There is a chance of human error during the testing activities.
Conclusion
This concludes our comprehensive take on the tutorial on Software Testing Types of Testing. Weve started with describing what are the different principles of software testing, what are the different types of software testing, what are the different types of software manual testing, what are the different types of software black box testing, what are the different types of software functional testing, what are the different types of software integration testing, what are the different types of software non-functional testing, what are the other forms of software testing, what are the advantages of software testing, and what are the disadvantages of software testing. This equips you with in-depth knowledge of Software Testing - Types of Testing. It is wise to keep practicing what youve learned and exploring others relevant to Software Testing to deepen your understanding and expand your horizons.