Software testing is the process to evaluate a software item to detect differences between a given input and expected output. It should be started during development process as you will reduce the possibilities of returning to development phase due to unexpected errors/missing functionalities.
It meets two steps:
Verification: Software has the expected behavior.
Validation: Meets client requirements..