Types of Manual Testing
- White Box Testing
- Black Box Testing
- Gray Box Testing
- What is White Box Testing?
White Box Testing is a software testing technique where the tester has complete knowledge of the internal structure, code, and logic of the application. The testing is based on analyzing the internal workings of the software.
Key Points:
Focus: Verifies the flow of inputs and outputs, coding standards, and logical decisions within the software.
Purpose: To improve code quality, check internal security, and optimize design and functionality.
Techniques Used:
- Statement Coverage
- Branch Coverage
- Path Coverage
- Condition Coverage
- Loop Testing
White box testing is typically performed by developers or testers with programming knowledge and is usually done at unit, integration, and system levels.
- What is Black Box Testing?
Black Box Testing is a software testing method where the tester evaluates the functionality of the software without having any knowledge of its internal code, structure, or implementation.
Key Points:
Focus: It concentrates on inputs and expected outputs.
Purpose: To verify that the software behaves as expected under various conditions.
Techniques Used:
- Equivalence Partitioning
- Boundary Value Analysis
- Decision Table Testing
- State Transition Testing
Black box testing can be applied at various levels, such as unit, integration, system, and acceptance testing.
- What is Gray (Grey) Box Testing?
Grey Box Testing is a software testing technique that combines aspects of both Black Box and White Box Testing. The tester has partial knowledge of the internal workings of the software, such as access to some design documents, system architecture, or code snippets. This allows for more targeted and efficient testing while still approaching the system largely from a user perspective.
Key Points:
Focus: Ensures functionality while considering some internal details.
Purpose: To balance between black box and white box methods, enabling a more informed testing process.
When Used:
- To test systems with complex integrations.
- In situations where testers need partial knowledge of internal logic for efficiency.
It is commonly used in integration and penetration testing to identify vulnerabilities and errors effectively.