Software Testing Tutorial #6 - Software Development Life Cycle (SDLC)

Software Testing Mentor
3 Nov 202014:42

Summary

TLDRThis tutorial explains the Software Development Life Cycle (SDLC), which outlines the steps followed in software development. It covers key phases: requirement gathering, analysis, design, development, testing, deployment, and maintenance. The video emphasizes how each phase is critical to delivering a successful software product, with a focus on different approaches like Waterfall, V-Model, and Agile. The instructor also touches on how SDLC phases are foundational for understanding the Software Testing Life Cycle (STLC), making it essential for software testers to grasp these concepts.

Takeaways

  • 🛠️ Software Development Lifecycle (SDLC) refers to the process followed to develop, deliver, and maintain software.
  • 📋 The first phase is Requirement Gathering and Analysis, where customer needs are collected and analyzed for feasibility.
  • 🎨 The second phase is the Design phase, where technical architects create a blueprint based on the requirements.
  • 💻 The third phase is Development, where the design is implemented through coding by the development team.
  • 🔍 The fourth phase is Testing, where testers ensure that the developed features work as expected in a testing environment.
  • 🚀 The fifth phase is Deployment, where the software is moved to production for customer use.
  • 🔧 The final phase is Maintenance, where the software is regularly updated and bugs or issues are addressed after deployment.
  • 🏗️ SDLC phases remain consistent across different development models (e.g., Waterfall, V-Model, Agile) but vary in timeline and execution.
  • ⏱️ Waterfall follows a longer timeline with distinct phases, while Agile involves shorter iterations and frequent releases.
  • 📱 Maintenance ensures that software remains functional and up-to-date, handling issues reported by customers post-deployment.

Q & A

  • What is the Software Development Lifecycle (SDLC)?

    -The Software Development Lifecycle (SDLC) is the set of processes that a software development team follows to develop, deploy, and maintain software. It encompasses the steps from gathering requirements to maintaining the software after its release.

  • What is the purpose of the requirement gathering phase in SDLC?

    -The purpose of the requirement gathering phase is to collect and document all the features and requirements that the customer wants in the software. This information is then used to guide the development of the software.

  • Why is the analysis phase important in the SDLC?

    -The analysis phase is important because it involves assessing whether the requirements gathered from the customer are feasible. It includes a feasibility analysis to determine if the technology and resources can meet the requirements.

  • What happens during the design phase of SDLC?

    -During the design phase, the technical architects create a blueprint for how the software will be built. This phase is crucial for defining the structure and design of the system, ensuring that it aligns with the customer's requirements.

  • What is the role of the development phase in SDLC?

    -The development phase is where the actual coding of the software takes place. The development team uses the design specifications to start building the software by writing the necessary code to implement the gathered requirements.

  • What is the importance of the testing phase in SDLC?

    -The testing phase ensures that the developed features work as expected. Testers verify the functionality of the software to identify and fix any issues or bugs before the software is deployed to production.

  • What does deployment mean in the context of SDLC?

    -Deployment refers to moving the developed and tested software into the production environment, where the intended users can access and use it. In some cases, deployment may be to a specific set of customers, while in others, it may be made available to the wider public.

  • Why is the maintenance phase necessary after deployment?

    -The maintenance phase ensures that the software continues to function properly after deployment. It includes activities like regular updates, fixing any new issues that arise, and ensuring the system remains operational over time.

  • How does SDLC differ between the Waterfall and Agile models?

    -In the Waterfall model, SDLC phases are followed sequentially, with longer timelines for each phase, often spanning months or even years. In Agile, the same phases exist but are completed in shorter iterations (2-4 weeks), with frequent updates and continuous delivery of features.

  • What is the relationship between Software Development Lifecycle (SDLC) and Software Testing Lifecycle (STLC)?

    -The Software Testing Lifecycle (STLC) is a subset of the SDLC. It focuses specifically on the testing activities within the larger development process, ensuring the quality and functionality of the software during the testing phase.

Outlines

00:00

💻 Introduction to Software Development Lifecycle (SDLC)

