This course shows how to define software quality and how it is assessed through various testing techniques it is intended to acquaint the students with principles, techniques and best practices of software quality assurance concentrating on software testing and verification It will cover functional testing, structural testing, regression testing, test automation, specification based testing, code review.