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

Interview

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Interview

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

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.
Stages of SDLC:
 Planning
 Designing
 Developing
 Testing
 Maintenance

1. Planning and analysis

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.

2. Designing the product architecture

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.

3. Developing and coding

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

In a post-production, live software environment, the system is in maintenance mode. No


matter the number of users, the sophistication of the software and rigorous QA testing, issues
will occur. That’s the nature of software with managing data, integration, and security, and
real world usage. Access to knowledgeable, reliable support resources is essential, as is
routine maintenance and staying up to date on upgrades.

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.

6 STLC Phases are given below:

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.

STLC Life Cycle Phase Details

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.

Activities to be done in Requirement analysis phase are given below:

 Analyzing the System Requirement specifications from the testing point of


view
 Preparation of RTM that is Requirement Traceability Matrix
 Identifying the testing techniques and testing types
 Prioritizing the feature which need focused testing
 Analyzing the Automation feasibility
 Identifying the details about the testing environment where actual testing
will be done

Deliverables (Outcome) of Requirement analysis phase are:

 Requirement Traceability Matrix (RTM)


 Automation feasibility report

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.

Activities to be done in Test Planning phase are given below:

 Estimation of testing effort


 Selection of Testing Approach
 Preparation of Test Plan, Test strategy documents
 Resource planning and assigning roles and responsibility to them
 Selection of Testing tool

Deliverables (Outcome) of Test Planning phase are:

 Test Plan document


 Test Strategy document
 Best suited Testing Approach
 Number of Resources, skill required and their roles and responsibilities
 Testing tool to be used
Test Case Development

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.

Activities to be done in Test Case Development phase are given below:

 reation of test cases


 Creation of test scripts if required
 Verification of test cases and automation scripts
 Creation of Test Data in testing environment

Deliverables (Outcome) of Test Case Development phase are:

 Test cases
 Test scripts (for automation if required)
 Test Data

Test Environment setup

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.

Activities to be done in Test Environment Setup phase are given below:

 As per the Requirement and Architecture document the list of required


software and hardware is prepared
 Setting up of test environment
 Creation of test data
 Installation of build and execution of Smoke testing on it

Deliverables (Outcome) of Test Environment Setup phase are:

 Test Environment setup is ready


 Test Data is created
 Results of Smoke testing
Test Execution

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.

Activities to be done in Test Execution phase are given below:

 Execution of Test Cases


 Reporting test results
 Logging defects for the failed test cases
 Verification and retesting of the defect
 Closure of defects

Deliverables (Outcome) of Test Execution phase are:

 Test execution Report


 Updated test cases with results
 Bug Report

Test Cycle Closure

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.

Activities to be done in Test Cycle Closure phase are given below:

 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

Deliverables (Outcome) of Test Cycle Closure phase are:

 Report of Test Closure


STLC and SDLC

Software Testing Life Cycle STLC is very similar to the the Software
Development Life Cycle SDLC.

 STLC is a segment or a subset or a part of the SDLC


 SDLC is used to plan and execute the development of the software project
while the scope of STLC is limited to testing activities
 In both STLC and SDLC, the activities are executed one after the other
 Both STLC and SDLC phases have entry and exit criteria to be fulfilled
before entering or leaving a phase

Difference between – STLC vs SDLC

When comparing STLC vs SDLC there are some key differences that are
observed.

SDLC STLC

Software Development Life Cycle –


Software Testing Life Cycle governs only
SDLC can be used for planning,
the testing and quality related activities of
implementation and release of the
the project
entire software development project

SDLC is much larger than STLC STLC is a part of SDLC

QA teams analyze requirements from


Development teams go through the
testing perspective to understand what
requirements and analyze it to
needs to be tested, what kind of scenarios
understand how to design, implement
need to be tested, how the user will use
and architect it
the system and where they could face
issues etc

Software development models and


Model to be followed for testing is
methodologies are decided in SDLC,
decided. Test plan and test strategy are
project planning is done. Architecture
finalized by the Test Manager and Test
and design are produced by the
Lead.
architect.

