100 Questions Ans.
100 Questions Ans.
100 Questions Ans.
Software testing is the process of evaluating a system to check if it satisfies its business
requirements. It measures the overall quality of the system in terms of attributes. Like –
correctness, completeness, usability, performance, etc.
Explain SDLC.
The Software Development Life Cycle (SDLC) is a structured process that enables the production
of high-quality, low-cost software, in the shortest possible production time. The goal of the SDLC
is to produce superior software that meets and exceeds all customer expectations and demands.
The SDLC defines and outlines a detailed plan with stages, or phases, that each encompass their
own process and deliverables.
Requirement Phase
Requirement gathering and analysis is the most important phase in the software development
lifecycle. Requirement phase is the first step of the SDLC. Business Analyst collects the requirement
from the Customer/Client as per the clients business needs and documents the requirements in the
Business Requirement Specification (document name varies depends upon the Organization. Some
examples are Customer Requirement Specification (CRS), Business Specification (BS), etc., and
provides the same to Development Team.
Analysis Phase
Once the requirement gathering and analysis is done the next step is to define and document the
product requirements and get them approved by the customer. This is done through the SRS
(Software Requirement Specification) document. SRS consists of all the product requirements to be
designed and developed during the project life cycle. Key people involved in this phase are Project
Manager, Business Analyst and Senior members of the Team. The outcome of this phase is the
Software Requirement Specification.
Design Phase
Developers of all levels (seniors, juniors, freshers) involved in this phase. This is the phase where we
start building the software and start writing the code for the product. The outcome from this phase is
Source Code Document (SCD) and the developed product.
Testing Phase
When the software is ready, it is sent to the testing department where Test team tests it thoroughly
for different defects. They either test the software manually or using automated testing tools
depends on the process defined in STLC (Software Testing Life Cycle) and ensure that each and
every component of the software works fine. Once the QA makes sure that the software is error-free,
it goes to the next stage, which is Implementation. The outcome of this phase is the Quality Product
and the Testing Artifacts.
After successful testing, the product is delivered/deployed to the customer for their use. Deployment
is done by the Deployment/Implementation engineers. Once when the customers start using the
developed system then the actual problems will come up and needs to be solved from time to time.
Fixing the issues found by the customer comes in the maintenance phase. 100% testing is not
possible – because, the way testers test the product is different from the way customers use the
product. Maintenance should be done as per SLA (Service Level Agreement)
Explain STLC.
Software Testing Life Cycle (STLC) is a sequence of specific activities conducted during the testing
process to ensure software quality goals are met. STLC involves both verification and validation
activities. Contrary to popular belief, Software Testing is not just a single/isolate activity, i.e. testing. It
consists of a series of activities carried out methodologically to help certify your software product.
STLC stands for Software Testing Life Cycle.
Requirement Analysis
Test Planning
Test case development
Test Environment setup
Test Execution
Test Cycle closure
Activities in Requirement Phase Testing
Understand the required architecture, environment set-up and prepare hardware and software
requirement list for the Test Environment.
Setup test Environment and test data
Perform smoke test on the build.
To check the test logs against the exit criteria mentioned in test planning
To assess whether more tests are needed or if the exit criteria specified for the project should
be changed
To write a test summary report for the stakeholders or clients
What is Verification?
Verification is the process, to ensure that whether we are building the product right i.e., to
verify the requirements which we have and to verify whether we are developing the product
accordingly or not. Activities involved here are Inspections, Reviews, Walk-throughs.
What is Validation?
Validation is the process, whether we are building the right product i.e., to validate the product
which we have developed is right or not. Activities involved in this is Testing the software
application.
Statement coverage:
It makes sure that each line of source code has been executed and tested.
Decision coverage:
It ensures that every decision (true/false) in the source code has been executed and tested.
Path coverage:
It ensures that every possible route through a given part of the code is executed and tested.
1.Error guessing
2.Boundary value analysis
3.Equivalence partioning
4.Decision Table Technique
5.State Transition Technique
Following are some of the most common types of black-box testing techniques.
Error Error guessing is a technique in which there is no specific method for identifying the error.
Guessing It is based on the experience of the test analyst, where the tester uses the experience to
Boundary Boundary Value Technique is used to test boundary values, boundary values are those that
Value contain the upper and lower limit of a variable. It tests, while entering boundary value
In boundary value analysis the answers are within specific boundaries. The two ends, the
inner and the outer limits are considered in this type of testing. For example, an offer is
valid for customers between the ages of 18 and 30 only. Therefore other values such as
17, 18, 30, or 31 can be tested to check whether the inputs are accepted.
Equivalence Equivalence partitioning is a technique of software testing in which input data divided
Partitioning into partitions of valid and invalid values, and it is mandatory that all partitions must
Test Scenario- In order to get a driving license the age of applicant should be between 18 to
49 years. There will be 3 (three) partition where tester should check possibility
So there will be 3 possible scenarios where only one valid group of applicant having age is
between 18 to 49 years, will get driving license.
Decision Decision Table Technique is a systematic approach where various input combinations and
Table their respective system behavior are captured in a tabular form. It is appropriate for the
Technique functions that have a logical relationship between two and more than two inputs.
State State Transition Technique is used to capture the behavior of the software application
Transition when different input values are given to the same function. This applies to those types of
Technique applications that provide the specific number of attempts to access the application.
What are Positive and Negative Testing?
Positive Testing: It is to determine what system supposed to do. It helps to check whether the
application is justifying the requirements or not.
Negative Testing: It is to determine what system not supposed to do. It helps to find the
defects from the software.
What is Test Plan and contents available in a Test Plan? Link1 link2
Test plan document is a document which contains the plan for all the testing activities to be
done to deliver a quality product. Test Plan document is derived from the Product Description,
SRS, or Use Case documents for all future activities of the project. It is usually prepared by
the Test Lead or Test Manager.
Example:
For example, To test a basic login functionality having a user id, password fields. We need to
enter some data in the user id and password fields. So we need to collect some test data.
Test Completion Check: To ensure all tests should be either run or deliberately skipped and all
known defects should be either fixed, deferred for a future release or accepted as a
permanent restriction.
Test Artifacts handover: Tests and test environments should be handed over to those
responsible for maintenance testing. Known defects accepted or deferred should be
documented and communicated to those who will use and support the use of the system.
Lessons learned: Analyzing lessons learned to determine changes needed for future releases
and projects. In retrospective meetings, plans are established to ensure that good
practices can be repeated and poor practices are not repeated
Archiving results, logs, reports, and other documents and work products in the CMS
(configuration management system).
Test coverage is defined as a technique which determines whether our test cases are
actually covering the application code and how much code is exercised when we run those
test cases.
If there are 10 requirements and 100 tests created and if 90 tests are executed then test
coverage is 90%. Now, based on this metric, testers can create additional test cases for
remaining tests.
1. Test Strategy
2. Test Plan
3. Effort Estimation Report
4. Test Scenarios
5. Test Cases/Scripts
6. Test Data
7. Requirement Traceability Matrix (RTM)
8. Defect Report/Bug Report
9. Test Execution Report
10. Graphs and Metrics
11. Test summary report
12. Test incident report
13. Test closure report
14. Release Note
15. Installation/configuration guide
16. User guide
17. Test status report
18. Weekly status report (Project manager to client)
1. Project Name
2. Module Name
3. Defect ID
4. Defect detected on
5. Defect detected by
6. Priority
7. Severity
8. Defect resolved on
9. Defect resolved by
10.Steps to reproduce
What are the levels of testing?
In software testing, there are four testing levels.
Check this post Difference Between System Testing and Integration Testing
Top-down and bottom-up are carried out by using dummy modules known as Stubs and
Drivers. These Stubs and Drivers are used to stand in for missing components to simulate
data communication between modules.
The major aim of this test is to evaluate the compliance of the system with the business
requirements and assess whether it is acceptable for delivery or not. Standard Definition of
Acceptance Testing:
“It is a formal testing according to user needs, requirements and business processes
conducted to determine whether a system satisfies the acceptance criteria or not and
to enable the users, customers or other authorized entities to determine whether to
accept the system or not.”
Acceptance testing is formal testing based on user requirements and function processing. It determines
whether the software is conforming specified requirements and user requirements or not.
During UAT, the users check the specified business behaviors and functionalities of the
system. At this stage, real-world scenarios are implemented on behalf of end-users to verify
the software is working according to requirements.
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.
Performance testing is a type of non-functional testing in which the performance of the system is
evaluated under expected or higher load. The various performance parameters evaluated during
performance testing are – response time, reliability, resource usage, scalability (RRRS), etc. The
different types of performance testing are – Load, Stress, Endurance, Spike, and Volume Testing.
https://usersnap.com/blog/types-user-acceptance-tests-frameworks/
STRESS TESTING - To measure performance under load much higher than expected.
SPIKE TESTING - To check behavior of the system on suddenly increasing the users.
ENDURANCE - To check if the system can sustain the expected load for long duration.
Exhaustive Testing
Testing all the functionalities using all valid and invalid inputs and preconditions is known as
Exhaustive testing.
Early Testing
Defects detected in early phases of SDLC are less expensive to fix. So conducting early
testing reduces the cost of fixing defects.
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.
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.
Testing is context-dependent
Testing approach depends on the context of the software we develop. We do test the software
differently in different contexts. For example, online banking application requires a different
approach of testing compared to an e-commerce site.
These are the seven principles of Software Testing every professional tester should know.
What is Inspection?
Inspection is a formal meeting lead by a trained moderator, certainly not by the author. The
document under inspection is prepared and checked thoroughly by the reviewers before the
meeting. In the inspection meeting, the defects found are logged and shared with the author
for appropriate actions. Post inspection, a formal follow-up process is used to ensure a timely
and corrective action.
What is a Defect?
The variation between the actual results and expected results is known as a defect. If a
developer finds an issue and corrects it by himself in the development phase then it’s called a
defect. Click here for more details.
What is a Bug?
If testers find any mismatch in the application/system in testing phase then they call it as Bug.
Click here for more details.
What is an Error?
We can’t compile or run a program due to a coding mistake in a program. If a developer
unable to successfully compile or run a program then they call it as an error. Click here for
more details.
What is a Failure?
Once the product is deployed and customers find any issues then they call the product as a
failure product. After release, if an end user finds an issue then that particular issue is called
as a failure. Click here for more details.
Severity: It is the extent to which the defect can affect the software. In other words it defines
the impact that a given defect has on the system. For example: If an application or web page
crashes when a remote link is clicked, in this case clicking the remote link by an user is rare
but the impact of application crashing is severe. So the severity is high but priority is low.
Priority: It defines the priority in which the defects should be resolved. if there are multiple
defects, the priority decides which defect has to be fixed and verified immediately versus
which defect can be fixed a bit later. It is usually set by the lead
High Priority & High Severity: An error which occurs on the basic functionality of the
application and will not allow the user to use the system. (Eg. A site maintaining the student
details, on saving record if it, doesn’t allow to save the record then this is high priority and high
severity bug.)
Low Priority and Low Severity: Any cosmetic or spelling issues which is within a paragraph or
in the report (Not on cover page, heading, title).
High Priority & Low Severity: The spelling mistakes that happens on the cover page or
heading or title of an application.
Low Priority & High Severity : An error which occurs on the functionality of the application (for
which there is no workaround) and will not allow the user to use the system but on click of link
which is rarely used by the end user.
● New: When a new defect is logged and posted for the first time. It is assigned a status as
NEW.
● Assigned: Once the bug is posted by the tester, the lead of the tester approves the bug and
assigns the bug to the developer team
● Open: The developer starts analyzing and works on the defect fix
● Fixed: When a developer makes a necessary code change and verifies the change, he or
she can make bug status as “Fixed.”
● Pending retest: Once the defect is fixed the developer gives a particular code for retesting
the code to the tester. Since the software testing remains pending from the testers end, the
status assigned is “pending retest.”
● Retest: Tester does the retesting of the code at this stage to check whether the defect is
fixed by the developer or not and changes the status to “Re-test.”
● Verified: The tester re-tests the bug after it got fixed by the developer. If there is no bug
detected in the software, then the bug is fixed and the status assigned is “verified.”
● Reopen: If the bug persists even after the developer has fixed the bug, the tester changes
the status to “reopened”. Once again the bug goes through the life cycle.
● Closed: If the bug is no longer exists then tester assigns the status “Closed.”
● Duplicate: If the defect is repeated twice or the defect corresponds to the same concept of
the bug, the status is changed to “duplicate.”
● Rejected: If the developer feels the defect is not a genuine defect then it changes the defect
to “rejected.”
● Deferred: If the present bug is not of a prime priority and if it is expected to get fixed in the
next release, then status “Deferred” is assigned to such bugs
● Not a bug:If it does not affect the functionality of the application then the status assigned to
a bug is “Not a bug”.
What is an entry criteria?
The prerequisites that must be achieved before commencing the testing process. Click here
for more details.
Categories of defects are: Errors of commissions, Errors of omissions, Errors of clarity, and
Error of speed and capacity.
Error of Commission: Commission means instruction or some kind of command given. Now
the error in commission means the error in made in command or instruction. For example,
suppose I wrote a loop that I was trying to run 10 times but I command it to run more than 10
times by mistake this is the error of commission.
Errors of Omissions: As name is already describing error of omission is some thing which
happens accidentally. Omission word means something left out or executed. Practical most
common example of this error is suppose we make a function in programming open its
bracket but forget to close at the end.
Error of Clarity: The most common error in the natural languages. This error happens due to
miss understanding between the developer and client. It travels most of the time from the
requirements to the software.
Error of Speed or Capacity : The name of the error is itself enough i think to tell about it this
error. Your software is working fine but not working in the required time this is the error of
speed. When it comes to capacity it can be relevant to memory. For example, a small integer
is declared where the long integer was required.
What is RTM?
Requirements Traceability Matrix (RTM) is used to trace the requirements to the tests that are needed
to verify whether the requirements are fulfilled. We have to ensure that every requirement has atleast
1 test case. Requirement Traceability Matrix AKA Traceability Matrix or Cross Reference Matrix.
Meeting Goals
When done well, traceability follows the life of a requirement. It starts at the time a requirement
originates. And it continues on through fulfillment of the requirement. So, it makes sure that your
requirements fulfill your original goals. For example, it gives you proof that you met compliance
requirements.
Making Decisions
Traceability can also be used for decision-making throughout product development. You’ll be able to
understand how product design will be impacted by requirements. And, if a requirement changes,
you’ll be able to analyze the impact of that change across development.
Which test cases are written first white boxes or black box?
The simple answer is black-box test cases are written first.
Let’s see why black-box test cases are written first compared to white box test cases.
Prerequisites to start writing black-box test cases are Requirement documents or design
documents. These documents will be available before initiating a project.
Prerequisites to start writing white box test cases are the internal architecture of the
application. The internal architecture of the application will be available in the later part of the
project i.e., designing.
code
documentation
problems
change requests
designs and tools
compilers and libraries
QA monitors the process to be done for project development. It also tracks the results of the
process to meet the expectations. It helps in preventing mistakes and defects in
manufactured products and avoiding problems when delivering products or services to
customers.
Test plans
Test cases
Use cases
Software Requirement Specification (SRS)
Functional Requirement Specification (FRS)
Exit Criteria- It is used when a product is completely testing and when it is ready to be
released. It involves:
Metrics
Defect Analysis Report
Test Summary Reports
Define some of the common software testing approaches.
Regression testing The test verifies the existing working of a system and
compares with the way it used to work previously
Exploratory testing The test is done within certain areas only and no
specified test cases are done
Maintenance Testing is done on the already deployed software.Request from the end-users to
add new features to the existing software.
End-users may want to migrate from one platform to another such as upgrading their
environment like operating system, database, etc
The Testing done during this enhancement,change and migration cycle is known as
maintenance testing. Once the software is deployed in operational environment it needs some
maintenance from time to time in order to avoid system breakdown,most of the banking
software systems needs to be operational 24*7*365. So it is very necessary to do
maintenance testing of software applications.
1. Actor, which is the user, which can be a single person or a group of people, interacting with a
process
2. System, which is the process that's required to reach the final outcome
3. Goal, which is the successful user outcome
Use case is a representation of actions which describes the behaviour of system to do a particular task.
Defect States
#1) New: This is the first state of a defect in the Defect Life Cycle. When any new defect is found, it falls in a ‘New’
state, and validations & testing are performed on this defect in the later stages of the Defect Life Cycle.
#2) Assigned: In this stage, a newly created defect is assigned to the development team to work on the defect.
This is assigned by the project lead or the manager of the testing team to a developer.
#3) Open: Here, the developer starts the process of analyzing the defect and works on fixing it, if required.
If the developer feels that the defect is not appropriate then it may get transferred to any of the below four states
namely Duplicate, Deferred, Rejected, or Not a Bug-based upon a specific reason. We will discuss these four
states in a while.
#4) Fixed: When the developer finishes the task of fixing a defect by making the required changes then he can
mark the status of the defect as “Fixed”.
#5) Pending Retest: After fixing the defect, the developer assigns the defect to the tester to retest the defect at
their end, and until the tester works on retesting the defect, the state of the defect remains in “Pending Retest”.
#6) Retest: At this point, the tester starts the task of retesting the defect to verify if the defect is fixed accurately by
the developer as per the requirements or not.
#7) Reopen: If any issue persists in the defect, then it will be assigned to the developer again for testing and the
status of the defect gets changed to ‘Reopen’.
#8) Verified: If the tester does not find any issue in the defect after being assigned to the developer for retesting
and he feels that if the defect has been fixed accurately then the status of the defect gets assigned to ‘Verified’.
#9) Closed: When the defect does not exist any longer, then the tester changes the status of the defect to
“Closed”.
A Few More:
● Rejected: If the defect is not considered a genuine defect by the developer then it is marked as
“Rejected” by the developer.
● Duplicate: If the developer finds the defect as same as any other defect or if the concept of the
defect matches any other defect then the status of the defect is changed to ‘Duplicate’ by the
developer.
● Deferred: If the developer feels that the defect is not of very important priority and it can get fixed in
the next releases or so in such a case, he can change the status of the defect as ‘Deferred’.
● Not a Bug: If the defect does not have an impact on the functionality of the application, then the
status of the defect gets changed to “Not a Bug”.
What is Software Testing Life Cycle?
Software Testing Life Cycle (STLC) is a sequence of activities performed by testers such as
Requirement & Analysis – Understanding the client’s requirement and what actually requires,
How to test the requirements,
Test Planning – what should be tested in an application, How and who will test the application
Test Case Design – test scenarios, mapping with requirement traceability matrix, test case
creation, and test data used
Test Environment Setup – what hardware and software need to install or configure to build
test environment.
Test Execution – running the application in order to verify features as per test case designed,
reporting bugs, track the bugs and regression test till it gets resolved.
Test Closure – Creation of test reports, total bugs pending, critical bugs if any, justification for
releasing application to client.
What is RTM ?
Requirement Traceability Matrix (RTM) is a document that maps and traces user requirement
with test cases. It captures all requirements proposed by the client and requirement traceability in
a single document, delivered at the conclusion of the Software developement life cycle. The main
purpose of Requirement Traceability Matrix is to validate that all requirements are checked via
test cases such that no functionality is unchecked during Software testing.