Software Testing Tutorial #10 - Iterative Model in Software Engineering

Software Testing Mentor
7 Nov 202010:19

Summary

TLDRThis tutorial explains the iterative development model in software testing, comparing it with the waterfall and V-model. It highlights the drawbacks of traditional models, like long delivery times, and introduces the iterative approach where development phases repeat in shorter cycles (4-8 weeks), allowing for quicker releases and better customer feedback. The tutorial provides a practical example of building an e-commerce application in phases, explaining how features are added incrementally. It also differentiates iterative development from Agile, noting that Agile is more comprehensive while following a similar cycle.

Takeaways

  • 😀 The iterative development model was introduced to address the long delivery times in traditional models like the waterfall and V-model.
  • 🚀 In the iterative model, the development cycle (requirements, design, development, testing, deployment) is repeated in shorter iterations, typically lasting 4-8 weeks.
  • ⏳ Unlike the waterfall model, which could take up to two years, the iterative model allows for quicker delivery of working software.
  • 🛠 Each iteration includes the same phases: requirements, design, development, testing, and deployment, but focuses on delivering small, incremental updates.
  • 🔄 New features and enhancements are added incrementally in each iteration, improving the software progressively over time.
  • 💡 An example of iterative development is building an e-commerce app, where the login page is created in the first iteration, and additional features like password recovery are added in later iterations.
  • ⏱ While the iterative model shortens delivery time, it still follows a phased approach similar to waterfall, where requirements must be frozen before development starts.
  • 📉 The iterative model improves feedback loops, as each iteration delivers a working product, allowing for faster feedback from customers.
  • đŸ’» Agile and Scrum also follow an iterative approach with sprints, but agile introduces a broader mindset and values beyond just the development cycles.
  • đŸ€” Agile addresses more of the limitations found in waterfall, V-model, and iterative development, offering a more dynamic approach to software development.

Q & A

  • What is the main purpose of the iterative development model?

    -The iterative development model was introduced to address the issues of delayed software delivery found in the waterfall and V-models. It enables faster value delivery to customers by allowing for shorter cycles of development and repeated iterations.

  • What are the key differences between the V-model and iterative development model?

    -While both the V-model and iterative development model involve testing at each phase, the key difference is that the V-model still results in long delivery cycles, while the iterative model reduces the delivery time by repeating phases in shorter cycles of 4-8 weeks.

  • Why is the waterfall model considered inefficient for modern software development?

    -The waterfall model requires a long time to deliver software, sometimes up to two years, which is not suitable for today's dynamic market conditions where faster value delivery is crucial. This is why iterative models were introduced.

  • How does the iterative development model handle requirements compared to the waterfall model?

    -In the iterative development model, requirements are broken down into smaller phases and are continuously revisited with each iteration. This contrasts with the waterfall model, where requirements are gathered all at once at the beginning of the project and remain static.

  • What happens during each phase of the iterative development model?

    -Each phase in the iterative development model follows a cycle of requirement gathering, design, development, testing, and deployment. This cycle repeats with each iteration until all requirements are fully implemented.

  • What are some examples of features that might be added during iterative phases?

    -In an example of building an e-commerce application, the first iteration might include a login page with basic fields, and later iterations might add features like password recovery, social media login options, or improved design elements.

  • What are the main advantages of the iterative development model?

    -The primary advantages are faster feedback and quicker delivery of working software to the customer, allowing for faster validation and adjustments based on feedback.

  • What is the major disadvantage of the iterative development model?

    -Despite shorter cycles, the iterative development model still follows a phased approach where requirements, design, development, and testing are done sequentially within each cycle, which can lead to delays if requirements need frequent revisions.

  • Is agile development the same as the iterative development model?

    -No, agile development is not the same as the iterative development model, though they share similarities in using short cycles. Agile goes beyond the iterative model by promoting a more flexible, customer-centric approach and continuous improvement, while iterative still follows a phased structure.

  • How does iterative development improve feedback loops?

    -In iterative development, shorter cycles allow for quicker feedback from customers after each iteration. This feedback can be incorporated into future iterations, leading to continuous improvement of the product.

Outlines

00:00

🛠 Introduction to Iterative Development Model