The video begins with an introduction to the Software Development Lifecycle (SDLC), a systematic process for building and delivering software. The presenter emphasizes that understanding SDLC is crucial for anyone working in software development, especially testers. They highlight how SDLC applies to different approaches like the waterfall model and agile methodologies, such as Scrum. The presenter sets the stage for a deeper dive into SDLC phases and mentions that software testing lifecycle will be discussed in a future tutorial.

05:00

📋 Requirement Gathering and Analysis

The first phase of SDLC is requirement gathering and analysis. This phase involves collecting and documenting the customer's needs. The presenter uses the example of a company, ABC, receiving a project to build an app. The process involves gathering all the necessary features and documenting them in a requirement document (waterfall model) or user stories/epics (agile). The analysis phase includes feasibility checks, ensuring that the gathered requirements are technically achievable. If certain requirements are infeasible, this is communicated back to the customer for revision.

10:02

🖊 Design Phase: Laying the Foundation

The design phase comes after gathering and analyzing requirements. In this phase, technical architects design the software structure based on the requirements. Using an analogy of building a house, the presenter explains how the design lays out the blueprint of the software before coding begins. The customer must approve the design to ensure it aligns with their expectations. The phase is divided into high-level and low-level designs, covering the overall structure and detailed specifics of the system.

👨‍💻 Development Phase: Building the Software

The development phase, also known as the coding phase, is where the actual software development takes place. Once the design is ready, developers start writing code based on the agreed-upon structure. This phase is compared to building a house after the design and foundation are in place. Developers use the design blueprint to implement the requirements, translating them into functional features.

🔍 Testing Phase: Verifying the Software

In the testing phase, the software is tested by testers to ensure that it meets the defined requirements. The developed features are deployed in a testing environment, and the testing team verifies that the software works as expected. This phase ensures that the software is functioning correctly before it is released to the customer or moved to production. Testers play a crucial role in validating the functionality and identifying any defects.

🚀 Deployment Phase: Delivering the Software

The deployment phase involves moving the software from the testing environment to the production environment. This makes the software available to the customer or end-users. The presenter gives the example of Gmail, explaining how deployment ensures that the software is accessible to users globally. Deployment marks the official release of the software for customer use, ensuring that it is fully functional in the live environment.

🔧 Maintenance Phase: Keeping the Software Running

The final phase of SDLC is maintenance, which involves regular updates and fixes after the software has been deployed. Like servicing a car, software needs to be maintained to ensure smooth functionality. Any issues that arise in the production environment are addressed in this phase. Maintenance also includes bug fixes and performance improvements, ensuring that the software continues to meet the user’s needs over time.

📅 Applying SDLC Across Development Models

The presenter concludes by noting that the SDLC phases remain consistent across different software development models, including waterfall, V-model, and agile. The primary difference lies in the timelines. For instance, in agile, the phases occur in shorter, iterative cycles, whereas, in the waterfall model, they are carried out over longer periods. Regardless of the methodology, understanding the SDLC is crucial for any software development or testing professional.

Mindmap

Keywords

💡Software Development Life Cycle (SDLC)

The SDLC is a structured process followed by software development teams to build, deploy, and maintain software. It covers the entire journey from gathering requirements to maintaining the software post-deployment. This is the central theme of the video, explaining each phase in detail, like requirement gathering, design, and testing.

💡Requirement Gathering

This is the first phase of the SDLC, where the organization collects detailed information from the customer about what they want the software to do. The video describes how requirements are documented, whether through traditional methods like lengthy documents (waterfall) or user stories (agile).

💡Waterfall Development Approach

A traditional software development model where phases of the SDLC are executed sequentially. The video contrasts this with agile approaches, explaining that in the waterfall approach, each phase is completed before moving to the next, making it less flexible for changes.

💡Agile Development Approach

A flexible software development methodology where the SDLC phases are carried out in short, iterative cycles called sprints. In the video, it’s contrasted with the waterfall approach, showing how agile allows for quicker delivery, with regular feedback and adaptation.

💡Design Phase

After gathering and analyzing the requirements, the design phase involves planning the architecture and structure of the software. The video compares this phase to designing a house, explaining that the design ensures all features and components are in place before development starts.

💡Development Phase

The development phase is where actual coding takes place based on the designs. This is where developers create the functionality as per the gathered requirements. The video highlights that development is like building a house once the design is finalized.

💡Testing Phase

