0% found this document useful (0 votes)
103 views

Software Models

The document summarizes different software development and testing models including waterfall, V-model, agile, spiral, iterative, RAD and prototype models. It describes the key phases and advantages/disadvantages of waterfall and V-model. Waterfall model involves sequential phases from requirements to maintenance while V-model adds testing phases parallel to each development phase. Agile model focuses on iterative development through collaboration between cross-functional teams.

Uploaded by

AdiOvidiu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
103 views

Software Models

The document summarizes different software development and testing models including waterfall, V-model, agile, spiral, iterative, RAD and prototype models. It describes the key phases and advantages/disadvantages of waterfall and V-model. Waterfall model involves sequential phases from requirements to maintenance while V-model adds testing phases parallel to each development phase. Agile model focuses on iterative development through collaboration between cross-functional teams.

Uploaded by

AdiOvidiu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 60

Software testing

models
Summary

● Software development ● Waterfall Model


life cycle - SDLC ● Agile Model
● Software testing life ● Advantages and
cycle - STLC disadvantages for each
● V-Model model
SDLC

The SDLC aims to produce a high-quality software that meets


or exceeds customer expectations, reaches completion within
times and cost estimates.
SDLC

Planning

Maintenance Defining
SDLC
Deployment Designing

Testing Building
SDLC - Planning

● Business requirements are gathered in this phase.


● This phase is the main focus of the project managers and
stakeholders.
● It also details the risks involved and provides sub-plans for
softening those risks.
SDLC - Defining

● Finally, a Requirement Specification document is created


which serves the purpose of guideline for the next phase of
the model. This is done through an SRS document.
● The testing team can start the test planning phase after the
requirements analysis is completed.
SDLC - Design

● System Design helps in specifying hardware and system


requirements and also helps in defining overall system
architecture.
● All stakeholders then review this plan and offer feedback
● Failure at this stage will almost certainly result in cost
overruns at best and total collapse of the project at worst.
● In this phase the testers come up with the Test strategy,
where they mention what to test, how to test.
SDLC - Building

● On receiving DDS, the work is divided in modules/units and


actual coding is started.
● In this phase the code is produced so it is the main focus for
the developer.
● This should be the longest phase of the software development
life cycle.
SDLC - Testing

● The testing activities are mostly involved in all the stages of


SDLC.
● This stage refers to the testing only phase of the product
where product defects are reported, tracked, fixed and
retested, until the product reaches the quality standards
defined in the SRS.
SDLC - Deployment

After successful testing the product is delivered/deployed to the


customer for their use.

● Beta testing

● Final deploy, after fixing defects from beta testing.


SDLC - Maintenance

● When the customers start using the system then the actual
problems come up and need to be solved or updated from
time to time.
● The plan almost never turns out perfect when it meets reality
● Conditions in the real world change often, software needs
updates as well in order to match
STLC

It is a testing process which has specific steps to be


executed in a definite sequence to ensure that the
quality goals have been met.
STLC - Phases

1. Requirement Analysis 2. Test Planning

3. Test Case Development 4. Environment Setup

5. Test Execution 6. Test Closure Activity


STLC - Requirement Analysis

● During this phase, test team studies the requirements


from a testing point of view to identify the testable
requirements. Testers get an understanding of the scope
of testing.
● This phase might involve conversations with developers,
designers, and stakeholders.
STLC - Test Planning

● What to test ?

● How the testing needs to be done ?

● Who is going to test it ?

After all these questions are clarified a test plan document is


created. This phase gets everyone on the same page as far as how
the testing project will be approached.
STLC - Test Case Development

● This phase involves creation, verification and rework of test


cases and test scripts.
● Here you should determine in details "how" to test.
● If old test cases are being used, make sure they are up to
date.
● Many tests might require test data. Prepare any test data
required to run tests during this phase
STLC - Environment Setup

● The test environment is the configuration of software


and/or hardware on which the testing team is going to
perform the tests
● Make sure any test data necessary is entered into the system
and ready to be used.
● It's not uncommon for this phase to happen alongside the test
case development phase.
STLC - Test Execution

It’s time to run the tests!


● Using the test cases, the tester executes each test,
comparing the expected results to the actual results of
each test and marking it as passed/failed/skipped
● If the test fails, the tester should document what actually
happened during the test.
● This phase also involves the tester recording bugs
STLC - Closure Activity

● This involves an analysis of defects found and other