The video begins by introducing the iterative development model, following a brief recap of the waterfall and V-model approaches. It highlights the limitations of both models, such as lengthy delivery times, even with the V-model's inclusion of testing in every phase. The iterative model was introduced to address these challenges, aiming for quicker value delivery through shorter, repeated cycles of development and testing.

05:01

🔄 Phases of Iterative Development

This section explains the phases of the iterative development model, which follow a repeated cycle similar to a shortened version of the waterfall model. Key phases include requirements, design, development, testing, and deployment. Iterations typically last between four and eight weeks, allowing frequent releases of software. Each iteration adds more functionality to the software until all customer requirements are met, avoiding long delivery times seen in traditional models.

10:01

⚙ Shorter Cycles and Incremental Builds

The video describes the shorter cycle times in iterative development, contrasting them with the lengthy timelines of the waterfall approach, which could extend to two years. It further details how, in each iteration, the team develops incremental features. For example, in an e-commerce application, initial iterations might build basic functionality like a login page, while subsequent iterations add features such as ‘Forgot Password’ and third-party login options, ensuring quicker, iterative releases.

🚀 Benefits and Drawbacks of Iterative Development

This segment explores the advantages of iterative development, such as delivering functional software more quickly to the customer. However, a phased approach still remains, where each phase (requirements, design, etc.) must be completed before moving on. Although the process is faster and allows better feedback, it doesn’t completely eliminate the rigid phase structure present in older models.

đŸŒ± Introduction to Agile and its Distinctions

The video introduces Agile methodology, noting its similarity to the iterative model but emphasizing that Agile is a more advanced approach. Agile is not only about iterations but also about mindset and values that address the drawbacks of both waterfall and iterative models. Agile frameworks like Scrum break development into smaller sprints but involve more flexible, customer-focused practices compared to traditional iterative methods.

📚 Conclusion and Practical Tips for Interviews

The tutorial concludes with practical advice for testers, emphasizing the importance of understanding these development models, especially for job interviews. It encourages viewers to be prepared to explain the differences between iterative and Agile approaches, which are often confused, and stresses that this foundational knowledge will be useful in real-world software testing and development projects.

Mindmap

Keywords

💡Iterative Development Model

The iterative development model is a software development approach where the development cycle is repeated multiple times, delivering smaller, incremental improvements. In the video, it is presented as a response to the long delivery times in waterfall and V-models, enabling quicker releases with shorter phases (1-2 months).

💡Waterfall Model

The Waterfall Model is a traditional software development approach where each phase (requirements, design, development, testing, deployment) is completed sequentially. It’s criticized for its long delivery times, as described in the video, which led to the introduction of more flexible models like the iterative approach.

💡V-Model

The V-Model is an extension of the waterfall model, where testing is involved in each development phase, creating a 'V' shape with parallel development and testing stages. However, the video highlights its drawback of long delivery durations, similar to the waterfall model.

💡Phased Approach

A phased approach refers to dividing the software development lifecycle into distinct phases like requirements gathering, design, coding, and testing. While the iterative model also follows this phased approach, the video emphasizes that it improves on the long durations seen in the waterfall and V-models by shortening the cycles.

💡Feedback Loop

The feedback loop is the mechanism by which feedback from each iteration of development is incorporated into subsequent iterations. In the iterative development model, as discussed in the video, this loop allows for better feedback and quicker improvements compared to waterfall and V-models.

💡Agile

Agile is a software development methodology that emphasizes flexibility, iterative progress, and faster delivery. The video clarifies that although agile also uses short cycles like the iterative model, it offers a more comprehensive set of values and practices, distinguishing it from traditional iterative approaches.

💡Sprint

A sprint is a time-boxed iteration in agile development, typically lasting 2-4 weeks. The video briefly mentions sprints in the context of agile, contrasting them with the iterative model’s phases, as sprints offer even more flexibility and continuous delivery of features.

💡User Acceptance Testing

User Acceptance Testing (UAT) is the phase where the end-users test the software to ensure it meets their requirements. In the video, this type of testing is associated with the V-model, where testing occurs in each phase of the development lifecycle.

💡Incremental Build