Once the software is developed, it undergoes the testing phase to ensure it works as expected. Testers identify bugs and verify that the software meets the customer's requirements. The video emphasizes that testing is crucial before moving the software to production.

💡Deployment

The deployment phase is where the software is moved to production, making it available for the customer or end users. The video uses the example of Gmail being accessible to the public after deployment, emphasizing the importance of this phase in delivering the final product.

💡Maintenance Phase

After the software is deployed, ongoing maintenance is required to fix bugs, update features, and ensure smooth operation. The video compares it to servicing a car regularly to avoid issues, highlighting the ongoing support needed after deployment.

💡Feasibility Analysis

During the requirement analysis phase, feasibility analysis assesses whether the desired features can be implemented based on technological, financial, or operational constraints. The video explains that if certain requirements aren't feasible, they must be communicated to the customer for adjustment.

Highlights

Introduction to Software Development Life Cycle (SDLC) as a structured process for developing and delivering software.

Importance of understanding SDLC for software testing teams, as testing is a crucial part of the development process.

Overview of different software development approaches like Waterfall, V-model, and Agile and how SDLC applies to them.

First phase of SDLC: Requirement gathering and analysis – the process of gathering customer requirements and assessing feasibility.

Importance of documenting requirements and the difference between traditional requirements documentation in Waterfall and user stories/epics in Agile.

Second phase of SDLC: Design phase – involves technical architects creating high-level and low-level designs based on customer requirements.

Emphasis on the importance of verifying the design with the customer to ensure it meets expectations.

Third phase of SDLC: Development – the coding phase where the actual software is built based on the design.

Fourth phase of SDLC: Testing – testing the developed features in a test environment to ensure they meet the requirements.

Fifth phase of SDLC: Deployment – moving the tested code to production, making it available to the customers or end users.

Sixth phase of SDLC: Maintenance – involves regular maintenance and handling any issues reported by customers after deployment.

Key difference between Waterfall and Agile approaches is the timeline, with Waterfall having longer cycles and Agile operating in shorter iterations.

Agile focuses on delivering software incrementally with smaller, more frequent releases compared to the longer release cycles in Waterfall.

In Agile, design, development, and testing occur in short iterations, typically lasting 2-4 weeks.

Conclusion: Understanding SDLC is crucial for anyone working in software development or testing, as it forms the foundation of delivering quality software.

Transcripts

play00:00

hello everyone welcome again in this

play00:03

software testing tutorial

play00:04

we are going to understand what is

play00:06

software development lifecycle

play00:08

or sdlc so software development

play00:12

life cycle is the setup process that

play00:15

you follow if you're working in any

play00:17

software development team

play00:19

to basically start developing the

play00:22

software and deliver it

play00:23

until the software is deployed and

play00:25

maintained right

play00:26

so the whole process is known as

play00:29

software development lifecycle

play00:31

now that process you need to understand

play00:34

step by step what all phases are there

play00:38

to develop any software or analyze the

play00:41

requirement and then develop the

play00:42

software and deliver it to the customer

play00:44

or deploy in the production right so we

play00:46

need to understand

play00:48

if we want to work in the software

play00:49

testing team we need to also understand

play00:52

what software development life cycle is

play00:55

and based on different you know

play00:57

approaches will understand how

play00:59

software development life cycle you know

play01:02

is in different software development

play01:03

approaches say for example waterfall

play01:05

development approach how

play01:06

sdlc is there and then if you are

play01:09

following the

play01:09

model how software development lifecycle

play01:12

is in the viewmodel or in the agile

play01:15

approach for example strong so let's

play01:18

start with the software development

play01:19

lifecycle

play01:20

um so here i'll totally cover sdlc

play01:24

and in the next tutorial i'll cover

play01:25

software testing lifecycle which is sort

play01:27

of

play01:28

a subset of software development

play01:30

lifecycle sdnc

play01:31

fits within software development live

play01:34

site

play01:35

so the first phase in software

play01:38

development lifecycle is

play01:39

the requirement gathering okay so

play01:41

requirement

play01:43

gathering

play01:46

and analysis

play01:51

okay so what does the requirement

play01:54

gathering means right so we'll

play01:56

understand first requirement gathering

play01:58

and then analysis so say for example

play02:02

there is an organization uh abc

play02:06

and this is the organization which takes

