Understanding Functional Testing with an example

Understanding Functional Testing with an example

As the name suggests, Functional testing refers to validating the functional flow or functional process of an application or system. Let us understand this with an example:

Consider a Healthcare website’s simple flow, which is appointment booking functionality.

Typically, it involves below steps.

  1. Patient logs in as a registered client or as a guest.

  2. Once logged, he will navigate to Appointment Booking section/button

  3. Chooses preferred clinic location from the drop down

  4. Chooses preferred date and time from the Available timeslot

  5. System redirects for Patient to fill a form

  6. Patient enters his Full Name, Date of Birth, Email and Contact Information

  7. Click on Book Appointment button

Let’s say, the Healthcare website added below additional flows:

  1. After choosing Clinic location, patient should see zip code search functionality

  2. Once Appointment is booked, the patient gets an email to fill in their complete Medical information.

So, once the code changes are made to the flow, responsibility of the QA is to ensure the entire functionality works as expected, along with the new changes.

Test Planning:

Before we get started testing, we need to Plan our testing and have a clear understanding of what are the Expected results for each step


  1. After choosing Clinic location, patient has to choose healthcare department

Expected Result- Only those departments that are available at the specified locations should be showing up.

  1. Chooses preferred clinic location from the drop down

Expected Result – Search to consider Patients Zip Code and to narrow down the locations based on the Zip code

QA has to document every step and its Expected Result before proceeding with the Test Execution

Test Case Creation:

As a QA, we need to start writing our test cases thinking about all the possible scenarios and flows. Below are few of the test cases for the above functionality:

  1. Appointment Booking as a registered patient with valid email

  2. ]Appointment Booking as a registered patient with Invalid email

  3. Appointment Booking as a guest with valid email

  4. ]Appointment Booking as a registered patient with Invalid email

Test Data Preparation:

Test Data is crucial for validating the functionality effectively. Test data with diverse range of inputs, such as choosing various healthcare departments from the list of values, clinic locations, invalid and valid email inputs- effects how the system considers these data points and changes the flow. It also helps in error detection.

Test Execution

Once we have the Test Cases and Data, we start executing manually by inputting the data and checking if the expected results match the actual results for all the steps listed.

Test Reporting:

We also document and report the entire flow step by step with Expected Results and Actual Results

In conclusion, Functional Testing objective is to ensure the application performs the intended functions and actions correctly without any errors. In case of data errors by the user, ensuring it prompts the user and informs him the necessary actions to take.

Hope this gives a basic information on Functional Testing.

Happy Testing!