What is Functional Testing?
Let us assume that a client is interested to develop a Web Based Email Application (examples: Gmail, Yahoo Mail, Hotmail). Before developing the project, a Feasibility Study is conducted by the client to find out whether they will be able to create a web based email application that covers all the functionalities and their expectations. If everything goes well with Feasibility Study, then System Requirement Specification (SRS) Document and Functional Requirement (FRS) Document are created. SRS explains about the total behavior of the system in a high level (hardware, software, functional, non-functional requirements) and FRS is focused on functional requirement (operations done by each screen, fields to be present, data to be entered) etc.
For testing the application, TestPlan and TestCases documents are created based on SRS and FRS and testers execute test scenarios present in test cases, find the defects and enter the defects in Testing Tools and follow up with relevant teams until the defect is closed.
Note: Closing of a defect depends upon the priority of the issue.
To develop, client needs a domain, a hosting server, a database, mail server. For testing the software, they buy tools like HP’s Quality Center (QC), Quick Test Professional (QTP), and Load Runner etc. The client hires several consultants to complete the web based email application project.
Note: The application life cycle management includes the following phases. The following diagram has been sourced from HP’s Quality Center Manual.
After the email application is completed, a user sees a login page. After logging in, a user sees links like Inbox, Compose, Drafts, Sent, Spam, Trash, Folders, and when an email is opened user sees headers like Delete, Forward, Reply to sender, Reply to All, Move etc. When the compose button is clicked, the user sees boxes like To, CC, BCC, Subject, Message body, Send etc. When clicked on each links mentioned above, the user sees a different screen and information related to that screen.
Example for Functionality:
In a web based email application, most of the screens will do some functions i.e. when you click something:
- It will redirect to another page. When you click menus, sub menus, URLs, it will take you to another page.
- It will retrieve the information from the database and display it.
- It will do some calculation and will return the results.
- In a database, the definition of a function: A FUNCTION IS A DATABASE OBJECT WHICH WILL ALWAYS RETURN A VALUE.
Login Screen (page): User sees create new account link, username box, password box and log in button etc.
Username/Password: If correct username and password is typed, it allows you to log in and do actions that you like. If an incorrect username or password is typed and when the login” button is clicked, the email application will flash an error message. “Either username or password is invalid”. The main functionality of the login page is to obtain the username and password from the user and to return back the requested information or error message upon checking the credentials against the underlying database.
Compose Screen: When composed button is clicked, the user has to enter relevant information for To, Subject, and Message Body Boxes.
When send button is clicked, the email has to reach the intended recipient in the To Box. If a wrong email id (example) is typed in the “To” box, it has to return back an error message. “Invalid email Id; Please type correct email address”. The main functionality of the compose screen is to obtain the necessary information, send the email to the intended recipient and a message “email sent” should be displayed on the screen or it has to return back the “error message” upon checking the credentials against the underlying database.
Inbox Screen: When the inbox link is clicked, the functionality of the screen has to connect with the database, retrieve all emails from the database and has to display all emails. Similarly for sent link it has to show the sent emails, and for draft link, it has to show all drafts.
Bank Domain: When you take out money by using debit card/online transfer your amount in your account has to be debited. When you deposit money, it has to be credited into your account.
Stocks/Shares market: When a share is bought in settlement trading, that share has to be displayed in Demat account.