metrics such as how many passed/failed/skipped test
cases.
● Retrospective on the testing project/process to allows
the team to learn and improve for future testing projects.
Software development Models

● Spiral model
● Waterfall model
● Iterative model
● V model
● RAD
● Agile model
● Prototype model
Spiral model

● Combines features of prototyping and waterfall,


● Uses many phases from waterfall, basically in the same
order, separated by building of prototypes and
simulations
● Works well for large, complicated and expensive projects
Iterative model

● Implement a system through repeated cycles - iterations


- in smaller pieces at a time - incremental
● Allows the team to learn from earlier development
iterations
● It can be built from smaller waterfall or V-model series
RAD model

● Rapid Application Development model


● A type of iterative model, where components/features
are developer in parallel as mini projects
● They are time-boxed, delivered and then built into
working prototypes
● Thus, customer can quickly see/use something and
provide feedback regarding any needed changes
Prototype model

● Activity based on creating series of prototypes for


software sistems
● When the final prototype is developed & accepted by the
customer, the requirements is considered done
Waterfall model

● Waterfall approach was first SDLC Model to be used


widely in Software Engineering to ensure success of the
project.
● In this model, typically, the outcome of one phase acts
as the input for the next phase sequentially.
● In waterfall, development of one phase starts only
when the previous phase is complete.
Waterfall model steps
Waterfall - Advantages
● This model is simple, easy to understand and use.

● It is easy to manage due to the rigidity of the model – each


phase has specific deliverables and a review process.

● Phases are processed and completed one at a time.

● Clearly defined stages.

● Process and results are well documented.


Waterfall - Disadvantages

● High amounts of risk and uncertainty.


● Not a good model for complex projects, poor model for
long and ongoing projects.

● Not suitable for the projects where requirements are at a


moderate to high risk of changing.
Waterfall - Disadvantages

● It is difficult to measure progress within stages.


● Adjusting scope during the life cycle can end a project.
● Integration is done as a "big-bang" at the very end, which
doesn't allow identifying any technological or business
challenges early.
Waterfall - When to use it

● When there is a clear picture of what the final product


should be.
● When clients won’t have the ability to change the scope
of the project once it has begun.
● The project is short and the technology is understood.
● When the requirements are very well known, clear and
fixed.
Waterfall - When to use it

● When there is a clear picture of what the final product


should be.
● When clients won’t have the ability to change the scope
of the project once it has begun.
● The project is short and the technology is understood.
● When the requirements are very well known, clear and
fixed.
V-Model

● V-Model is a sequential path of execution of processes,


as an extension of the waterfall model
● Each phase must be completed before the next phase
begins
● The major difference between V-shaped model and
waterfall model is the early test planning in the V-shaped
model.
V-Model Steps
V-Model Advantages

● Simple and easy to use.


● This is a highly-disciplined model and phases are
completed one at a time.

● Many testing activities are performed in the beginning


like planning and design which saves lots of testing time.
V-Model Advantages

● Most of the defects and bugs are found in the beginning


of the project development
● Proactive defect tracking – that is defects are found at
early stage.

● Works well for small projects where requirements are


easily understood.
V-Model Disadvantages

● Very rigid and least flexible, poor model for long and
ongoing projects.
● Not suitable for the projects where requirements are at a
moderate to high risk of changing.
● Once an application is in the testing stage, it is difficult to
go back and change a functionality
● If any changes happen in midway, then the test documents
along with requirement documents has to be updated.
V-Model - When to use it

● Should be used for small to medium sized projects where


requirements are clearly defined and fixed.

● Should be chosen when ample technical resources are


available with needed technical expertise.
Agile Model

● AGILE methodology is a practice that promotes


continuous iteration of development and testing
throughout the software development lifecycle of the
project.
● It is based on iterative and incremental development,
where requirements and solutions evolve through
collaboration between cross-functional teams.
Agile Model

● Agile is a time boxed, iterative approach to software delivery


that builds software incrementally from the start of the
project, instead of trying to deliver it all at once near the end.
● It works by breaking projects down into little bits of user
functionality called user stories, prioritizing them, and then
continuously delivering them in short two week cycles called
iterations.
Agile Model Principles

● Individuals and interactions - over processes and tools


● Working software - over comprehensive documentation
● Customer collaboration - over contract negotiation
● Responding to change - over following a plan
Agile Model Advantages

● Customer satisfaction by rapid, continuous delivery of


useful software.

