In functional testing, each and every aspect of code is tested to make sure that it is working correctly. In simple terms, functional testing considers the system's requirements and checks whether the system is fulfilling them. Anything that is done differently, or not done at all, will be listed as an anomaly. Consequently, functional testing is essential for looking at code execution and making sure that it is done right.
When performing functional testing, the process is as follows:
First, data is input
Next, it is determined what the output is supposed to be
The test is then run with the relevant input
Finally, the output results are compared with the expected results
In the end, if the results match, then it is clear that the system is working perfectly, but if they are different, then this means that bugs have been found.
In UI testing, the system is checked for bugs and anomalies with the help of a graphical user interface (GUI). UI testing is done in a hierarchical order, moving from tester's frontend issues to backend issues, and checking everything along the way.
UI testing can be done accurately with the help of the following approaches:
Manual-based testing: This approach is based on the knowledge about the domain and the application. Unless the tester knows what to test, it cannot be executed properly.
Capture and replay: This method depends on having a user go through the system and capture all activity. All of these activities are then replayed to make sure that the user did not face any anomalies in the system.
Model-based testing: In this method, all the events of the GUI are executed at least once.