Most Commonly asked Functional Testing Interview Questions and Answers:
As the name itself defines, functional testing is the process of testing an application with respect to the requirement document specifications.
Functional testing can be performed either manually or through automation but each process includes testing the application by providing a set of inputs and determining or verifying the result/output by comparing the actual result with the expected results.
Functional testing has various phases that are to be considered while testing. In this article, we will see multiple interview questions and answer which will help you to prepare well.
Table of Contents:
Most Popular Functional Testing Interview Questions
Q #1) What do you understand by the term ‘Functional testing’?
Answer: A black box testing technique, where the functionality of an application is tested to generate the desired output by providing certain input is called ‘Functional testing’.
The role of functional testing is not only to validate the behavior of the application as per the requirement document specification but is also to verify whether the application is ready to be released into the live environment or not.
Given below are a few functional testing techniques that are commonly used:
- Unit testing
- Smoke testing
- Integration testing
- System testing
- Usability testing
- Regression testing
- User Acceptance testing
Q #2) What are the important steps that are covered in Functional testing?
Answer: Following are the steps that should be covered as a part of functional testing:
- Understanding the Requirement document specification and clearing the doubts and queries in the form of review comments.
- Writing the test cases with respect to the requirement specification by keeping in mind all the scenarios that should be considered for all the cases.
- Identifying the test inputs and requesting the test data that is required to execute the test cases as well as to check the functionality of the application.
- Determine the actual outcomes as per the input values to be tested.
- Execute the test cases that determine whether application behavior is as expected or any defect has occurred.
- Compare the actual result and the computed result to find out the actual outcome.
Q #3) Explain the difference between Functional testing and Non-Functional testing.
Answer: The difference between Functional testing and Non-functional testing can be explained as below:
Functional Testing | NonFunctional Testing |
---|---|
Functional testing is performed to determine the system behaviour as per the client functional requirements. | Non-functional testing is the process to determine the system performance as per client expectations |
Functional testing is performed first with the help of Manual and Automation testing tools. | Non-functional testing is performed after functional testing with the effective tools required. |
It is easy to perform manual testing as client requirements are the input in functional testing. | It is difficult to perform manual testing as scalability, reliability, speed and other performance parameters are input in non functional testing. |
Functional testing is of following types: • Unit Testing • Smoke Testing • Sanity Testing • Integration testing • User Acceptance testing • Regression testing | Non-functional testing is of following types: • Performance testing • Load, Stress, Volume Testing • Security testing • Compatibility testing |
Q #4) How is ‘Build’ different from ‘Release’?
Answer: Build is an executable file that refers to that part of an application that is handed over to a tester to test the implemented functionality of the application along with some bug fixes. The build can be rejected by the testing team if it does not pass the critical checklist which contains the major functionality of the application.
There can be multiple builds in the testing cycle of an application.
Release refers to the software application which is no longer in the testing phase and after completion of testing and development, the application is handed over to the client. One release has several builds associated with it.
Q #5) Explain the Bug cycle.
Answer: Bug is said to be an unwanted error, flaw, mistake, etc that has occurred within the application and prevents it from delivering the desired output. When any defect or bug is encountered in an application while testing, then from logging a defect till its resolution, a bug moves through a definite life cycle known as Bug Lifecycle.
Below figure will give you an idea of Bug lifecycle:
[image source]
The whole process goes as and when an issue or bug is encountered. It is reported /logged in bug tracking tool following a considerable format. These bugs are assigned to the developer and its status is made as ‘Open’. Developer can now review the bug, reproduce it at its end and start working on it.
If the bug is fixed, the developer changes its status to ‘Fixed’ or the status can be moved to ‘need more information’, ‘won’t fix’, ‘cannot reproduce’ etc., in other cases. QA then performs regression i.e. re-verify the bugs with a specific action and respond accordingly.
If the issues/bug is now behaving as expected then its status is changed to Verified /Closed else Reopen.
Q #6) Enlist some Bug status along with its description.
Answer: Enlisted below are few bug statuses along with their descriptions:
- New: When the defect or bug is logged for the first time it is said as New.
- Assigned: After the tester has logged a bug, his bug is being reviewed by the tester lead and then it is assigned to the corresponding developer team.
- Open: Tester logs a bug in the Open state and it remains in the open state until the developer has performed some task on that bug.
- Resolved/Fixed: When a developer has resolved the bug, i.e. now the application is producing the desired output for a particular issue, then the developer changes its status to Resolved/Fixed.
- Verified/Closed: When a developer has changed the status to resolved/fixed then the tester now tests the issue at its end and if it’s fixed then he changes the status of the bug to ‘Verified/Close’.
- Reopen: If a tester is able to reproduce the bug again i.e. the bug still exists even after fixing by the developer, it’s status is marked as Reopen.
- Not a bug/Invalid: A bug can be marked as invalid or not a bug by the developer when the reported issue is as per the functionality but is logged due to misinterpretation.
- Deferred: Usually when the bug is of minimal priority for the release and if there is lack of time, in that case, those minimal priority bugs are deferred to the next release.
- Cannot Reproduce: If the developer is unable to reproduce the bug at its end by following the steps as mentioned in the issue.
Q #7) What is known as Data-driven testing?
Answer: Data-driven testing is the methodology where a series of test script containing test cases are executed repeatedly using data sources like Excel spreadsheet, XML file, CSV file, SQL database for input values and the actual output is compared to the expected one in the verification process.
For Example, a Test studio is used for data-driven testing.
Some advantages of data-driven testing are:
- Reusability.
- Repeatability.
- Test data separation from test logic.
- The number of test cases is reduced.
Q #8) What are the important points that should be considered while writing Test Cases?
Answer: Writing a test case is said to be the most important activity of the test execution process which requires writing skills as well as in-depth knowledge of the application to make effective and reusable test cases.
Few important points that should be considered while writing test cases includes:
- There should be a clear understanding of the client’s requirements before beginning to write the test cases. Nothing should be assumed and every doubt regarding the requirements should be cleared.
- Every requirement should be included in the form of test cases and nothing should be left out. Usually Traceability matrix is maintained to keep a check on every requirement implementation and testing completion.
- As per the requirement document specifications, every functional and non-functional requirement including UI interface, compatibility should be covered.
- Test cases should be checked from time to time for no repetition or redundancy.
- Priority is an important factor that should be set for test cases while writing. This priority helps the tester to test the application first with the high priority tests cases which include basic functionality, then the medium and later the low priority test cases.
- For a particular release, test cases can also be built Sprint wise so that the tester, as well as the developer, can analyze the quality of the product based on test case execution.
- Structure of test cases should be easily understood and must be in a simple language. The input data values for test cases should be valid as well as in a wide range.
Q #9) What is Automation testing?
Answer: Automation testing is a testing methodology where an automation tool is used to execute the test cases suite in order to increase test coverage as well as speed to test execution. Automation testing does not require any human intervention as it executes pre-scripted tests and is capable of reporting and comparing outcomes with previous test runs.
Repeatability, ease of use, accuracy, and greater consistency are some of the advantages of Automation testing.
Some automation testing tools are listed below:
- Selenium
- Tellurium
- Watir
- SoapUI
Q #10) Explain the term Stress Testing and Load testing.
Answer:
Stress Testing is a form of performance testing where the application is bound to go through exertion or stress i.e. execution of application above the threshold of the break to determine the point where the application crashes. This condition usually arises when there are too many users and too much of data.
Stress testing also verifies the application recovery when the workload is reduced.
Load Testing is a form of performance testing where the application is executed above various load levels to monitor the peak performance of the server, response time, server throughput, etc. Through load testing process stability, performance and integrity of the application are determined under concurrent system load.
Q #11) What do you understand by Volume testing?
Answer: Volume testing is a form of performance testing which determines the performance levels of the server throughput and response time when concurrent users, as well as large data load from the database, are put onto the system/application under tests.
Q #12) What are the different Test Techniques used in Functional testing?
Answer: There are two different test techniques that are used in functional testing.
They can be defined as below:
- Requirement based testing: This form of functional testing is performed prioritizing the requirements on the basis of risk criteria. This also assures that all the critical test paths have been included in the testing process.
- Business process-based testing: This form of functional testing is performed from the business process perspective. The scenarios include knowledge of business processes for performing testing.
Q #13) What do you understand by Exploratory Testing? When is it Performed?
Answer: Exploratory testing means testing or exploring the application without following any schedules or procedures. While performing exploratory testing, testers do not follow any pattern and use their out of box thinking and diverse ideas to see how the application performs.
Following this process covers even the smallest part of the application and helps in finding more issues/bugs than in the normal test case testing process.
Exploratory testing is usually performed in cases when:
- There is an experienced tester in the testing team who can use their testing experience to apply all the best possible scenarios.
- All critical paths have been covered and major test cases are prepared as per the requirement specifications that have been executed.
- There is a critical application and no possible case can be missed in any case.
- New tester has entered the team, exploring the application will help them understand better as well as they will follow their own mind while executing any scenario rather than following the path as mentioned in the requirement document.
Q #14) For any Web Application, what are the possible login features that should be tested?
Answer: Enlisted below are the possible scenarios that can be performed to fully test the login feature of any application:
- Check the input fields i.e. Username and password with both valid and invalid values.
- Try entering valid email id with an incorrect password and also enter an invalid email and valid password. Check for the proper error message displayed.
- Enter valid credentials and get logged in to the application. Close and reopen the browser to check if still logged in.
- Enter the application after logging in and then again navigate back to the login page to check whether the user is asked again to log in or not.
- Sign in from one browser and open the application from another browser to verify whether you are logged into another browser also or not.
- Change password after logging into the application and then try to login with that old password.
There are few other possible scenarios as well which can be tested.
Q #15) Explain Accessibility testing and its importance in the present scenario.
Answer: Accessibility testing is a form of usability testing where testing is performed to ensure that the application can be easily handled by people with disabilities like hearing, color blindness, low visibility etc. In today’s scenario, the web has acquired the major place in our life in the form of e-commerce sites, e-learning, e-payments, etc.
Thus in order to grow better in life, everyone should be able to be a part of technology especially people with some disabilities.
Enlisted below are a few types of software which help and assist people with disabilities to use technology:
- Speech recognition software
- Screen reader software
- Screen magnification software
- Special keyboard
Q #16) What is Adhoc testing?
Answer: Adhoc testing, usually known as random testing is a form of testing which does not follow any test case or requirement of the application. Adhoc testing is basically an unplanned activity where any part of the application is randomly checked to find defects.
In such cases, the defects encountered are very difficult to reproduce as no planned test cases are followed. Adhoc testing is usually performed when there is a limited time to perform elaborative testing.
Q #17) What is Equivalence Partitioning?
Answer: Equivalence partitioning also known as equivalence class partitioning is a form of black-box testing where input data is being divided into data classes. This process is done in order to reduce the number of test cases, but still covering the maximum requirement.
Equivalence partitioning technique is applied where input data values can be divided into ranges. The range of the input values is defined in such a way that only one condition from each range partition is to be tested assuming that all the other conditions of the same partition will behave the same for the software.
For Example: To identify the rate of interest as per the balance in the account, we can identify the range of balance amount in the account that earn a different rate of interest.
Q #18) Explain Boundary Value Analysis.
Answer: Boundary value analysis method checks the boundary values of Equivalence class partitions. Boundary value analysis is basically a testing technique which identifies the errors at the boundaries rather than within the range values.
For Example, An input field can allow a minimum of 8 characters and a maximum of 12 characters then 8-12 is considered as the valid range and <7 and >13 are considered as the invalid range. Accordingly, the test cases are written for valid partition value, exact boundary value, and invalid partition value.
Q #19) Explain the difference between Severity and Priority.
Answer: Defect Severity is defined by the level or the degree of impact by the defect on the application under test. Higher the severity of the defect, the more is the impact on the application.
Following are the 4 classes in which a defect severity is categorized:
- Critical
- Major
- Medium
- Low
Defect priority defines the order in which the defect should be resolved first i.e. the higher the priority of the defect implies that the application is unusable or stuck at some point and the defect should be resolved as soon as possible.
Following are the 3 classes in which a defect priority is defined:
- High
- Medium
- Low
Q #20) When do we perform Smoke testing?
Answer: Smoke testing is performed on the application after receiving the build. Tester usually tests for the critical path and not the functionality in deep to make sure, whether the build is to be accepted for further testing or to be rejected in case of broken application.
A smoke checklist usually contains the critical path of the application without which an application is blocked.
Q #21) What do you understand by Sanity testing?
Answer: Sanity testing is performed after receiving the build to check the new functionality/defects to be fixed. In this form of testing the goal is to check the functionality roughly as expected and determine whether the bug is fixed and also the effect of the fixed bug on the application under test.
There is no point in accepting the build by the tester and wasting time if Sanity testing fails.
Q #22) What do you understand by Requirement Traceability Matrix?
Answer: Requirement Traceability Matrix (RTM) is a tool to keep a track of requirement coverage over the process of testing.
In RTM, all requirements are categorized as their development in course of sprint and their respective ids (new feature implementation/ enhancement/ previous issues, etc) are maintained for keeping a track that everything mentioned in the requirement document has been implemented before the release of the product.
RTM is created as soon as the requirement document is received and is maintained until the release of the product.
Q #23) What are the factors to be considered in Risk-based testing?
Answer: By Risk-based testing of a project, it is not just to deliver a project risk-free but the main aim of risk-based testing is to achieve the project outcome by carrying out best practices of risk management.
The major factors to be considered in Risk-based testing are as follows:
- To identify when and how to implement risk-based testing on an appropriate application.
- To identify the measures that act well in finding as well as handling risk in critical areas of the application.
- To achieve the project outcome that balances risk with the quality and feature of the application.
Q #24) Differentiate between Regression testing and Re-testing.
Answer: Difference between Regression testing and Re-testing can be explained as follows:
Regression testing | Retesting |
---|---|
Regression testing is the form of testing which is carried out to make sure that implementation of any new feature or fixes does not affect any other part or functionality of the application. | Retesting is the form of testing the application after fixing of defects for those test cases which were failed in last execution. |
As a part of regression testing, new changes in the application should not affect the existing functionalities. | As a part of retesting, defect verification is done. |
Based on the project requirement, regression testing can be parallel performed with retesting. | Retesting is performed before regression testing because of its high priority. |
Also known as generic testing and is done for passed test cases. | Also known as planned testing and is only done for failed test cases. |
As manual testing can be time consuming and expensive, automation can be done for regression testing. | Automation cannot be done for retesting. |
Q #25) Explain User Acceptance testing.
Answer: User acceptance testing is usually performed after the product is thoroughly tested. In this form of testing, software users or say, client, itself use the application to make sure if everything is working as per the requirement and perfectly in the real world scenario.
UAT is also known as End-user testing.
Conclusion
Through this article, I have tried to explain each and every topic of Functional Testing, so that any person who is preparing for the interview can easily understand the topic and remember them as well.
These Functional Testing Interview Questions and Answers will guide you to clear any interview successfully with full confidence.
We wish you all success.
I hope, these Functional Testing Interview Questions & Answers will help you at some point in your career.