Functional Testing: Everything You Should Know!