Software testing is conducted to provide stakeholders with information about the quality of a product under testing. The book, which is a result of the two decades of teaching experience of the author, aims to present testing concepts and methods that can be used in practice. The text will help readers to learn how to find faults in software before it is made available to users. A judicious mix of software testing concepts, solved problems and real-life case studies makes the book ideal for a basic course in software testing. The book will be a useful resource for senior undergraduate/graduate students of engineering, academics, software practitioners and researchers.