Incremental build refers to the process of building the software in small, usable parts. The video illustrates this by using an example of an e-commerce application, where the login functionality is built first, followed by enhancements like forgot password or social media sign-up in subsequent iterations.

💡Value Delivery

Value delivery refers to the process of providing a functional product to customers quickly, ensuring that they receive usable software in shorter cycles. The video emphasizes the importance of fast value delivery in modern market conditions, where waiting for long periods, like in the waterfall model, is not feasible.

Highlights

Introduction to iterative development model as a response to drawbacks of the waterfall and V-model.

Iterative development model addresses the need for faster delivery in dynamic market conditions, where traditional models had long delivery timelines.

In iterative development, software is delivered in smaller, repeated cycles, with each phase (requirements, design, development, testing, and deployment) repeated in iterations.

Each iteration delivers a working piece of software in a shorter timeframe, typically within 4 to 8 weeks.

The iterative model allows phased software delivery, where features are incrementally added and improved upon in subsequent iterations.

Phased approach of the waterfall model is retained, but with shorter and repeated cycles for quicker releases.

Iterative model example: Building an e-commerce application incrementally, where initial iterations provide basic features, and subsequent ones add advanced functionalities like 'forgot password' or third-party logins.

The primary advantage of iterative development is that customers can see working software sooner, with feedback loops for improvements.

A notable disadvantage of iterative development is that the phased approach still exists, requiring requirements to be frozen before design and development can proceed.

Iterative model doesn't completely solve the problem of the phased approach, as design, development, and testing still happen in sequence within iterations.

Agile development also follows iterative cycles but introduces additional principles, making it more advanced than the traditional iterative model.

Agile development is not identical to iterative development—Agile involves more comprehensive changes to methodology, mindset, and values.

Agile, especially Scrum, enhances iterative processes by introducing concepts like sprints and focuses on constant feedback and flexibility.

Iterative development models, while improving over waterfall and V-models, still don't address all modern software development challenges—Agile aims to fill that gap.

Understanding iterative development is essential for software testers and developers, especially when transitioning to more adaptive and Agile environments.

Transcripts

play00:00

hello everyone welcome again in this

play00:03

software testing tutorial

play00:04

we are going to learn iterative

play00:06

development model

play00:08

so in the previous two tutorials we have

play00:09

seen about the

play00:11

waterfall development model and the v

play00:13

model

play00:14

and some of the advantages and

play00:16

disadvantages basically so in the

play00:18

waterfall model there were a couple of

play00:19

disadvantages because of which

play00:21

v-model was introduced and even

play00:24

the model couldn't address some of the

play00:27

disadvantages that we

play00:29

you know used to have in the software

play00:30

development lifecycle right

play00:32

so iterative development model came

play00:35

after

play00:36

uh you know those methodologies had some

play00:38

of the drawbacks

play00:40

so say for example even with the v-model

play00:42

what issues we had

play00:44

is even though testing was involved in

play00:46

each and every

play00:47

phase of the v model still the

play00:51

duration of the delivery or the value

play00:53

delivery

play00:54

uh was pretty long so the if you if you

play00:57

you know if you want to

play00:58

rephrase or uh you want to

play01:01

see the v model so it was something like

play01:04

you had

play01:05

you know the requirements and then

play01:08

the coding so there were a couple of

play01:10

phases there uh

play01:11

in between so design development etc so

play01:15

uh and then the testing was sort of

play01:18

parallely so here there was user

play01:20

acceptance testing then there was you

play01:21

know

play01:21

system testing integration testing

play01:23

accordingly right so testing was

play01:24

involved in each and every phase

play01:26

but the duration was still lengthy right

play01:29

so duration was still long for

play01:31

the v model as well as it was in the

play01:33

waterfall model

play01:35

now if you have a delivery in current

play01:38

scenario in the current dynamic scenario

play01:40

or the market conditions

play01:42

you can't wait for delivering the

play01:44

software for you know like two years

play01:46

okay so you have to add the value or

play01:49

deliver the value to the customers

play01:50

pretty quickly and

play01:51

that is why you have to deliver software

play01:54

very quickly

play01:55

and in order to address those issues of

play01:57

delivery or delayed

play01:59

delivery to the customer iterative

