Software Testing Tutorial #10 - Iterative Model in Software Engineering
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
🛠 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.
🔄 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.
⚙️ 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
💡Waterfall Model
💡V-Model
💡Phased Approach
💡Feedback Loop
💡Agile
💡Sprint
💡User Acceptance Testing
💡Incremental Build
💡Value Delivery
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
hello everyone welcome again in this
software testing tutorial
we are going to learn iterative
development model
so in the previous two tutorials we have
seen about the
waterfall development model and the v
model
and some of the advantages and
disadvantages basically so in the
waterfall model there were a couple of
disadvantages because of which
v-model was introduced and even
the model couldn't address some of the
disadvantages that we
you know used to have in the software
development lifecycle right
so iterative development model came
after
uh you know those methodologies had some
of the drawbacks
so say for example even with the v-model
what issues we had
is even though testing was involved in
each and every
phase of the v model still the
duration of the delivery or the value
delivery
uh was pretty long so the if you if you
you know if you want to
rephrase or uh you want to
see the v model so it was something like
you had
you know the requirements and then
the coding so there were a couple of
phases there uh
in between so design development etc so
uh and then the testing was sort of
parallely so here there was user
acceptance testing then there was you
know
system testing integration testing
accordingly right so testing was
involved in each and every phase
but the duration was still lengthy right
so duration was still long for
the v model as well as it was in the
waterfall model
now if you have a delivery in current
scenario in the current dynamic scenario
or the market conditions
you can't wait for delivering the
software for you know like two years
okay so you have to add the value or
deliver the value to the customers
pretty quickly and
that is why you have to deliver software
very quickly
and in order to address those issues of
delivery or delayed
delivery to the customer iterative
development model was introduced
so iterative development model what
they do is uh you basically repeat
the same cycle so for example in the
waterfall we had
certain phases right so we we had phases
say for example
in the waterfall so for example if i say
phase
one right so what if all we had the
phase
of requirements
then we have design
then develop okay so develop
uh test and then
deploy right and then maintenance
so these were some of the phases right
so what happened in the iterative
development approach
is basically they had these phases and
these
phases will be repeated so say for
example phase one
will have the requirement then design
develop
test and deploy so this will be sort of
you know like a quick
release of one to two months so every
four
weeks to eight weeks there could be you
know like
a drop of software coming or deployment
happening
and then the same cycle so you see
requirement
design development test deploy the same
cycle
keeps repeating so there will be another
phase or
a release of phase two or released to
whatever
the organization want to call it and
this
whole process of requirements
so requirement i'll say requirement
design
develop and then
you know test
and deploy right so all
these all the same phases whatever we
have seen in the waterfall model except
the maintenance phase will keep
repeating in each of these iteration
unless and until
all the requirements that have been
given by the customers
are being completely built and deployed
in different phases so there could be
you know like
five phases ten phases so you know there
there could be multiple phases
depending on how the complex software
is and how many requirements you are
trying to build so there will be another
phase
phase three starting right so this is
how
iterative development model works
now in iterative development model there
wasn't much change the only
change was basically to have
shorter iterations or shorter cycles
and within those cycle you fit a smaller
waterfall model
okay so here if you see this is one
cycle
or iteration okay so iterative came
from iteration so which is nothing but
the duration
of whatever you know weeks or months so
it will be a shorter duration as
compared to
the waterfall approach so in waterfall
approach it was mostly like
six months to one year to you know maybe
it will extend up to two years as well
but in iterative it will come down to
one month or two month
depending on how the organization or
project team wants to manage
and then in the first iteration they'll
pick certain features
and they'll try to build some of the
skeleton or the
initial features then they'll pick
another set of features
in the second iteration right so second
iteration
and they'll build they'll do the you
know requirement analysis
and then design and develop test and
deploy similarly
this whole process will keep continuing
like that
okay now let's take an example of how
um the software will be built
incrementally or basically with the
iterative development approach now say
for example
you want to build a application
um e-commerce application which
has the login functionality right so for
example in the iteration one what team
might do is they will say in first
iteration we'll build
the login page right so we'll build a
skeleton
so we'll have a login page okay and on
the login page we'll just have
the username and password field okay
and the login button so that will be
built in the first iteration so all this
will be built
tested and deployed okay
then um you know after this
they want to add more features right or
more requirements so
the next what they'll do is they might
add you know
they they will be beautify the page so
they'll
add you know more css to beautify the
page and then they might add
forgot so forgot
password functionality in the next
iteration okay or in the next next phase
so this is how they will keep
incrementally adding more functionality
in the iterations in the iterative
development model
so in the first page they'll be in the
first phase they'll do some features in
the next phase they'll
add more features like forgot password
you know
forgot username so all those features
might be available in the next phase
then they in the third phase they might
pick more
features so for example signing up with
the
google signing up with facebook account
so those features can come in
third phase but you can see the
advantage here is
that instead of waiting for two years to
get the whole
you know release or the software you can
get the release very quickly so
there is something working available for
the customer to have a look how
the implementation has happened and
whether it is
meeting the customer's requirement right
so that was the advantage of iterative
development
model but the disadvantage is again it
didn't address
that phased approach right even though
the cycle is still
short but there is still phased approach
requirement need to be frozen then
design will start then development will
start test will start and then
deployment will happen right
so phased approach is still there but
because cycles are
reduced or there are more cycles so
there is still a lot
better you know feedback loop in there
now
um agile is one
you know development approach very
recent uh development approach which is
basically scrum
um and agile
is also or it also follows iterative
approach
right so there are sprints and then
within sprints you
develop small features but you shouldn't
confuse
that agile is exactly similar to what
iterative development model is
agile is a lot more as compared to
iterative development model so it is
similar but it is not same to iterative
development model
please note that right so do not get
confused that
agile or extreme programming they are
you know
similar or exactly same as iterative
development model so
they follow that cadence they follow
that um
you know smaller iterations but
there is a lot more in agile which i'll
explain uh in later tutorials as
compared to iterative development model
so in agile a lot more
drawbacks that were there in waterfall
approaching the model
in iterative model as well they were
being addressed and it's
totally a different you know mindset and
values that needs to be followed when
you are following agile methodology
or any agile development approach like
scrum
so that is all for this particular
tutorial about iterative development
model
hope it was helpful and clear um and
will be helpful for you in your
interviews if you are going for
an interview and somebody asked for what
is iterative development model
whether it's similar to agile or what is
the similarity and
so all those things you can answer to
the interviewer
and even if you are working in any
project it will be really helpful to
know
all these basics before you can actually
become a really good tester
so that's all for this tutorial please
do share and subscribe and thank you for
watching
Посмотреть больше похожих видео
5.0 / 5 (0 votes)