Software testing is the process of assessing and confirming that a software application or product performs as intended. It entails the human or automatic execution of software/system components in order to evaluate one or more interesting properties. Software testing's goal is to find flaws, gaps, or unmet requirements compared to the requirements as written.