STLC Means "Software Testing Life Cycle". It Involves Following Stages
STLC Means "Software Testing Life Cycle". It Involves Following Stages
3) Designing
5) Integration testing
6) System testing
8) Support or maintenance
2) Analysis of Tests
3) Designing of Tests
Every company follows its own software testing life cycle to suit its own requirements,
culture & available resources. The software testing life cycle can’t be viewed in isolation,
rather it interacts with the every phase of Software Development Life Cycle (SDLC). Prime
focus of the software testing life cycle is on managing & controlling all activities of software
testing. Testing might be manual testing or an automated testing using some tool.
1) Planning of Tests:
In this phase a senior person like the project manager plans & identifies all the areas where
testing efforts need to be applied, while operating within the boundaries of constraints like
resources & budget. Unless judicious planning is done in the beginning, the result can be
catastrophic with emergence of a poor quality product, dissatisfying the ultimate customer.
Planning is not limited just to the initial phase, rather it is a continuous exercise extending
till the end.
During the planning stage, the team of senior level persons comes out with an outline of
Testing Plan at High Level. The High Level Test Plan comprehensively describes the
following:
2) Analysis of Tests:
Based upon the High Level Test Plan Document, further nitty-gritty’s covering the following
are worked out.
The Software project can’t be successful unless there is frequent interaction among various
teams involved in Coding & Testing with the active involvement of the Project Managers,
Business Analysts or even the customer. Any deficiencies in the decided test plans come to
the surface, during such meetings of cross-functional teams. This provides an opportunity to
have a rethinking & refining the strategies decided for testing.
Based upon the customer requirements a detailed matrix for functional validation
is prepared to cover the following areas:
Ensure that each & every business requirement is getting covered through some test
case or the other.
Identification of the test cases best suited to the automated testing
Identification of the areas to covered for performance testing and stress testing
Carry out detailed review of documentation covering areas like Customer
Requirements, Product Features & Specifications and Functional Design etc.
3) Designing of Tests:
This phase involves the following:
Completion of test cycles by executing all the test cases till a predefined stage
reaches or a stage of no detection of any more errors reach.
This is an iterative process involving execution of Test Cases, Detection of Bugs, Bug
Reporting, Modification of test cases if felt necessary, Fixing of bugs by the
developers & finally repeating the testing cycles.
Winding up of the test environment & restoration of all test equipment to the original base
line conditions.
($) Creation of
Test Cases
($) Detailed
documentation
Software products, which don’t happen to be user friendly just, don’t find any place in a
highly competitive market of this modern era, although they might have been developed
with the help of the best available technology. The ease of use of the product is of
paramount importance compared to its internal technology, which the customer is not going
to see.
Thus for the creation of Innovative Software products, the Development Life Cycle
undergoes six phases like:
1) Initial Phase
2) Analysis Phase
3) Design phase
4) Coding Phase
5) Testing Phase
6) Delivery and Maintenance phase
Phase – 1: Initial Phase: Involves Interaction with the customer and capturing all the
requirements.
Process Involved: This phase begins with a technical meeting between the Business
Analyst & the customer. The Business Analyst (BM) understands all the requirements from
the customer & prepares comprehensive requirements document with the help of standard
templates & check sheets used by the company. The requirements document forms the
basis for further study & action by the Engagement Manager (EM).
The Engagement Manager tries to hunt for extra requirements if any, which might not be
apparent immediately but might involve extra cost. To resolve ambiguous requirements if
any, the Engagement Manager organizes demonstration of a prototype if necessary. Such
action of quick demonstration of a prototype, which is nothing but a rapidly developed
model for the customer is found extremely helpful to remove ambiguities from the
requirements on one hand & help winning the confidence of the customer on the other.
Depending upon the system followed by various companies, sometimes a single document is
maintained, while some companies may go in for two documents. In this case, Broad /
outlining information is recorded in the BRS (Business Requirement Specification), while
detailed information is recorded in FRS (Functional Requirement Specification).
Process Involved: To understand the nature of the program to be developed, the System
Annalist focuses on understanding the information domain of the software, its necessary
functions, behaviors, performance and necessary interfaces etc. The major objective of the
analysis phase is to find out the need and to define the problem, which needs to be solved.
2) Broad Planning: Involves an outline document on planning of all resource and time
wise planning.
3) Technology Selection: Involves identification, analysis & compilation of various tools &
technologies, which would be needed to accomplish the project successfully.
Ultimate objective of this phase is to prepare a most comprehensive document called SRC
or Software Requirement Specification.
Phase – 3: Design Phase: Involves hard core design activities like 1) HLD - High Level
Designing & 2) LLD - Low Level Designing
Process Involved: The Chief Architect – CA, starts The entire designing process. This
involves subdivision of the entire project into various modules & the process is adequately
explained with the help of flow charts & diagrams. Thereafter, the Technical Lead – TL
further subdivides these main Modules into sub modules with the help of Unified Modeling
Language - UML. The technical lead is responsible for creating the Pseudo Code which is a
comprehensive set of instructions written in English language & are meant for guiding the
actual code developers.
Process Involved: The design needs to be translated into a machine-readable form. There
comes the process of code generation. With the help of Pseudo Code written by the
Technical Lead – TL during the Design Phase, Developers carry out the development of the
actual source code. The entire coding process is bound by stipulated coding standards
defined by the company.
Phase – 5: Testing Phase: Involves rigorous testing of the application developed by the
programmers.
Process Involved: Different testing methodologies are practiced to detect the software
bugs, which happen to take birth during the previous phases. Various testing tools and
methodologies are available these days. Some companies create their own testing tools,
which are custom made to suit their own development functions.
# In fact the testing process begins right from the customer requirement document. A good
test engineer starts his work by thorough study of the requirement document. In case of
any doubt arising during understanding of customer requirements, the test engineer raises
a Review Report –RR, which contains details of all the doubts.
# Having clarified all the doubts & ambiguities, and after having a thorough understanding
of the requirements, the test engineer shall write the test cases with the help of company
specific test case templates.
# Execution of the test cases upon the release of the first build by the developers. This
follows recording of defects in a defect profile document.
# The entire testing process involving execution of test cases is repeated on the new build.
This process of code improvement, subsequent testing on new builds & finding of defects
continues again and again till the product is free from defects.
Phase – 6: Delivery and Maintenance phase: Involves Installing the newly developed
application under the client environment.
Personnel Involved: Senior Testing Engineers who are entrusted the task of Deployment
Engineers.
Process Involved:
# Delivery: After the code is appropriately tested, it is approved for release, it is deployed
into a production environment. The deployment of application is done with the help of
guidelines provided in the application deployment document.
# Maintenance: After the deployment of the application, client may encounter many task-
based problems.
Maintaining and enhancing the software to cope up with newly discovered problems or new
requirements can take far more time than the initial development of the software. It may be
necessary to add some code, which does not fit the original design to correct an unforeseen
problem. It may be that the customer is requesting more functionality, and some code can
be added to take care of his requests.