This document provides an overview of fundamentals of software testing. It discusses why testing is necessary, defines key terms like errors, defects and failures. It describes the context in which software is used and how defects can impact systems. The seven principles of testing and fundamental test process involving planning, analysis, implementation and reporting are explained. Psychological aspects of testing and principles of ethical code are also covered at a high level.