There are two high-level approaches to testing software:
1. White Box Testing (Looking Inside the Code)
White box testing (also referred to as Glass Box Testing or Clear Box Testing) focuses on how the software is built internally.
- The tester can see and interact with the source code
- Tests are based on logic, conditions, and paths in the code
- Programming knowledge is required
- Usually done by developers

Think of it like: Opening the hood of a car to inspect the engine while it’s running or looking at a watch with the face removed so you can see the gears turning to make the hands move.

2. Black Box Testing (Testing Like a User)
Black box testing (also referred to as Functional Testing or Behavioral Testing) focuses on what the software does, not how it’s built.
- The tester does not see the code
- Tests are based on requirements and expected behavior
- The tester provides inputs and checks outputs
- No programming knowledge required

Think of it like: Driving a car and checking if it brakes, turns, and accelerates correctly without having knowledge of how it works or looking at a watch with the face attached so you cannot see that there are gears turning underneath that make the hands move.
