Updated: May 9, 2021
Types of software testing
Pre-requisite - Types of testing, how they are related?
Software testing is an integral and most critical part of the software development life cycle (SDLC). In today's age, there is software for every possible human need. It is important for software professionals to understand what are the different ways to test software.
Three software testing types -
Grey Box Testing
A proportionate combination of White Box and Black Box Testing, Grey Box Testing is performed with partial knowledge of the internal structure of the application and limited knowledge of the functionality of the system. Grey box testing involves access to internal coding like in white box Testing. Functional testing is done using Black-box testing techniques. As a hybrid method, it is found to be better when code is not developed completely and not all functionality is available to test. Hence grey box testing can start early in SDLC. It is most commonly used to search and identify defects due to improper code structure. It improves the testing coverage by concentrating on all layers of a complex system.
Advantages of Grey-Box Testing -
As Grey Box Testing is a blend of White Box and Black Box testing techniques, it provides the best of both worlds.
Grey Box tests are carried out based on the state-based models, functional specification, architecture, or UML Diagrams of the target system.
The testing process is performed from the point of view of a user instead of a developer, which helps uncover flaws that the developers might miss.
It allows testers to arrange tests based on the data of the target system, potentially uncovering more significant vulnerabilities with less effort and cost.
Disadvantages of Grey-Box Testing -
Grey Box Testing does not include complete White Box Testing due to inaccessible source code/binaries.
For a distributed system, it becomes difficult to associate defects using Grey Box Testing.
It does not provide testers access to any source code and they may miss certain critical vulnerabilities.
Testing all the potential inputs is time-consuming.
Learn Advance - How to write a Test Plan?