Q. What is a top-down and bottom-up approach in
testing?
Top-Down – Testing happens from top to bottom.
That is, high-level modules are tested first and after that low-level
modules. Lastly, the low-level modules are incorporated into a high-level state
to guarantee the framework is working as it is expected to.
Bottom-Up – Testing happens from base levels to high-up levels.
The lowest level modules are tested first and afterward high-level state
modules. Lastly, the high-level state modules are coordinated to a low level to
guarantee the framework is filling in as it has been proposed to
It is also known as pre-production testing. This is done by the end-users along with the testers to validate the functionality of the application. After successful acceptance testing. Formal testing conducted to determine whether an application is developed as per the requirement. It allows the customer to accept or reject the application. Types of acceptance testing are Alpha, Beta & Gamma.
Q. On what basis is the acceptance plan prepared?
The acceptance test plan is prepared using the following inputs.
- Requirement Document: The requirement document
specifies what exactly is needed and not needed in the existing project
from the customer’s perspective.
- Input from customer: Input from the customer
will be in the format of formal emails, informal talks, discussions, etc.,
- Project plan: Project plan document prepared by
the project manager.
All the above three inputs act as good inputs to prepare the
acceptance test plan.
Q. What is Alpha Testing?
Alpha testing is done by the in-house developers (who developed
the software) and testers. Sometimes alpha testing is done by the client or
outsourcing team with the presence of developers or testers.
Q. What is Beta Testing?
Beta testing is done by a limited number of end-users before
delivery. Usually, it is done in the client’s place.
Q. What is Gamma Testing?
Gamma testing is done when the software is ready for release with
specified requirements. It is done at the client place. It is done directly by
skipping all the in-house testing activities.
Q. What is Smoke Testing?
Smoke Testing is done to make sure if the build we received from
the development team is testable or not. It is also called as “Day 0” check. It
is done at the “build level”. It helps not to waste the testing time to
simply testing the whole application when the key features don’t work or the
key bugs have not been fixed yet.
Q. What is Sanity Testing?
Sanity
Testing is done during the release phase to check for the main functionalities
of the application without going deeper. It is also called as a subset of Regression testing. It is done at the “release
level”. At times due to release time constraints rigorous regression
testing can’t be done to the build, sanity testing does that part by checking
main functionalities.
Q. What is the difference between Sanity and Smoke Testing?
Sanity vs Smoke Testing
SMOKE TESTING |
SANITY TESTING |
Smoke Test is done to make sure if the
build we received from the development team is testable or not |
Sanity Test is done during the release
phase to check for the main functionalities of the application without going
deeper |
Smoke Testing is performed by both
Developers and Testers |
Sanity Testing is performed by Testers
alone |
Smoke Testing exercises the entire
application from end to end |
Sanity Testing exercises only the
particular component of the entire application |
Smoke Testing, build may be either stable
or unstable |
Sanity Testing, build is relatively stable |
It is done on initial builds. |
It is done on stable builds. |
It is a part of basic testing. |
It is a part of regression testing. |
Usually it is done every time there is a
new build release. |
It is planned when there is no enough time
to do in-depth testing. |
Q. What is Retesting?
To ensure that the defects which were found and posted in the earlier build were fixed or not in the current build. Say, Build 1.0 was released. Test team found some defects (Defect Id 1.0.1, 1.0.2) and posted. Build 1.1 was released, now testing the defects 1.0.1 and 1.0.2 in this build is retesting.
Q. What is Regression Testing?
Repeated testing of an already tested program, after modification,
to discover any defects introduced or uncovered as a result of the changes in
the software being tested or in another related or unrelated software components.
Usually, we do regression testing in the following cases:
1.
New functionalities are added to the application
2.
Change Requirement (In organizations, we call it as CR)
3.
Defect Fixing
4.
Performance Issue Fix
5.
Environment change (E.g., Updating the DB from MySQL to Oracle)
Q. What do you mean by regression and confirmation testing?
Regression
Testing: Testing team re-execute the tests against the modified
application to make sure whether the modified code breaks anything which was
working earlier.
Confirmation Testing: Usually testers report a bug when a test fails. Dev Team releases a new version of the software after the defect is fixed. Now the testing team will retest to make sure the reported bug is actually fixed or not.
Q. What is Recovery Testing?
Recovery testing is performed in order to determine how quickly
the system can recover after the system crash or hardware failure. It comes
under the type of non-functional testing.
Q. What is Globalization Testing?
Globalization is a process of designing a software application so
that it can be adapted to various languages and regions without any changes.
Q. What is Localization Testing (L10N Testing)?
Localization is a process of adapting globalization software for a
specific region or language by adding local specific components.
Q. What is Installation Testing?
It is to check whether the application is successfully installed
and it is working as expected after installation.
Q. What is Formal Testing?
It is a process where the testers test the application by having
pre-planned procedures and proper documentation.
Q. What is Risk Based Testing?
Identify the modules or functionalities which are most likely
cause failures and then testing those functionalities.
Q. What is Compatibility Testing?
It is to deploy and check whether the application is working as
expected in a different combination of environmental components.
Q. What is Exploratory Testing?
Usually, this process will be carried out by domain experts. They
perform testing just by exploring the functionalities of the application
without having the knowledge of the requirements.
Q. What is Monkey Testing?
Perform abnormal action on the application deliberately in order
to verify the stability of the application.
Q. What is Usability Testing?
To verify whether the application is user-friendly or not and was
comfortably used by an end user or not. The main focus in this testing is
to check whether the end user can understand and operate the application easily
or not. An application should be self-exploratory and must not require
training to operate it.
Q. What is Security Testing?
Security testing is a process to determine whether the system
protects data and maintains functionality as intended.
Q. What is Soak Testing?
Running a system at high load for a prolonged period of time to
identify the performance problems is called Soak Testing.
Q. What is Endurance Testing?
Endurance testing is a non-functional testing type. It is also known as Soak Testing.
Q. What is Performance Testing?
This type of testing determines or validates the speed,
scalability, and/or stability characteristics of the system or application
under test. Performance is concerned with achieving response times, throughput,
and resource-utilization levels that meet the performance objectives for the
project or product.
Q. What is Load Testing?
It is to verify that the system/application can handle the
expected number of transactions and to verify the system/application behavior
under both normal and peak load conditions.
Q. What is Volume Testing?
It is to verify that
the system/application can handle a large amount of data
Q. What is Stress Testing?
It is to verify the behavior of the system once the load increases
more than its design expectations.
Q. What is Scalability Testing?
Scalability testing is a type of non-functional testing. It is to
determine how the application under test scales with increasing workload.
Q. What is Concurrency Testing?
Concurrency testing means accessing the application at the same
time by multiple users to ensure the stability of the system. This is mainly
used to identify deadlock issues.
Q. What is Fuzz Testing?
Fuzz testing is used to identify coding errors and security
loopholes in an application. By inputting a massive amount of random data to
the system in an attempt to make it crash to identify if anything breaks in the
application.
Q. What is Adhoc Testing?
Ad-hoc testing is quite opposite to the formal testing. It is an
informal testing type. In Adhoc testing, testers randomly test the application
without following any documents and test design techniques. This testing is
primarily performed if the knowledge of testers in the application under test
is very high. Testers randomly test the application without any test cases or any
business requirement document.
Q. What is Interface Testing?
Interface testing is performed to evaluate whether two intended
modules pass data and communicate correctly to one another.
Q. What is Reliability Testing?
Perform testing on the application continuously for long period of
time in order to verify the stability of the application
Q. What is Bucket Testing?
Bucket testing is a method to compare two versions of an
application against each other to determine which one performs better.
Q. What are the principles of Software Testing?
1.
Testing shows presence of defects
2.
Exhaustive testing is impossible
3.
Early testing
4.
Defect clustering
5.
Pesticide Paradox
6.
Testing is context depending
7.
Absence of error fallacy
Q. What is Exhaustive Testing?
Testing all the functionalities using all valid and invalid inputs
and preconditions is known as Exhaustive testing.
Q. What is Early Testing?
Defects detected in early phases of SDLC are less expensive to
fix. So conducting early testing reduces the cost of fixing defects.
Q. What is Defect clustering?
Defect clustering in software testing means that a small module or
functionality contains most of the bugs or it has the most operational
failures.
Q. What is Pesticide Paradox?
Pesticide Paradox in software testing is the process of repeating
the same test cases, again and again, eventually, the same test cases will no
longer find new bugs. So to overcome this Pesticide Paradox, it is necessary to
review the test cases regularly and add or update them to find more defects.
Bug/Defect
severity can be defined as the impact of the bug on customer’s business. It can
be Critical, Major or Minor. In simple words, how much effect will be there on
the system because of a particular defect?
Defect priority can be defined as how soon the defect should be fixed.
It gives the order in which a defect should be resolved. Developers decide
which defect they should take up next based on the priority. It can be High,
Medium or Low. Most of the times the priority status is set based on the
customer requirement
For example:
High Priority & High Severity: Submit
button is not working on a login page and customers are unable to login to the
application.
Low Priority & High Severity: Crash in
some functionality which is going to deliver after couple of releases
High
Priority & Low Severity: Spelling mistake of a company
name on the homepage
Low
Priority & Low Severity: FAQ page takes a long time to
load
Q. What is a Critical Bug?
A critical bug is a show stopper which means a large piece of
functionality or major system component is completely broken and there is no
workaround to move further.
For example, Due to a bug in one module, we cannot test the other modules
because that blocker bug has blocked other modules. Bugs which affects the customers’
business are considered as critical.
Example:
1. “Sign In” button is not working on Facebook App and Facebook users
are blocked to login to their accounts.
2. An error message pops up when a customer clicks on transfer money button in
a Banking website.
Comments
Post a Comment