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 over through a definite life cycle known as Bug Lifecycle.Below figure will give you an idea of the Bug lifecycle:
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:
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