Before we start digging deeper into testing our application and the respective testing tools, it would be useful if we take a look at why we should write test cases, and what advantages we have in comparison to relying on manual testing.
How many times has it happened where you have put in hours of effort to develop an application, and when it's about to go into production, or worse, it is launched in production, you discover a blocking issue? You and your team have done exhaustive testing; but still, how did this bug skip through?
You do the retrospection and identify that there was one scenario that was never part of your testing, and that's what caused this problem. Now, you add that scenario into your test cases but, six months down the line, the cycle repeats.