This document provides an introduction to fundamentals of software testing. It explains why testing is necessary by describing examples of how software defects can cause harm, such as miscalculating pesticide quantities that could endanger health and the environment. Testing is part of quality assurance and finds defects to improve quality and reduce failures. The document defines key testing terms and discusses how human errors during software development, use or maintenance can introduce defects, and how rigorous testing is needed to identify these defects and increase confidence in software quality.