● Is a very realistic approach to software development.


● Promotes teamwork and cross training. Face-to-face
conversation is the best form of communication.

● Functionality can be developed rapidly and showcased.


Agile Model Advantages

● No such thing as '80% completed'. It is either 'done' or


'not done'
● Suitable for fixed or changing requirements
● Delivers early partial working solutions.
● Good model for environments that change frequently.
Even late changes in requirements are welcomed
Agile Model Advantages

● Standard specs: THE SYSTEM SHALL, THE USER WILL


● Agile introduces the USER STORY:
As an user
In order to…
I want to…
● Story telling in order to set up business goals
Agile Model Advantages

● Minimal rules, documentation easy to use.


● Enables concurrent development and delivery within an
overall planned context.

● Easy to manage, gives flexibility to the team.


Agile Model Disadvantages

● The project can easily get taken off track if the customer
representative is not clear what final outcome that they
want.
● Not suitable for handling complex dependencies.
Specially at the beginning of the project and with junior
developers.
Agile Model Disadvantages

● More risk of sustainability, maintainability and


extensibility.

● An overall plan, an agile leader and agile PM practice is a


must without which it will not work.

● Strict delivery management dictates the scope,


functionality to be delivered and adjustments needed in
order to meet the deadlines.
Agile Keywords

● The Overall Team – Team, Scrum Master, product owner


● Product Backlog – the ongoing, prioritized list of “to do” tasks and
features that are defined by business customers
● Sprint Planning – planning session at the beginning of a sprint to
determine the items that the team agrees to take on and deliver as
the output of a sprint
● Stories/Story Board – collection of collective elements, functions,
or “features” that are to be delivered within a sprint
Agile Keywords
● Daily Standup – daily discussion on what was
accomplished, what remains to be done, and obstacles
● Sprint Burndown Chart – artifact showing progress and
work remaining in a sprint
● Sprint Demo – demonstration conducted at the end of
the sprint to show product(s) delivered
● Retrospective – team discussion following the sprint to
identify successes and improvement opportunities
Agile vs Waterfall
Poor quality in waterfall
When the project starts to

run out of time and money,

testing is the only phase left.

This means good projects are

forced to cut testing short and

quality suffers.
Agile vs Waterfall

Poor visibility in waterfall

Because working software isn't produced until the end of the


project, you never really know where you are on Waterfall project. That
last 20% of the project always seems to take 80% of the time.
Agile vs Waterfall

Can't handle change in waterfall

Most importantly,
it's just not a great
way for handling change.
Agile vs Waterfall

Agile Approach
Instead of treating

these fixed stages,

Agile believes these

are continuous activities.


Agile vs Waterfall

Agile Approach
Instead of treating

these fixed stages,

Agile believes these

are continuous activities.


Agile frameworks

● Agile works incrementally, collaboratively and flexibly


● It does not prescribe a specific framework or methodology
● Most used Agile adoptions (frameworks) teams may choose are:
○ Scrum
○ Kanban
Agile Scrum

● Scrum is a subset of Agile. It is a lightweight process framework for


agile development, and the most widely-used one.
● An agile Scrum process benefits the organization by helping it to:
○ Increase the quality of the deliverables
○ Adapt better with change (and expect the changes)
○ Provide better estimates while spending less time creating them
○ Be more in control of the project schedule and state
Agile Model
Agile Model
Agile Kanban

● Visualize what you do today (workflow): seeing all the items in


context of each other can be very informative
● Limit the amount of work in progress (WIP): this helps balance the
flow-based approach so teams don t start and commit to too
much work at once
● Enhance flow: when something is finished, the next highest thing
from the backlog is pulled into play
References
● Agile Testing: A Practical Guide for Testers and Agile Teams
○ https://www.amazon.com/Agile-Testing-Practical-Guide-Testers/dp/0321534468
● Basic SDLC methodologies
○ https://www.roberthalf.com/blog/salaries-and-skills/6-basic-sdlc-methodologies-which-one
-is-best
● SDLC Models and methodologies
○ https://melsatar.blog/2012/03/15/software-development-life-cycle-models-and-methodolo
gies/
● Agile vs. Waterfall
○ https://www.smartsheet.com/agile-vs-scrum-vs-waterfall-vs-kanban
● Scrum Guide
○ http://www.scrumguides.org/scrum-guide.html
● Kanban Guide
○ https://www.atlassian.com/agile/kanban
Questions?

You might also like