The software development process has been described as a series of phases, procedures, and steps that result in the production of a software product. Embedded within the software development process are several other processes including testing. Testing itself is related to two other processes called verification and validation.
Validation is the process of evaluating a software system or component during, or at the end of, the development cycle in order to determine whether it satisfies specified requirements.
Validation is usually associated with traditional execution-based testing, that is, exercising the code with test cases. Verification is the process of evaluating a software system or component to determine whether the products of a given development phase satisfy the conditions
imposed at the start of that phase
Verification is usually associated with activities such as inspections and reviews of software deliverables. Testing itself has been defined in several ways. Two definitions are shown below. Testing is generally described as a group of procedures carried out to evaluate
some aspect of a piece of software. Testing can be described as a process used for revealing defects in software, and for establishing that the software has attained a specified degree of quality with respect to selected attributes..