The primary goal of software testing is not to eliminate all possible errors, but to reduce the residual risk after testing the software to an acceptable level. Testing is primarily an exercise in "Risk Mitigation" than an exercise to assure software quality. Testing techniques involve verification and validation techniques, use of formal methodologies and automation tools. This book presents the know-how in a simple and effective manner.