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
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 Manipulations (Add/Edit/Delete)
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
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?
Correct Order of Functionalities:
i) Launch Application (Gmail)
iii) Compose Email
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.