
White box testing (structural)
Greater focus on the code and algorithm itself - checks for code-efficiency.
<aside>
💡 Focuses on the program structure, rather than its function.
</aside>
- Each possible path is tested at least once
- The path of execution is noted on each test run so it can be compared with other runs
Black box testing (functional)
All we want is the RIGHT OUTPUT
Greater focus on all inputs and outputs - code-efficiency is not important
<aside>
💡 Conducted independently of the code used
</aside>
- Involves looking at the program spec and creating a set of test data that covers all the inputs and outputs and program functions
- We take valid, invalid and extreme input data, and compare the output to what we expect should happen, based on the design and requirements spec
- If the output is correct, the spec will pass
- Does the code do what it is supposed to do?
Alpha testing
<aside>
💡 Carried out by the software's in-house testing team.
</aside>
- Highlights errors and omissions in the system requirements
- Not stable