play02:01

development model was introduced

play02:04

so iterative development model what

play02:07

they do is uh you basically repeat

play02:10

the same cycle so for example in the

play02:12

waterfall we had

play02:14

certain phases right so we we had phases

play02:17

say for example

play02:18

in the waterfall so for example if i say

play02:21

phase

play02:22

one right so what if all we had the

play02:25

phase

play02:25

of requirements

play02:28

then we have design

play02:32

then develop okay so develop

play02:38

uh test and then

play02:41

deploy right and then maintenance

play02:45

so these were some of the phases right

play02:48

so what happened in the iterative

play02:51

development approach

play02:53

is basically they had these phases and

play02:56

these

play02:56

phases will be repeated so say for

play02:59

example phase one

play03:00

will have the requirement then design

play03:03

develop

play03:03

test and deploy so this will be sort of

play03:06

you know like a quick

play03:07

release of one to two months so every

play03:10

four

play03:10

weeks to eight weeks there could be you

play03:13

know like

play03:13

a drop of software coming or deployment

play03:16

happening

play03:17

and then the same cycle so you see

play03:19

requirement

play03:20

design development test deploy the same

play03:22

cycle

play03:23

keeps repeating so there will be another

play03:26

phase or

play03:26

a release of phase two or released to

play03:29

whatever

play03:30

the organization want to call it and

play03:32

this

play03:33

whole process of requirements

play03:37

so requirement i'll say requirement

play03:41

design

play03:44

develop and then

play03:48

you know test

play03:51

and deploy right so all

play03:54

these all the same phases whatever we

play03:57

have seen in the waterfall model except

play03:59

the maintenance phase will keep

play04:02

repeating in each of these iteration

play04:04

unless and until

play04:05

all the requirements that have been

play04:07

given by the customers

play04:09

are being completely built and deployed

play04:12

in different phases so there could be

play04:15

you know like

play04:16

five phases ten phases so you know there

play04:18

there could be multiple phases

play04:20

depending on how the complex software

play04:24

is and how many requirements you are

play04:26

trying to build so there will be another

play04:29

phase

play04:29

phase three starting right so this is

play04:32

how

play04:33

iterative development model works

play04:36

now in iterative development model there

play04:38

wasn't much change the only

play04:40

change was basically to have

play04:43

shorter iterations or shorter cycles

play04:46

and within those cycle you fit a smaller

play04:49

waterfall model

play04:50

okay so here if you see this is one

play04:53

cycle

play04:54

or iteration okay so iterative came

play04:57

from iteration so which is nothing but

play05:00

the duration

play05:01

of whatever you know weeks or months so

play05:04

it will be a shorter duration as

play05:05

compared to

play05:06

the waterfall approach so in waterfall

play05:08

approach it was mostly like

play05:10

six months to one year to you know maybe

play05:12

it will extend up to two years as well

play05:14

but in iterative it will come down to

play05:16

one month or two month

play05:18

depending on how the organization or

play05:20

project team wants to manage

play05:21

and then in the first iteration they'll

play05:23

pick certain features

play05:25

and they'll try to build some of the

play05:28

skeleton or the

play05:29

initial features then they'll pick

play05:31

another set of features

play05:32

in the second iteration right so second

play05:35

iteration

play05:36

and they'll build they'll do the you

play05:38

know requirement analysis

play05:40

and then design and develop test and

play05:42

deploy similarly

play05:44

this whole process will keep continuing

play05:46

like that

play05:47

okay now let's take an example of how

play05:50

um the software will be built

play05:53

incrementally or basically with the

play05:54

iterative development approach now say

play05:56

for example

play05:57

you want to build a application

play06:00

um e-commerce application which

play06:03

has the login functionality right so for

play06:05

example in the iteration one what team

play06:07

might do is they will say in first

play06:09

iteration we'll build

play06:11

the login page right so we'll build a

play06:13

skeleton

play06:14

so we'll have a login page okay and on

play06:17

the login page we'll just have

play06:19

the username and password field okay

play06:22

and the login button so that will be

play06:25

built in the first iteration so all this

play06:27

will be built

play06:28

tested and deployed okay

play06:32

then um you know after this

play06:36