play02:10

the software development project okay so

play02:13

you will be you know having certain

play02:15

teams there development teams

play02:16

so team one two three and these

play02:20

teams basically work on different

play02:21

development projects

play02:23

now any organization or any person

play02:26

who is the customer who wants to build

play02:28

something say for example

play02:30

i am a customer and i want to build an

play02:33

app

play02:33

okay so what i'll do is i'll either if

play02:36

i'm a big organization i'll

play02:37

you know have a tendering and then i'll

play02:40

announce that i want to build something

play02:42

like this there will be multiple

play02:44

organizations that will build and then

play02:46

based on those bids i'll choose

play02:48

the organization or the team that i want

play02:51

to

play02:51

give the project right so uh

play02:54

now if i want to build an app or a

play02:56

website

play02:57

uh in the simplest form okay so

play03:01

i'll provide some requirements to the

play03:04

organization right so what

play03:06

requirement gathering is basically once

play03:08

this abc organization gets the project

play03:10

and if i am the customer

play03:13

then i will provide the requirements or

play03:17

you know there will be team of people

play03:19

basically in the customer

play03:21

you know team so who will

play03:24

provide the requirement to the

play03:26

organization who wants to

play03:27

build the software right or who will be

play03:30

building the software for us

play03:32

so those requirement when gathered by

play03:35

this particular organization is known as

play03:36

requirement gathering

play03:38

okay so all the features that i want to

play03:41

be in my app or in my website i will

play03:44

provide those details and then

play03:46

all the details will be documented okay

play03:49

so all the details will be documented

play03:51

and this is what the requirements

play03:53

document is

play03:54

in the waterfall approach this was a

play03:56

lindy you know requirements document

play03:58

but in agile it's in the form of user

play04:00

stories or epics basically so epic will

play04:03

be the high level user story

play04:05

that is what captures the high level

play04:07

requirement of the customer

play04:09

okay so this is what a requirement

play04:12

gathering

play04:12

phase is when you gather the requirement

play04:16

about the software what customer is

play04:18

actually looking for

play04:19

in or in terms of feature what the

play04:21

customer is looking for into

play04:23

the software or the app that you're

play04:25

trying to build

play04:26

then the analysis phase is basically

play04:29

once you gather the requirement you also

play04:30

analyze the requirement whether those

play04:32

requirements are feasible or not

play04:34

right so feasibility analysis is very

play04:37

important so

play04:38

once the customer provides a certain

play04:40

requirement there might be some

play04:42

limitations in terms of technology

play04:43

support or any other

play04:45

you know issues because of that

play04:48

you might not be able to fulfill those

play04:50

requirements or not be

play04:51

able to implement those requirements so

play04:53

in that particular case

play04:55

what you need to do is you need to

play04:58

basically analyze and understand that

play05:00

whether those requirement implementation

play05:02

is possible or not

play05:03

if not you need to communicate that to

play05:05

the customer about

play05:06

the analysis and then there will be

play05:08

discussion and

play05:10

updates accordingly to the requirement

play05:12

okay so this is about the requirement

play05:14

gathering and analysis phase this is the

play05:16

first phase of software development life

play05:19

cycle

play05:20

the next phase is the design phase all

play05:23

right

play05:25

what this design phase is all about so

play05:27

once the requirement

play05:29

are available in the design phase what

play05:32

the technical architects do

play05:33

is in the team you have the requirement

play05:36

and based on those requirements you want

play05:38

to basically

play05:39

lay the foundation of how the software

play05:42

will be built

play05:43

right so say for example you want to

play05:45

build a house okay

play05:46

so the first thing you do is you design

play05:49

how you want to build

play05:50

right you don't directly start building

play05:52

the house without

play05:54

having a design and understanding how

play05:56

the house will look like

play05:57

so if a customer said that i want you

play05:59

know three rooms in my house two

play06:01

bathrooms

play06:02

um you know two kitchen living room

play06:05

so all those things need to be designed

play06:08

properly

play06:08

first and shown to the customer and uh

play06:11

clarified from the customer

play06:13

is this how you want to you know um is

play06:15

this where you want your room to be

play06:17

is this where you want your kitchen to

play06:19

be right so same

play06:20

is true with the software you need to

play06:23

basically

