This document provides an introduction to fundamentals of software testing. It discusses why testing is important by describing how software defects can cause problems ranging from minor issues to safety risks. It defines key terms like bugs, defects, errors and failures. It explains that testing is needed to find these defects in order to promote quality. It also introduces principles of testing and discusses how testing fits into the software development life cycle and helps measure quality.