The purpose of testing can be quality assurance, verification, and validation or reliability estimation. It is a tradeoff between budget, time and quality. Software Quality is the central concern of software engineering. Testing is the single most widely used approach to ensuring software quality.