play06:24

first design based on what you have got

play06:27

gathered as the requirement

play06:28

and then analyze with the customer the

play06:31

design that that's what exactly he's

play06:33

want he wants

play06:34

or she wants so similar is the case like

play06:36

the car case

play06:38

so i have the car a customer asked to

play06:41

you know build a car with four wheels

play06:44

and i have put four wheels here

play06:46

right so this is not fit for you so i

play06:48

need to basically have the design and

play06:50

show it to customer whether you want

play06:51

wheels here or whether you want wheels

play06:53

here right so customer will say no no

play06:56

this is not what i want

play06:57

this car is not going to move right so i

play06:59

want a car that moves so this is how you

play07:02

clarify the requirement with the

play07:03

customer

play07:04

okay so in the design you design how the

play07:07

overall

play07:08

software is going to you know what the

play07:10

design will look like

play07:12

so technical architects do it and then

play07:15

this is what the design

play07:16

phases and in design there are different

play07:19

phases

play07:20

as well so high level design low level

play07:21

design um

play07:23

that is within the design phase

play07:26

so that's the second phase third phase

play07:28

is develop

play07:32

now what happens in develop is

play07:35

so development the development phase is

play07:38

actually the coding phase

play07:40

right so once you have the design ready

play07:42

and you know what you are

play07:44

going to build then you start the

play07:46

development work or you start building

play07:48

the house right so you have the design

play07:49

you have the foundation laid

play07:51

and then you know you start

play07:55

putting the bricks and same is the case

play07:57

with the

play07:58

software so once the design is ready the

play08:01

next phase is the development of coding

play08:02

phase wherein the development team will

play08:04

start

play08:05

writing the code to implement those

play08:07

requirements

play08:08

okay the fourth phase is the

play08:11

test okay so once the development is

play08:14

done

play08:15

and a development team has you know

play08:18

created certain features or developed

play08:20

certain features they will

play08:22

provide those features or they'll deploy

play08:24

those features

play08:25

into the test environment for the

play08:27

testers

play08:28

to test okay now if you're you will be

play08:31

working as a test

play08:32

uh tester within team you will go to

play08:35

that particular you know test

play08:36

environment and

play08:37

launch the application or the app and

play08:40

verify

play08:41

that whatever features or whatever

play08:43

requirements are being built in this

play08:44

particular release

play08:46

they are working as expected right so

play08:49

this is the

play08:50

testing phase so in testing phase you do

play08:52

the testing work for the

play08:54

application or the app okay

play08:57

then after the testing

play09:01

is successful everything is fine and

play09:03

stakeholders have agreed

play09:04

to release the software the next phase

play09:07

is

play09:08

to basically deploy right

play09:12

what does deployment so deploy means

play09:14

deploying to production

play09:19

so you won't be having all the code into

play09:21

the testing right you have to basically

play09:24

move it to production where the customer

play09:27

can access or if it is for the public

play09:29

user for example

play09:30

gmail is the application which is used

play09:32

by everyone right

play09:33

all the public whoever has the gmail

play09:35

account or wants to create a gmail

play09:36

account

play09:37

now if gmail google would have developed

play09:40

and

play09:41

just kept it there in their testing

play09:43

environment and not available

play09:45

over the internet then that's just

play09:48

within their organization it's not

play09:49

available to the public

play09:51

now if it wants the the

play09:54

customer for gmail are the people like

play09:56

you and me

play09:57

right so they have to move it to the

play09:59

production over the internet

play10:01

and this is what deployment is so in the

play10:03

deployment they move the code to the

play10:05

production

play10:05

and make it available to the relevant

play10:08

customer for

play10:09

whom that software is being built so in

play10:11

in gmail case it is for

play10:13

us and that is why it is you know

play10:15

deployed in the data centers

play10:17

or the whole code and it is available

play10:19

over the internet for us to

play10:21

access the gmail emails all right so in

play10:24

the deployment phase the actual code is

play10:26

being deployed

play10:27

for the customers who are going to use

play10:30

it

play10:30

it might be a set of customers or it

play10:33

might be the wider public

play10:35

all right so it depends what the context

play10:37

is of that particular

play10:38

software so after the deployment phase

play10:41

the next phase is the maintenance

play10:46

all right so in maintenance phase

