Hello Friend, In this post we will be discussing about the Software, Software Development Life Cycle and each phases associated to it. In the last post, we have discussed about SoftwareTesting.
Lets start off Jouney in Software Testing hence including basic terms used and their meaning so that a Beginner(like me few years back) can get along.
Table of contents
What is Software?
Software is collection of computer programs,
data or instructions that accomplish a defined tasks.
It contains procedures and routines linked with
Operation of Computer System.
What is Hardware?
On the hand, Hardware -a physical system
component which are connected to perform a task. For eg: Monitor for display,
Router for Internet connectivity.
We can say Hardware is Physical entity or
computer parts which we can see and connect to make computer system perform as
desired. And Software is Logical entity which can be installed or configured
after we have all Hardware in Place.
Types of Software:
1. 1.System Related Software: Software which are used to run the computer on basic level
like Operating system. Without OS a user cannot work and load any files in the
computer. Many other System Related Software are required and considered to be
the Pre-requiste for a working machine like Device drivers, File System.
2. 2.Programming Software: Software which are
required for running and building a application. When we code a program on our
local machine to execute we need respective Compiler. Examples of programming
software are: Interpreter, compiler.
3. 3.Application Software: Software made to run any
Web Application like browser, Net-banking and Mobile app like Swiggy ola,
Desktop application like – SQL, Notepad
Software Development Life Cycle (SDLC)
ISO/IEC 12207 is an
international standard for software life-cycle processes. It is the standard
that defines all the tasks required for developing and maintaining software.
A set of phases used to Plan, Create,Develop, Test,Integrate and Deploy an information system.
It can be also called as Application
Development Life Cycle.
It mainly aim to deliver high quality with
meeting customer expectation based on customer requirement.
Each phase of the SDLC has specific activities
and method followed and recorded.
![]() |
Why SDLC?
We should be a standard which help to do
development in disciplined manner.
This enables every phase of the SDLC clear
understanding about what are activities ongoing and responsibilities of the
team member to finish
This also help in better understand what the ETA
to finish a task assigned.It help to decide entry and exit criteria for each
phases.
Stages of SDLC
1.Requirement Analysis and Planning
Requirements or Product related customer
expectation is recorded in this Phase. Generally in this phase all the team
member but most importantly the senior technical team and project management
member discuss with Client to understand the requirement and what are the
expectation in terms of what function it should, what are the user it targets
to , what is the environment it should work and what is the technical
technologies they expect the product/service to be developed.
Once the Requirement is recorded or understood then analysis is done to understand the feasibility to develop the product.Then round of discussion is done to finalise what is achievable and discussed with the customer. Finally with agreement from both parties project development team and Client Software Requirement Specification document is created with is base reference to all project development, Testing team and also for Customer. Based on this document, design and development activities are carried forward.
2.Design Phase
After lots of discussion and clarification finally we have a approved set of requirements from Software Requirement Specification 😊 So what we waiting for....
We now know how to kick start with. So comes
the design which decides what archeitecture to be used and how functionality to
be development accordingly to archeitecture. In this phase project archeiture
and UI designs are planned.
We have two types of artifacts made:
1.High -Level-Design-Generally archeitect
develop this document.All the flow related, what are the backend, to middle
ware communication, API used are discussed in this document.
2.Low-level-Design-Senior developers or team
member take care of this document. Here we discuss internal flow for each
features
3.Development/Implementation
1.In this phase based on Design documents
development start coding and building the product.
2.All the requirement are broken down into small
features which can be achievable.
3.Based of the Software model company decided
the releases are discussed and implemented.
4.Based on the agreement, many a times a POC is
shared for some important features with client to understand their review.
4.Testing
All the developed features in thisphase is
tested.
Testcases are executed in this phase.
Any issues or bugs observed is raised as an
issue in bug logging tool like JIRA, BugZilla.
Testing is carried out either manually or using
automated tools to make sure all the features are tested thoroughly and no
hidden bugs.
Stability and confidence on the release build is
calculated by test leads and test management team.
Test artifacts like Test execution
report, Bug list, Tracibility matrix are maintained for each and every test
cycle.
When QA confirm the stability and product is Bug
free or very minimal bug product then release to client is decided.
5.Deployment and Maintenance Phase.
After Testing and making sure no Major blocker
or Bugs with High priority,Release of the build to the customer.Deployment is
done by QA in the internal environment with real services and tested in
developed environment by Client or Deployment engineer.
Once the test is successful then the deployed
build is testing in client environment by few selected users(Beta users).
Customer confirms the launch of the product in the market and if any change
request will be taken care in the maintenance phase.
Change request is small requirement changes which customer received from end-user.Based on the change request customer comes back with changes to be incorporated in existing product. Development and Regression testing is done to make sure the small change did not impact any existing functionality of the product.Here SLA(Service level Agreement) is maintained to ensure clarity on the support to be given by developer and QA to make the changes in existing product.
Conclusion
So guys I hope this
article would have given an idea how a Software/Product development happens in
phases and each phases has its activities’ the next article I will be
discussing about the what are software Development Models so please stay Tuned,
Happy Learning and Testing 😊



What is Software Development Life Cycle?
ReplyDeleteVery informative post... software development life cycle... Good post for software developers & learners..
Well, we are here to share our services -
Software Testing Services Company
QA Software Testing Services
Informative article on SDLC. Thank you for sharing this.
ReplyDeleteSoftware QA Jobs