This document is an introduction to software testing that discusses why testing is important and what activities are involved in testing. It notes that software is ubiquitous and critical in many applications, and failures can have huge financial and safety impacts. More testing is needed due to increased expectations for reliability, larger and more complex software, and new platforms like the web. The goal is to help reduce risks and costs from failures through systematic testing approaches.