Testing is the process of identifying the correctness, completeness, security, and quality of software and it is very important in ensuring its quality. I will only scratch its surface as it is a subject for an entire book by itself.
There are two types of tests, depending on how we look at the software being tested:
In white-box testing, we look from inside the tested software having an intimate knowledge of the source code.
In black-box testing, we look from outside the tested software dealing only with inputs and outputs with no knowledge of the internal structure.
Code analysis is the analysis of software that is performed without actually running it, by looking only at its structure and/or ...