Software testing is the systematic process of evaluating an application to verify it meets requirements and functions as expected. It ensures code quality, reliability, and security prior to user release. The core process is split into manual testing (human execution) and automation testing (using scripts to speed up repetitive tasks