play10:51

once the deployment happens okay in the

play10:54

production

play10:55

the software needs to be maintained

play10:57

right so for example you

play10:58

buy a car you bring it it's a new car

play11:01

after every six months you have to

play11:03

service it right so it is required

play11:05

because if you want to use

play11:07

the car without any issues you have to

play11:10

basically

play11:11

take care of it you have to maintain and

play11:12

you have to see that there are no issues

play11:15

or there are there are every every

play11:17

functionality or machinery is working as

play11:19

expected

play11:20

similarly in software you have to

play11:21

basically ensure that you do that

play11:24

maintenance or regular maintenance

play11:26

um uh for the software so that it is

play11:30

not it doesn't crash so say for example

play11:33

the software

play11:34

uh might try to do you know hardware

play11:36

issues or

play11:37

there might be you know issues within

play11:39

the software itself so as we have

play11:41

already understood about the seven

play11:42

principles of software testing

play11:45

so 100 testing is not possible and even

play11:48

though

play11:49

if you still can't find any more issues

play11:51

in your software

play11:52

it doesn't mean that the software that

play11:55

deployed

play11:56

that is deployed in the production is

play11:57

100 defectory right

play11:59

so you can't say that so in maintenance

play12:01

phase what happens is you basically

play12:03

regularly maintain the software

play12:05

and you also fix any of the production

play12:08

issues that come through right so once

play12:10

the software is in the maintenance

play12:12

you keep a watch on

play12:15

what all issues are being reported by

play12:17

the customers

play12:19

and if there are critical issues or any

play12:21

issues that are being reported by the

play12:22

customer they

play12:24

are being fixed and redeployed in the

play12:27

production so this is what what happens

play12:29

into the

play12:30

maintenance phase right so these

play12:33

are the key six uh so basically six

play12:37

phases of software development life

play12:39

cycle

play12:40

and you need to understand the software

play12:42

development life cycle

play12:44

before you understand the software

play12:46

testing life cycle

play12:47

in the next tutorial that i'll cover

play12:49

right so requirement gathering and

play12:51

analysis

play12:52

design development testing deploy and

play12:54

maintenance very simple

play12:56

it's a phase or a life cycle that

play12:59

any development team will follow to

play13:02

develop any software or application

play13:04

right now these phases

play13:08

this is uh you know will remain

play13:11

true for waterfall for v model for an

play13:14

even for agile right so in

play13:15

agile uh you know you will have the

play13:17

requirement gathering so this

play13:20

is this won't happen in each and every

play13:21

sprint but it will happen in you know

play13:24

say for example two to three months or

play13:25

in in a one

play13:27

increment of program increment so there

play13:29

will be requirement gathering phase

play13:31

and then design development testing

play13:33

testing will happen

play13:34

design development testing happens in

play13:36

very short iterations two to four week

play13:38

cycle

play13:39

but phases are still same so phases will

play13:42

still be there

play13:43

the only difference which happens

play13:45

between these development approaches

play13:47

is the timeline that you follow in

play13:50

waterfall approach

play13:51

it will be longer timelines in a child

play13:53

it will be smaller timelines

play13:55

in agile maintenance you know like

play13:58

deployment

play13:58

and maintenance or deployment to

play14:00

production uh can happen every month

play14:03

okay so it depends how the organization

play14:05

wants to deploy to the production

play14:07

okay but in waterfall it was usually

play14:10

like six months to one year so it

play14:11

depended

play14:12

uh how the organization wants to deploy

play14:15

the production waterfall approach

play14:16

right so this is the basic software

play14:18

development lifecycle

play14:20

um understand it very well

play14:24

if there are any doubts please comment

play14:26

in the comment section

play14:27

and i'll clarify all those doubts so

play14:29

that you are good enough

play14:31

to go ahead and explain it to any

play14:34

interviewer

play14:35

in the software testing interview so

play14:37

that's all for this tutorial

play14:38

please do share and subscribe and thank

play14:40

you very much for watching

Rate This

5.0 / 5 (0 votes)

Связанные теги
SDLCSoftware DevelopmentWaterfall ModelAgileRequirement GatheringTesting LifecycleProject ManagementSoftware DesignDeploymentMaintenance
Вам нужно краткое изложение на английском?