they want to add more features right or

play06:38

more requirements so

play06:39

the next what they'll do is they might

play06:42

add you know

play06:42

they they will be beautify the page so

play06:45

they'll

play06:46

add you know more css to beautify the

play06:49

page and then they might add

play06:51

forgot so forgot

play06:54

password functionality in the next

play06:57

iteration okay or in the next next phase

play06:59

so this is how they will keep

play07:01

incrementally adding more functionality

play07:04

in the iterations in the iterative

play07:06

development model

play07:07

so in the first page they'll be in the

play07:08

first phase they'll do some features in

play07:10

the next phase they'll

play07:11

add more features like forgot password

play07:14

you know

play07:15

forgot username so all those features

play07:17

might be available in the next phase

play07:19

then they in the third phase they might

play07:21

pick more

play07:22

features so for example signing up with

play07:25

the

play07:25

google signing up with facebook account

play07:28

so those features can come in

play07:30

third phase but you can see the

play07:31

advantage here is

play07:33

that instead of waiting for two years to

play07:35

get the whole

play07:36

you know release or the software you can

play07:39

get the release very quickly so

play07:41

there is something working available for

play07:44

the customer to have a look how

play07:46

the implementation has happened and

play07:48

whether it is

play07:49

meeting the customer's requirement right

play07:51

so that was the advantage of iterative

play07:53

development

play07:53

model but the disadvantage is again it

play07:56

didn't address

play07:57

that phased approach right even though

play07:59

the cycle is still

play08:01

short but there is still phased approach

play08:04

requirement need to be frozen then

play08:06

design will start then development will

play08:08

start test will start and then

play08:09

deployment will happen right

play08:10

so phased approach is still there but

play08:12

because cycles are

play08:14

reduced or there are more cycles so

play08:15

there is still a lot

play08:17

better you know feedback loop in there

play08:20

now

play08:20

um agile is one

play08:24

you know development approach very

play08:25

recent uh development approach which is

play08:27

basically scrum

play08:28

um and agile

play08:31

is also or it also follows iterative

play08:34

approach

play08:35

right so there are sprints and then

play08:37

within sprints you

play08:38

develop small features but you shouldn't

play08:41

confuse

play08:42

that agile is exactly similar to what

play08:44

iterative development model is

play08:46

agile is a lot more as compared to

play08:49

iterative development model so it is

play08:52

similar but it is not same to iterative

play08:55

development model

play08:56

please note that right so do not get

play08:58

confused that

play09:00

agile or extreme programming they are

play09:03

you know

play09:03

similar or exactly same as iterative

play09:06

development model so

play09:08

they follow that cadence they follow

play09:09

that um

play09:11

you know smaller iterations but

play09:14

there is a lot more in agile which i'll

play09:16

explain uh in later tutorials as

play09:18

compared to iterative development model

play09:20

so in agile a lot more

play09:22

drawbacks that were there in waterfall

play09:24

approaching the model

play09:26

in iterative model as well they were

play09:28

being addressed and it's

play09:30

totally a different you know mindset and

play09:33

values that needs to be followed when

play09:35

you are following agile methodology

play09:38

or any agile development approach like

play09:40

scrum

play09:41

so that is all for this particular

play09:43

tutorial about iterative development

play09:45

model

play09:46

hope it was helpful and clear um and

play09:49

will be helpful for you in your

play09:51

interviews if you are going for

play09:53

an interview and somebody asked for what

play09:55

is iterative development model

play09:57

whether it's similar to agile or what is

play09:59

the similarity and

play10:01

so all those things you can answer to

play10:03

the interviewer

play10:04

and even if you are working in any

play10:06

project it will be really helpful to

play10:08

know

play10:09

all these basics before you can actually

play10:11

become a really good tester

play10:13

so that's all for this tutorial please

play10:15

do share and subscribe and thank you for

play10:18

watching

Rate This
★
★
★
★
★

5.0 / 5 (0 votes)

Étiquettes Connexes
Software DevelopmentIterative ModelAgile MethodologyTesting TutorialDevelopment LifecycleWaterfall ModelV-ModelCustomer ValueSoftware TestingProject Management
Besoin d'un résumé en anglais ?