0% found this document useful (0 votes)
13 views

Functional Testing

Uploaded by

Pavan Kumar
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

Functional Testing

Uploaded by

Pavan Kumar
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 10

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 Non-functional testing is the process to determine the sys
system behaviour as per the client functional performance as per client expectations
requirements.

Functional testing is performed first with the help Non-functional testing is performed after functional testin
of Manual and Automation testing tools. the effective tools required.

It is easy to perform manual testing as client It is difficult to perform manual testing as scalability, reli
requirements are the input in functional testing. speed and other performance parameters are input in non
functional testing.

Functional testing is of following types: Non-functional testing is of following types:


• Unit Testing • Performance testing
• Smoke Testing • Load, Stress, Volume Testing
• Sanity Testing • Security testing
• Integration testing • Compatibility testing
• User Acceptance testing
• Regression 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 Retesting is the form of testing the app
sure that implementation of any new feature or fixes does not affect after fixing of defects for those test cas
any other part or functionality of the application. which were failed in last execution.

As a part of regression testing, new changes in the application should As a part of retesting, defect verificatio
not affect the existing functionalities. done.

Based on the project requirement, regression testing can be parallel Retesting is performed before regressio
performed with retesting. 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 o
Regression testing Retesting

done for failed test cases.

As manual testing can be time consuming and expensive, automation Automation cannot be done for retestin
can be done for regression testing.
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.

You might also like