Development teams work on the


Testing team members work on
implementation and coding of the
developing test cases and test scripts
software

In development phase in SDLC, once

development is completed on a During test execution in STLC, testers test

feature, developers test the the entire application from end to end,

functionality they have developed, as testing all features and functionalities

part of unit testing

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

project, getting project acceptance, report, analyzing test results, documenting


documenting lessons learnt etc / sharing lessons learnt etc.

What is manual testing?

 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.

What is software testing?

Software Testing is a process used to identify the correctness, completeness, and


quality of developed software. It includes a series of activities conducted with the
intent of finding errors in software so that it could be corrected before the product is
released to the market.

Explain the difference between alpha testing and beta testing.

 Alpha Testing – It is a type of software testing performed to identify bugs


before releasing the product to real users or to the public. Alpha Testing is a
type of user acceptance testing.
 Beta Testing – It is performed by real users of the software application in a
real environment. Beta Testing is also a type of user acceptance testing.

What are the different levels of manual testing?

Four levels of manual testing are:

 Unit testing – It is a way of testing the smallest piece of code referred to as


a unit that can be logically isolated in a system. It is mainly focused on the
functional correctness of the standalone module.
 Integration Testing – It is a level of software testing where individual units
are combined and tested to verify if they are working as they intend to when
integrated. The main aim here is to test the interface between the modules.
 System Testing – In system testing all the components of the software are
tested as a whole in order to ensure that the overall product meets the
requirements specified. There are dozens of types of system testing, including
usability testing, regression testing, and functional testing.
 User Acceptance Testing – The final level, acceptance testing, or UAT (user
acceptance testing), determines whether or not the software is ready to be
released.

Explain the procedure for manual testing?

The manual testing process comprises the following steps:

 Planning and Control


 Analysis and Design
 Implementation and Execution
 Evaluating exit criteria and Reporting
 Test Closure activities

How to do :

1. Requirement Analysis: FSd Documents : such as requirements,


design specifications, product risk analysis, architecture and
interfaces

2. Test Plan Creation: Scope , Resources people ,to Schedule test


analysis, design tasks, test implementation, execution and
evaluation.

3. Test case Creation: test Cases

4. Test case Execution :

5. Defect Logging

6. Defect Fix & Re-Verification

 Analyze requirements from the software requirement specification document


 Create a clear test plan
 Write test cases that cover all the requirements defined in the document
 Get test cases reviewed by the QA lead
 Execute test cases and detect any bugs
 Report bugs, if any, and once fixed, run the failed tests again to re-verify the
fixes
 Q13. What’s the difference between verification and validation in
testing?

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?

Manual Testing Automation Testing


In manual testing, the accuracy, and Automated testing, on the other hand, is
reliability of test cases are low, as manual more reliable as tools and scripts are
tests are more prone to human error. used to perform tests.
The time required for manual testing is
The time required is comparatively low
high as human resources perform all the
as software tool execute the tests
tasks.
In manual testing investment cost is low,
In automation testing investment cost
but Return of Investment(ROI) is low as
and Return of Investment, both are high.
well.
Manual testing is preferred when the test You can use test automation
cases are run once or twice. Also suitable for Regression Testing, Performance
for Exploratory, Usability and Adhoc Testing, Load Testing or highly
Testing. repeatable functional test cases
Allows for human observation to find out
As there is no human observation
any glitches. Therefore manual testing
involved, there is no guarantee of
helps in improving the customer
positive customer experience.
experience.
When should you opt for manual testing over automation testing?

There are a lot of cases when manual testing is best suited over automation testing,
like:

 Short-time projects: Automated tests are aimed at saving time and


resources yet it takes time and resources to design and maintain them. For
example, if you are building a small promotional website, it can be much more
efficient to rely on manual testing.
 Ad-hoc Testing: In ad-hoc testing, there is no specific approach. Ad-hoc
