Chapter 2 Test Life Cycle Concepts v1.1
Chapter 2 Test Life Cycle Concepts v1.1
Page 1 of 28
Confidentiality Statement
This document should not be carried outside the physical and virtual boundaries of TCS and
its client work locations. Sharing this document with any person other than a TCS associate
would tantamount to violation of confidentiality agreement signed by you while joining
TCS.
Notice
The information given in this course material is merely for reference. Certain third party
terminologies or matter that may be appearing in the course are used only for contextual
identification and explanation, without an intention to infringe.
Certificate in Software Testing Skill TCS Business Domain Academy
Contents
Chapter-2 Test Life Cycle & Concepts .............................................................................4
2.1 What is Software Testing Life Cycle ....................................................................... 5
2.2 SDLC Vs STLC...................................................................................................... 15
2.3 V Model in software testing ................................................................................. 16
2.4 Main Types of Software Testing .......................................................................... 18
Summary ........................................................................................................................26
Page 3 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
Introduction
Software Testing is not a just an activity. It consists of series of activities carried out
systematically to help in certify your software product. These activities (stages) constitutes
the Software Testing Life Cycle (STLC). In other words the software testing life cycle is
basically a step-by-step process used for testing any software before it is believed fit for
final production. There is many types of testing software for various purposes.
This chapter will give you a basic understanding on software testing life cycle, V Model and
various types software testing.
Learning Objective
After reading this chapter, you will be able to understand:
• Software Testing Life Cycle
• SDLC & STLC
• V Model
• Types of testing
Page 4 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
Software Testing Life Cycle (STLC) defines the phases/stages/steps in testing of software.
However, there is no fixed standard STLC in the world.
Software Testing Life Cycle comprises of the following phases as shown in Figure 1.
Page 5 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
Requirement Analysis
In this requirement analysis phase, test team analyse the customer requirements from a
testing point of view to find the testable requirements. The project team may interact with
various stakeholders (like clients, Business analyst, System Architects and Technical Leads
etc.) to know the requirements in detail. Requirements could be either Functional or Non
Functional (defining system performance /security availability etc).Automation feasibility
also can be complete in this stage.
Review Defect report, Requirement Traceability Matrix and Automation feasibility report (if
applicable) are deliverable of this phase.
Activities carried out at the Test Strategy level are as given below. These details will be
documented in the Test Strategy document
• Identify suitable engagement and delivery model
• Define test objectives, scope of testing, testing phases and activities
• Define test organization and role and responsibility of individual in the organization
• Review business requirement and system requirements to identify test items
• Define testing process and procedures
• Establish configuration standards, defect management and change management
procedures
• Identify suitable testing tools, techniques and practices
• Identify components that carry higher risk and may require enhanced levels of
testing
• Evaluate feasibility for automating the application
• Define automation solution and identify suitable candidates for automation
A test plan is a organised approach to testing a system such as a machine or software. The
plan generally contains a full understanding of what the ultimate workflow will be. During
Test Planning phase the activities carried out in Test Strategy phase will be detailed and
more application specific data will be gathered.
Page 6 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
A task as extensive as testing requires careful planning. This planning and test preparation
starts as early as possible in the software project. The test policy of an organization and the
objectives, risks, and limitations of the project as well as the criticality of the product
influence the test plan.
In testing, a test plan offers complete testing information regarding an upcoming testing
effort, including scope of testing, schedule, Test deliverables, release criteria and risks and
contingencies etc.
Test plan template, based on IEEE 829 format contains below information
• Test Plan Identifier (TPI).
• References
• Test Items
• Introduction
• Software risk Issue
• Features to be tested
• Features not to tested
• Approach.
• Item Pass / Fail Criteria
• Entry & exit criteria
• Suspension criteria and resumption requirements
• Test deliverables
• Remaining test tasks
• Environmental needs
• Staffing and training needs
• Responsibilities
• Planning risks and contingencies
• Approvals
• Glossary
Test Plan, Test Estimation and Test Schedule are deliverable of this phase.
Page 7 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
Test Design
The test purposes established in the test plan should be decomposed into separate test
cases. Begin the process with high-level test objectives. These are decomposed into lower
and lower objectives until functional and structural test objectives are defined individually.
Once the test cases are written and reviewed by BAs and development team, changes are
notified to the QA test (if any), QA team makes necessary amends to complete design
phase.
The suggested process for the creation and use of test cases is a nine-step process as
follows:
• Identify test resources.
• Identify conditions to be tested.
• Rank test conditions.
• Select conditions for testing
• Determine correct results of processing
• Create test cases
• Document test conditions
• Conduct test
• Verify and correct
Test cases, Test Scripts, and Test Data are deliverable of this phase.
Page 8 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
Test environment ready with test data set up and smoke test result are deliverable of this
phase.
Test Execution
Test execution is most important phase in the STLC and also the entire software
development life cycle because every team/team member’s contribution and work gets
validated here.
• Has the Business Analyst interpreted the requirements correctly or not?
• Has the development team translated the business requirements to functional
requirement and ultimately to code correctly or not?
• Has the data Architect and DBA designed the right back end systems or not?
Page 9 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
• Except TRR, there are few more additional checks before we ensure that we can go
ahead with accepting the current build that is deployed in the QA environment for
test execution. Those are the smoke and sanity tests.
• The test cycle begin on successful completion of TRR, smoke and sanity test.
• Exploratory testing would be carried out once the build is ready for testing. The
purpose of this test is to make sure critical\serious defects are removed before the
next levels of testing can start. Exploratory testing is carried out in the application
without any test scripts and documentation.
• Like the other phases of the STLC , work is divided among team members in the
test execution phase based on module wise or test case count wise or anything else
that might make sense.
• The main outcome of the test execution phase is in the form of reports (defects
report and test execution status report, completed RTM with execution status).
Test Result (Incremental) and test report and completed RTM with execution status are
deliverable of this phase.
Page 10 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
Page 11 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
Test Results (Final), Test/ Defect Metrics, and Test Closure Report are deliverable of this
phase.
Test closer defect report and signoff are deliverable of this phase.
Page 12 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
Test data set up Map defects to test cases in RTM Defects Test cases
is done logged and updated
Retest the defect fixes tracked to with results
Unit/Integration closure
test report for Defect
the build to be reports
Page 13 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
Page 14 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
Page 15 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
• STLC team requires skilled developers and Testers. The efficiency demand is rather
high here in comparison to other parts of the SDLC module.
• STLC is also a part of the post release update cycle. The bug fixes and end user
reports are logged by the application. This log is checked and fixed while building
and releasing the new version of the software or Program module.
Verification Phases
• Requirements analysis
• System Design
Page 16 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
• Architecture Design
• Module Design
• Coding
Validation phases
• Unit Testing
• Integration Testing
• System Testing
• User Acceptance Testing
The V-model deploys a well-structured method in which each phase can be implemented by
the detailed documentation of the previous phase. Testing activities like test designing start
at the beginning of the project well before coding and therefore saves a huge amount of the
project time.
Page 17 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
In other words, Smoke test consists of nominal attempts to operate the software, designed
to determine whether there are any basic problems that will prevent it from working.
A sanity testing is a very brief rehearsal of the functionality of a computer program, system,
calculation, or other analysis, to assure that part of the system or methodology works
roughly as expected.
Load Testing
Software Load testing is the process of putting demand on a software system or computing
device and to measure its response under both normal and peak load conditions. Load
testing helps to identify the maximum operating capacities of an application and blockages
if any. Load testing is one of the performance testing technique. It falls under the class of
black box testing category.
Page 18 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
Performance testing
A Performance test, a non-functional testing technique, to determine the system
parameters in terms of responsiveness and stability under various workloads. Performance
test measures the quality attributes of the system, such as scalability, speed, reliability and
resource usage.
In performance testing, testers are testing to assess the speed and effectiveness of the
system and to ensure it is generating results within a specified time as in performance
requirements. Its falls under black box testing category.
Load testing, stress testing, Soak, Spick etc. are type of performance testing.
Jmeter, Open STA, Load Runner, Web Load etc. are tool for performance testing.
AD HOC Testing:
Ad hoc Test is a type of testing the system without any planning and documentation. Tests
are accompanied informally and randomly without any formal expected results.
The tester creates the steps and randomly to executes them (like a monkey typing while
dancing). However defects found using this method are more difficult to reproduce (since
there are no written test cases), sometimes very remarkable defects are found which would
never have been found if written test cases were strictly followed.
Page 19 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
The success of ad hoc testing depends on the creativity and persistence of the tester and of
course, luck.
Security testing
Security Testing intends to expose vulnerabilities of the system and determine that its data
and resources are protected from possible attackers. In other words, Security testing is a
testing technique to determine if an information system protects data and maintains
functionality as planned. Security testing is non-functional testing.
It verifying 6 basic principles listed below:
• Confidentiality
• Integrity
• Authentication
• Authorization
• Availability
• Non-repudiation
Page 20 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
Apart from this Armorize CodeSecure, GrammaTech, Appscan, Veracode etc. are
commercial testing tool.
Usability testing
Usability Testing done from an end user's standpoint to check if the system is easily usable
and it is non-functional testing technique. It is very difficult to evaluate and measure but can
be appraised based on the below parameters
• Level of Skill required to use/learn the software. Software should maintain the
balance for both novice and expert user.
• Time required to get used to in using the software.
• The measure of increase in user productivity if any.
• Assessment of a user's attitude towards using the software.
Usability Testing is generally performed during System Testing and Acceptance Testing
levels.
Usability Testing is a type of testing done from an end-user’s standpoint to determine if the
system is easily usable.
ISTQB’s Definition: Usability testing is a Testing to determine the extent to which the
software product is understood, easy to learn, easy to operate and attractive to the users
under specified conditions.
The purpose of this event is to review the application user interface and other human
factors of the application with the people who will be using the application. This is to
guarantee that the design (layout, sequence, etc.) enables the business functions to be
executed as easily and intuitively as possible.
Below Figure illustrates Usability Testing Processes
Page 21 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
Stress Testing
Stress testing is one of the performance testing technique. In stress testing, system is
stressed beyond its conditions to check how and when it fails. It’s performed under heavy
load like putting large number outside storage capacity, complex database queries,
continuous input to system or database load. This testing is generally used to understand
the upper limits of capacity of system. This type testing is to perform to check the system
strength in terms of extreme load and to help application administrators to check that the
system will perform satisfactorily if load goes above the expected maximum load. It fall
under Black box testing category.
Compliance Testing
Compliance Testing is a type of testing to determine the compliance of a system with
internal or external standards. It’s also known as conformance testing, regulation testing,
standards testing.
Accessibility testing
Accessibility testing one of the technique of usability testing where in the users under
consideration are people with all abilities and disabilities. The significance of this testing is
Page 22 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
Acceptance Testing
Acceptance testing is done to check if system meets the customer specified requirements.
User or customer do this type of testing in their environment to determine whether to
accept application or not. User acceptance testing, Business acceptance testing, Alpha and
Beta testing are forms of acceptance testing. Acceptance testing activities are designed to
reach on of the below conclusions
• Accept the system as delivered
• Accept the delivered system after requested modifications have been made.
• Do not accept.
Internationalization testing
Internationalization testing is a testing to check the application under test to work
consistently across multiple regions and cultures. It is very difficult to survives any product
in current world if is not supporting regional languages and stick with only one location.
Product developed in one location are used all over world with different languages and its
standards, rise the need of this type of testing.
Page 23 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
Internationalization Checklists:
• Testing to check if the product works across settings.
• Verifying the installation using various settings.
• Verify if the product works across language settings and currency settings.
Alpha testing
It is simulated or actual operational testing by potential customers/users or an independent
test team at the developers' site.
Beta Testing
Beta testing is the testing which is done by end users, a team outside development, or
publicly releasing full pre-version of the product which is known as beta version. The aim of
beta testing is to cover unexpected errors. It falls under the class of black box testing.
Parallel Testing
A test where the existing and new systems are operated in parallel and the before-and-after
results are compared.
Regression Testing
Testing of a formerly verified application following modifications for extension or correction
to ensure now new defects have been introduced. It is estimated that 20-50% of system
enhancements and repairs introduce new defects to the application. A Full Regression
testing is executed when multiple changes have been made to critical components of the
application.
A test to ensure that all unchanged functions still operate as expected after a change has
been introduced. Regression testing is used to validate that everything will work together
after all changes and fixes have been made.
Page 24 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
Recovery Testing
Testing how well a system recovers from crashes, hardware failures, or other disastrous
problems. Recovery testing evaluates the contingency features built into the application for
handling interruptions, and for returning to specific points in the application processing.
Any backup, restoration, and restart capabilities are also tested here. This test may be
conducted by the test team during system test.
Install/Uninstall Testing
This type of testing is performed for full, partial, or upgrade installation/uninstallation
processes on different operating systems under different hardware, software environment.
Page 25 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
Summary
• Software Testing Life Cycle process is an integral part of the Software Development
Life Cycle.
• Software Testing Life Cycle (STLC) defines the phases/stages/steps in testing of
software. However, there is no fixed standard Software Testing Life Cycle (STLC) in
the world.
• Requirement Analysis: In this phase, test team analyse the customer requirements
from a testing point of view to identify the testable requirements.
• Review Defect report, Requirement Traceability Matrix and Automation feasibility
report (if applicable) are deliverable of Requirement Analysis phase.
• Test Strategy & Planning: Test Analyst/Manager will prepare the Test Strategy and
Test Plan documents.
• Test Plan, Test Estimation and Test Schedule are deliverable of Test Strategy &
planning phase.
• Test Design: The test objectives established in the test plan should be decomposed
into individual test cases. Begin the process with high-level test objectives.
• Test Cases, Test Scripts, and Test Data are deliverable of Test Design phase.
• Test Environment Setup: Setup the test environment (server/ client/ network, etc)
with the goal of replicating the end-users’ environment. It is one of the critical
aspects of testing process and can be done parallel with Test case development
stage.
• Test Environment ready with test data set up and Smoke Test result are deliverable
of Test Environment Setup phase.
• Test Execution: Test execution is most important phase in the STLC and also the
entire software development life cycle because every team/team member’s
contribution and work gets validated here.
• Test Result (Incremental) and test report and completed RTM with execution status
are deliverable of Test Execution phase.
• Defect Reporting & Tracking: Testers generate a formal defect report ,after finding
a defects (bugs) in the application under test or by product testing or recording
feedback from customers and building new version of the product that fix defects.
• Test Results (Final), Test/ Defect Metrics, and Test Closure Report are deliverable of
Defect Reporting & Tracking phase.
Page 26 of 28
Certificate in Software Testing Skill TCS Business Domain Academy
• Test Project Closer: Once the test meets the exit criteria, the activities such as
capturing the key outputs, lessons learned, results, logs, documents related to the
project are archived and used as a reference for future projects.
• Test closer defect report and signoff are deliverable of Test Project Closer phase.
• Various testing techniques were defined and various kinds of testing were clearly
separated from each other which led to the waterfall model evolving into the V-
model.
• Load Testing: Software Load testing is the process of putting demand on a software
system or computing device and measuring its response under both normal and
peak load conditions.
• Performance testing: Performance testing, a non-functional testing technique, to
determine the system parameters in terms of responsiveness and stability under
various workload.
• AD HOC Testing: Ad hoc Testing is a type of testing the system without any
planning and documentation. Tests are conducted informally and randomly without
any formal expected results.
• Security testing: Security Testing intends to uncover vulnerabilities of the system
and determine that its data and resources are protected from possible invaders.
• Usability testing: Usability Testing done from an end user's perspective to check if
the system is easily usable and it is non-functional testing technique.
• Compliance Testing: Compliance Testing is a type of testing to determine the
compliance of a system with internal or external standards.
• Accessibility testing: Accessibility testing one of the technique of usability testing
where in the users under consideration are people with all abilities and disabilities.
• Acceptance Testing: Acceptance testing is done to verify if system meets the
customer specified requirements.
• Regression Testing: A test to ensure that all unmodified functions still operate as
expected after a change has been introduced.
• Install/Uninstall Testing: This type of testing is performed for full, partial, or
upgrade install/uninstall processes on different operating systems under different
hardware, software environment
Page 27 of 28