All the user requirements as specified by the business should be well tested as a part of functional testing. Functional Testing demands Testing in the environment similar to that of client’s requirement. All the boundary conditions, negative scenario are accounted for. Each functionality of the application should be working well with minimal probability of any bug.
The basic requirement which is expected out of a well running application should be tested. The UI should be user friendly and easy to navigate. Error messages should pop-up in case any unwanted entry is entered.
A bug free application with the good user interface is the basic objective of Functional Testing.
In General Functional testing follows the below process-
Understanding the Requirement − The foremost step is to learn the requirements from business to make sure the end result is satisfactory from customer and business point of view. The requirements can be documented and are provided in the form of by conducting meetings with stakeholders, Business Analysts, System architects. Requirement Traceability Matrix is formed during this phase.
Planning − In this stage, Estimation of cost, planning the resources, test strategy is determined. Critical factors such as Risk Analysis/Risk Management are also discussed. Scope of the project and the identification of environment is part of this phase.
Test Case Planning − Requirements are generally in the form of User Stories. In this phase, we need to identify the scenarios required for testing and design the test cases accordingly. Apart from the mentioned scenarios, we also need to develop the negative test cases where the application can fail.
Identify the Data sets − As per the created scenario, Data sets are required against each test case. Those data sets created should be such that, they must be working fine in the environment set up for execution.
Environment set up − Mostly a dedicated environment is setup for creating a desirable test environment. The team provides an environment which is similar to the production environment.
Test Case Execution − Executing the planned test cases comes under this phase. Logging the defect wherever the actual result is not matched with the expected result. Following up with the Defects owners to get the defect to closure and then re-running the test cases ensures the application to be bug-free. The results of the test cases and the defect are logged in the RTM.
Test Cycle Closure − To ensure that the loopholes encountered in the present testing cycle is not repeated in future, the testing artifacts are well analyzed. Documentation of learnings is prepared and qualitative reporting are submitted to customer. Number of defects logged, age of the defect, and severity of defects are analyzed and retrospected to avoid in future releases. Test metrics are prepared on the basis of test coverage, cost, time and quality of the application.