Interview
Interview
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.
Stages of SDLC:
Planning
Designing
Developing
Testing
Maintenance
This phase is the most fundamental in the SDLC process. Business requirements are
compiled and analyzed by a business analyst, domain expert, and project manager. The
business analyst interacts with stakeholders to develop the business requirements document.
They also write use cases and share this information with the project team. The aim of the
requirements analysis is for quality assurance, technical feasibility, and to identify potential
risks to address in order for the software to succeed.
During the design phase, lead developers and technical architects create the initial high-level
design plan for the software and system. This includes the delivery of requirements used to
create the Design Document Specification (DDS). This document details database tables to
be added, new transactions to be defined, security processes, as well as hardware and system
requirements.
In this phase, the database admin creates and imports the necessary data into the database.
Programming languages are defined by requirements. Developers create the interface as per
the coding guidelines and conduct unit testing. This is an important phase for developers.
They need to be open-minded and flexible if any changes are introduced by the business
analyst.
4. Testing
Testers test the software against the requirements to make sure that the software is solving the
needs addressed and outlined during the planning phase. All tests are conducted as functional
testing, including unit testing, integration testing, system testing, acceptance testing, and non-
functional testing.
5. Maintenance
STLC :
Software Testing Life Cycle (STLC) is a process used to test software and ensure that
quality standards are met. Tests are carried out systematically over several phases.
During product development, phases of the STLC may be performed multiple times until a
product is deemed suitable for release.
1. Requirement analysis
2. Test Planning
3. Test case development
4. Environment Setup
5. Test Execution
6. Test Cycle Closure
Each of the step mentioned above has some Entry Criteria (it is a minimum set of
conditions that should be met before starting the software testing) as well as Exit
Criteria (it is a minimum set of conditions that should be completed in order to
stop the software testing) on the basis of which it can be decided whether we can
move to the next phase of Testing Life cycle or not.
Let us discuss about each phase of the STLC Life Cycle in detail. The STLC
lifecycle can run in parallel or overlaps with the project life cycle.
Requirement Analysis
This is the very first phase of Software testing Life cycle (STLC). In this phase
testing team goes through the Requirement document with both Functional and
non-functional details in order to identify the testable requirements.
In case of any confusion the QA team may setup a meeting with the clients and the
stakeholders (Technical Leads, Business Analyst, System Architects and Client
etc.) in order to clarify their doubts.
Once the QA team is clear with the requirements they will document the
acceptance Criteria and get it approved by the Customers.
Test Planning
Test Planning phase starts soon after the completion of the Requirement Analysis
phase. In this phase the QA manager or QA Lead will prepare the Test
Plan and Test strategy documents. As per these documents they will also come up
with the testing effort estimations.
In this phase the QA team write test cases. They also write scripts for automation if
required. Verification of both the test cases and test scripts are done by peers.
Creation of Test Data is done in this phase.
Test cases
Test scripts (for automation if required)
Test Data
This phase includes the setup or installation process of software and hardware
which is required for testing the application. In this phase the integration of the
third party application is also carried out if required in the project.
After setting up the required software and hardware the installation of build is
tested. Once the installation of build is successful and complete then the Test Data
is generated.
After the creation of Test data the Smoke testing is executed on the build in order
to check whether the basic functionalities are working fine or not. This phase can
be done in parallel with the Test Case Development phase.
Before starting the Test Execution phase the Test Environment setup should be
ready. In Test Execution phase the test cases are executed in the testing
environment.
While execution of the test cases the QA team may find bugs which will be
reported against that test case. This bug is fixed by the developer and is retested by
the QA.
In order to start the Test Cycle Closure activity the Test Execution phase should be
completed. In Test Cycle phase the QA team will meet and discuss about the
testing artifacts.
The whole intent of this discussion is to learn lessons from the bad practices. This
will help in future projects.
To evaluate the test completion on the basis of Test Coverage and Software
Quality
Documentation of the learning from the project
Analyzing the test results to find out the distribution of severe defects
Test Closure Report preparation
Software Testing Life Cycle STLC is very similar to the the Software
Development Life Cycle SDLC.
When comparing STLC vs SDLC there are some key differences that are
observed.
SDLC STLC
feature, developers test the the entire application from end to end,
Project closure activity has a wider Scope of the Test closure activities are
scope since it looks at the over all limited to testing activities like evaluating
project to evaluate the results of the test completion, preparing test closure
Manual Testing – This is the oldest type of software testing where the testers
manually execute test cases without using any test automation tools. It means
the software application is tested manually by QA testers.
How to do :
5. Defect Logging
Verification Validation
It is a static analysis technique. Here, It is a dynamic analysis technique where
testing is done without executing the testing is done by executing the code.
code. Examples include – Reviews, Examples include functional and non-
Inspection, and walkthrough. functional testing techniques.
Q14. What’s the difference between a bug and a defect?
A bug is a just fault in the software that’s detected during testing time. A
defect is a variance between expected results and actual results, detected by
the developer after the product goes live.
What is the difference between manual testing and automation
testing?
There are a lot of cases when manual testing is best suited over automation testing,
like:
Phases Explanation
QA team understands the requirement in terms of what
Requirement Analysis
we will testing & figure out the testable requirements.
In this phase, the test strategy is defined. Objective &
Test Planning
the scope of the project is determined.
Here, detailed test cases are defined and
Test Case Development developed. The testing team also prepares the test data
for testing.
It is a setup of software and hardware for the testing
Test Environment Setup
teams to execute test cases.
It is the process of executing the code and comparing
Test Execution
the expected and actual results.
It involves calling out the testing team member meeting
& evaluating cycle completion criteria based on test
Test Cycle Closure
coverage, quality, cost, time, critical business objectives,
and software.
In case you are facing any challenges with these Manual Testing interview
questions, please comment on your problems in the section below.
Bug – A bug is a fault in the software that’s detected during testing time. They occur
because of some coding error and leads a program to malfunction. They may also
lead to a functional issue in the product. These are fatal errors that could block a
functionality, results in a crash, or cause performance bottlenecks
A good test engineer should have a ‘test to break’ attitude, an ability to take
the point of view of the customer
Strong desire for quality and attention to minute details
Tact and diplomacy to maintain a cooperative relationship with developers
Ability to communicate with both technical (developers) and non-technical
(customers, management) people
Prior experience in the software development industry is always a plus
Ability to judge the situations and make important decisions to test high-risk
areas of an application when time is limited
“Testing of a previously tested program to ensure that defects have not been
introduced or uncovered in unchanged areas of the software, as a result of the
changes made is called Regression Testing.”
A regression test is a system-wide test whose main purpose is to ensure that a small
change in one part of the system does not break existing functionality elsewhere in
the system. It is recommended to perform regression testing on the occurrence of
the following events:
What is black box testing, and what are the various techniques?
What is white box testing, and what are the various techniques?
Statement Coverage
Decision Coverage
Condition Coverage
Multiple Condition Coverage
Exploratory Testing
Error Guessing
What is the difference between smoke testing and sanity
testing?
With this, we have completed theory questions. In the next part of this Manual
Testing Interview Questions article, let’s discuss some real-world scenario-
based questions.