Overview of Functional Testing

Overview of Functional Testing

What is Functional Testing?

Verifying a Component or System’s Functionality with respect to Functional Requirements.

What is Non-Functional Testing

Verifying Quality attributes of the System (AUT) with respect to Non-Functional Requirements.

Functional and System Testing

Functional Testing is a Test Type and System Testing is a Test Level.

Functional and Non-Functional tests can be applied at System Testing Level.

Functional Testing is a part of System Testing, but not only part of System Testing also part of Unit Testing, Integration Testing and Acceptance testing)

Functional Test Tools (UFT, Selenium, RFT, SilkTest etc…) supports Functional & System Testing, Functional & Acceptance Testing.

Functional Test Tools doesn’t support Functional & Unit Testing, Functional & Integration Testing.

Functional Testing Checklist

1) Input Domain Coverage

Verifying weather the System (Application Under test) is accepting valid inputs or not? And preventing invalid inputs or not


Phone Number Field is there, it has to accept 10 digit numeric values as per Requirements,

If user enters 10 digit numeric value then it has to accept,

If user enters below or above 10 digits numeric value the it has show meaningful error message.

if user enters alpha bytes then it has show error message.
Data has three factors

a) Type (Type of the Data, ex: Numeric, Alpha bytes etc…)

b) Size (Size of the Data, ex: 10 digit phone number, 4 digit customer id etc…)

c) Range (Range of the Data, for 100000 insurance policy premium is 2000 if the policy holder age between 25 to 30 Years, if age is between 30 to 35 years then premium amount is 2500 etc…)
2) Output Domain Coverage

Verifying weather the System is providing correct Outputs or not?, based on input and process.

Input + Process = Output / Outcome


Operation is “Addition”

Input data 5, 3

Output: 8

Example 2:

Operation is “Login to Application”

Input: User name = abcde, Password = xyz123,

Outcome: Application Home Page

3) Database Testing

Database Testing is subset of Functional Testing, and it is not only part of Functional Testing also part of Performance Testing.

Using SQL Commands we communicate with any database and conduct Database Testing.

Data Integrity
Data Manipulations (Add/Edit/Delete)
Data Comparisons
Data Retrievals
Data back-up and recovery operations etc…

4) Error Handling

Verifying how the system is handling user unathurized/invalid operations and providing error and help messages.

System (AUT-Application Under Test) has to prevent invalid operations and provide meaningful messages

For example,

After Entering Username and Password, if system shows “Invalid User name/Password” message then end user can understand and correct it.

After Entering Username and Password, if system shows “Please Enter User name” then end user may confuse.

5) Order of Functionalities

Verifying weather the System is providing correct order of functionalities or not?


Compose Email

Correct Order of Functionalities:

i) Launch Application (Gmail)

ii) Login

iii) Compose Email

iv) Logout

v) Close Application/Browser

Suppose if the Application provides,

Email page after Launching Application,

If try to compose Email then asking Login (Username and password).

It is not the correct order of functionalities.

Follow me on social media: