ST_Unit1
ST_Unit1
Testing
(UNIT 1)
Software Testing -Introduction
Software testing is an important process in the software development
lifecycle .
It involves verifying and validating that a software application is free
of bugs, meets the technical requirements set by its design and
development , and satisfies user requirements efficiently and
effectively.
This process ensures that the application can handle all exceptional
and boundary cases, providing a robust and reliable user experience.
By systematically identifying and fixing issues, software testing helps
deliver high-quality software that performs as expected in various
scenarios.
We can say that in the era of software testing, the terms bugs,
defects, error, fault, and failure come across every second of the day.
Software Testing
Software Testing is a method to assess the functionality of the
software program.
Software Testing is the process checks whether the actual software
matches the expected requirements and ensures the software is bug-
free.
The purpose of software testing is to identify the errors, faults, or
missing requirements in contrast to actual requirements.
It mainly aims at measuring the specification, functionality, and
performance of a software program or application.
Necessity Of Testing
Defects can be identified early: Software testing is important
because if there are any bugs they can be identified early and can be
fixed before the delivery of the software.
To find the defect in the software, early test activity shall be started.
The defect detected in the early phases of SDLC will be very less
expensive.
For better performance of software, software testing will start at the
initial phase i.e. testing will perform at the requirement analysis
phase.
To perform testing, we will require the requirement specification
documents; therefore, if the requirements are defined incorrectly,
then it can be fixed directly rather than fixing them in another stage,
which could be the development phase.
Testing Principles – 4) Defect Clustering
Requirement Analysis
Test Plan Creation
Test Case Development
Environment setup
Test case Execution & Defect Logging
Test Cycle Closure
STLC – Software Testing Life Cycle
STLC – 1) Requirement Analysis
Requirement Analysis is the first step of the Software Testing Life
Cycle (STLC).
In this phase quality assurance team understands the requirements
like what is to be tested.
If anything is missing or not understandable then the quality
assurance team meets with the stakeholders to better understand the
detailed knowledge of requirements.
At the end of this stage, the testing team should have a clear
understanding of the software requirements and should have
identified any potential issues that may impact the testing process.
STLC – 1) Requirement Analysis
The activities that take place during the Requirement Analysis
stage include:
Exit Criteria:
Requirement traceability matrix (RTM) – It is a document that maps
and traces user requirements with test cases that reflects the
coverage.
Automation Feasibility Document( If required)
STLC – 2) Test Planning
Test Planning is the most efficient phase of the software testing life
cycle where all testing plans are defined.
In this phase manager of the testing, team calculates the estimated
effort and cost for the testing work.
This phase gets started once the requirement-gathering phase is
completed.
The quality assurance professional will prepare a test plan. As “what
needed to be tested” is determined, the QA Lead /QA Team will
prepare estimates for work (time) and determine a test strategy.
Basically, it’s a phase where we determine the types of testing
needed, test tool selection, time and / Effort required, and resource
requirements.
STLC – 2) Test Planning
The activities that take place during the Test Planning stage include:
Exit Criteria:
Approved Test Plan document, Testing Techniques, Timeline, Cost,
Risks, and Resource allocation.
STLC – 3) Test Case Development
The test case development phase gets started once the test planning
phase is completed.
In this phase testing team notes down the detailed test cases.
The testing team also prepares the required test data for the testing.
When the test cases are prepared then they are reviewed by the
quality assurance team.
At the end of this stage, the testing team should have a set of
comprehensive and accurate test cases that provide adequate
coverage of the software or application.
STLC – 3) Test Case Development
The activities that take place during the Test Case Development
stage include:
Identifying the test cases that will be developed
Writing test cases that are clear, concise, and easy to understand
Creating test data and test scenarios that will be used in the test
cases
Identifying the expected results for each test case
Reviewing and validating the test cases
Updating the requirement traceability matrix (RTM) to map
requirements to test cases
STLC – 3) Test Case Development
Entry Criteria :
Approved Test Plan document, Timeline, Cost, Risks, and Resource
allocation
Requirement Traceability Matrix
Exit Criteria:
Test Case Documentation/Test Script
Identified Test Data
STLC – 4) Environment Setup
Test environment setup is a vital part of the STLC.
Basically, the test environment decides the conditions on which
software is tested. Test Environment Setup determines the software
and hardware conditions under which the system is tested.
This is independent activity and can be started along with test case
development.
In this process, the testing team is not involved. either the
developer or the customer creates the testing environment.
However, QA performs a smoke test (i.e., High-level testing to
confirm that the environment is blocker free and is ready for
testing) to check the readiness of the environment for testing.
STLC – 4) Environment Setup
Entry Criteria :
Test strategy and test plan document.
Test case document.
Testing data.
Environment set-up plan (if any)
Exit Criteria:
Environment ready with test data set up
Smoke Test Report
STLC – 5) Test Execution
Test execution is the actual phase where the features are tested.
Testers start executing the test cases/Test script against the build to
validate its behavior.
Test case executions are done either manually or using automation
tools.
The defects found on testing the build are logged as bugs and
reported to the developer and a bug report is submitted on the same.
Based on it Test cases /Test procedures status are updated (e.g.,
Status – New, Pass, Fail, Rejected, blocked, closed, etc.)
STLC – 5) Test Execution
The activities that take place during the test execution stage of the
Software Testing Life Cycle (STLC) include:
Test execution: The test cases and scripts created in the test design
stage are run against the software application to identify any defects
or issues.
Defect logging: Any defects or issues that are found during test
execution are logged in a defect tracking system, along with details
such as the severity, priority, and description of the issue.
Test data preparation: Test data is prepared and loaded into the
system for test execution
Test environment setup: The necessary hardware, software, and
network configurations are set up for test execution
STLC – 5) Test Execution
The activities that take place during the test execution stage of the
Software Testing Life Cycle (STLC) include:
Test execution: The test cases and scripts are run, and the results are
collected and analyzed.
Test result analysis: The results of the test execution are analyzed to
determine the software’s performance and identify any defects or
issues.
Defect retesting: Any defects that are identified during test execution
are retested to ensure that they have been fixed correctly.
Test Reporting: Test results are documented and reported to the
relevant stakeholders.
STLC – 5) Test Execution
Entry Criteria:
Test strategy and test plan document.
Test case document.
Testing data.
Testing Environment
Testing Tool(if any)
Exit Criteria:
Test Case -Execution Result
RTM with execution status
Defect Report
STLC – 6) Test Closure
This is the final phase which delivers a complete test result report.
It involves a summary of the entire Testing process – Objectives met,
Test Case Execution Report, Test coverage, Defect Report, Time
taken, Cost, etc.
The main objective of the test closure stage is to ensure that all
testing-related activities have been completed and that the software
is ready for release.
At the end of the test closure stage, the testing team should have a
clear understanding of the software’s quality and reliability, and any
defects or issues that were identified during testing should have been
resolved. The test closure stage also includes documenting the testing
process and any lessons learned so that they can be used to improve
future testing processes
STLC – 6) Test Closure
Entry Criteria:
Test Execution Report, Defect Report
Exit Criteria:
Test Closure Report
Summary Report
Types Of Testing
There are two different types of software testing currently used in the
industry both have their own advantages and disadvantages.