Modern applications that we build invariably have touch-points with its users through web-based and mobile platforms. Users interact with the software through these interfaces and the experiences those interfaces provide have a strong influence on the perceived quality of the software. The pace at which modern applications deploy new versions and features call for careful prioritization of testing effort and rapid execution through automation. Techniques and methods for testing of such applications will be the focus of this course. We will cover key concepts relevant to testing of web and mobile platforms, underlying techniques and the use of Selenium as a framework for automating testing of such applications. The learner will gain a solid foundation in web and mobile testing principles and the ability to use a testing framework to automate test execution.