testing is a totally unplanned method of testing where the understanding and
insight of the tester is the only important factor. This can be achieved using
manual testing.
 Exploratory Test: This type of testing requires the tester’s knowledge,
experience, analytical, logical skills, creativity, and intuition. So human
involvement is important in exploratory testing.
 Usability Testing: When performing usability testing, the tester needs to
measure how user-friendly, efficient, or convenient the software or product is
for the end-users. Human observation is the most important factor, so manual
testing sounds seems more appropriate.
 What are the phases involved in Software Testing Life Cycle?
 The different phases involved in the software testing life cycle are:

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.

What is the difference between a bug, a defect and an error?

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

Defect – A defect is a variance between expected results and actual results,


detected by the developer after the product goes live. The defect is an error found
AFTER the application goes into production. In simple terms, it refers to several
troubles with the software products, with its external behavior, or with its internal
features.

Error – An error is a mistake, misunderstanding, or misconception, on the part of a


software developer. The category of developers includes software engineers,
programmers, analysts, and testers. For example, a developer may misunderstand a
design notation, or a programmer might type a variable name incorrectly – leads to
an error. An error normally arises in software, it leads to a change the functionality of
the program.

Q22. What makes a good test engineer?

A software test engineer is a professional who determines how to create a process


that would best test a particular product in the software industry.

 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

Q23.What is regression testing? When to apply it?

“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:

 When new functionalities are added


 In case of change requirements
 When there is a defect fix
 When there are performance issues
 In case of environment changes
 When there is a patch fix

What is black box testing, and what are the various techniques?

Black-Box Testing, also known as specification-based testing, analyses the


functionality of a software/application without knowing much about the internal
structure/design of the item. The purpose of this testing is to check the functionality
of the system as a whole to make sure that it works correctly and meets user
demands. Various black-box testing techniques are:
 Equivalence Partitioning
 Boundary Value Analysis
 Decision Table Based Technique
 Cause-effect Graphing
 Use Case Testing

What is white box testing, and what are the various techniques?

White-Box Testing also known as structure-based testing, requires a profound


knowledge of the code as it includes testing of some structural part of the
application. The purpose of this testing is to enhance security, check the flow of
inputs/outputs through application and to improve design and usability. Various
white-box testing techniques are:

 Statement Coverage
 Decision Coverage
 Condition Coverage
 Multiple Condition Coverage

What are the Experience-based testing techniques?

Experienced-based testing is all about discovery, investigation, and learning. The


tester constantly studies and analyzes the product and accordingly applies his skills,
traits, and experience to develop test strategies and test cases to perform necessary
testing. Various experience-based testing techniques are:

 Exploratory Testing
 Error Guessing
 What is the difference between smoke testing and sanity
testing?

Features Smoke Testing Sanity Testing


Tests are done on builds that
Tests are executed on initial
System Builds have passed smoke tests &
builds of software product
rounds of regression tests
To measure the stability of the To evaluate rationality &
Motive of
newly created build to face off originality of the functionalities of
Testing
more rigorous testing software builds
Subset of? Is a subset of acceptance testing Is a subset of regression testing
Involves documentation and Doesn’t emphasize any sort of
Documentation
scripting work documentation
Shallow & wide approach to
Narrow & deep approach
include all the major
Test Coverage involving detailed testing of
functionalities without going too
functionalities and features
deep
Executed by developers or
Performed By? Executed by testers
testers
 Q38. What is the difference between static testing and dynamic
testing?

Static Testing Dynamic Testing


Static Testing is a white box testing Dynamic testing includes the process of
technique, it includes the process of execution of code and is done at the later
exploring the records to recognize the stage of the software development
imperfections in the very early stages of lifecycle. It validates and approves the
SDLC. output with the expected results.
Static Testing is implemented at the Dynamic testing starts during the
verification stage. validation stage.
Static testing is performed before the Dynamic testing is performed after the
code deployment. code deployment
The code error detection and execution of
the program is not a concern in this type Execution of code is necessary for
of testing. dynamic 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.

You might also like