Chapter 3:
Software Development Life Cycle
Learning Objectives
 Software Process Development Cycle
 PDCA Cycle
 Phases in SDLC
 SDLC Models
1.Waterfall Model
2. Incremental Model
3.Spiral Model
4. V Model
5. Agile Model
Software Process
Process – Projects – Products
 A software process specifies a method of
developing software.
 A software project on the other hand, is software
application developed to fulfill single client need.
 A Software product is the software application
developed to fulfill market need
ACT DO
CHECK
PLAN Planning &
Designing
Coding &
Production
Testing &
Evaluating
Necessary Actions
PDCA
Software Development Life
Cycle(SDLC)
 Software Development Life Cycle(SDLC) is a
process used by software industry to design,
develop and test high quality software's.
 The SDLC aims to produce a high quality software
that meets or exceeds customer expectations,
reaches completion within times and cost estimates.
 The SDLC consists of a detailed plan describing
how to develop, maintain, replace and alter or
enhance specific software.
Software Development Life
Cycle(SDLC)
 SDLC is a process which includes set of phases
to develop a software systematically.
 Phases of SDLC are:
Requirement
Gathering
& Analysis
Design Development
Maintenance
Deployment
Testing
1.Requirement
Gathering &
Analysis
• Feasibility Study
• Requirements
elicitation,
analysis
• Requirement
Validation
• Documents
• BRD -Business
requirement
Document
• FSD -Functional
requirement
Document
• Baseline
SRS(System
requirement
specification)
• User:
• Business Analyst
and Subject
Matter
Expert
2.Design
• High level
Design
• Low level
Design
• Documents
• Architectural
Plan
• Database design
• Screen design
• Module design
• Program
Specification
• User:
• Technical
Architect, UI
designer Senior
Developer
3.Development
• Developing
Program
Coding
• Interlinking of
Modules
• Debugging
• Unit level
testing
• Code Merging
• Documents
• Working Code
• Unit level
Testing Report
• Module
Interlinking
Testing Report
• User:
• Project
Manager,
Technical Lead,
Tester,
Developer,Test
Lead.
4.Testing
• Checking of
Implemented
functionality
with respect to
requirements
• Tracking the
Defect till
Closure.
• Documents
• Test Scenarios
• Test Cases
• Test Scripts
• Defect report
• User:
• Testers ,Project
Managers ,Tech
Lead,
Developers,
Test Lead,
Business analyst
5.Deployment
• Installation of
code
• Making
Programs and
other
component
available for
customer use
• Creation of
user manual
• User Training
• Documents
• Release Notes
• User Manual
• User:
• Project
Manager,
Technical leads,
Test
Leads ,Testers
and Developers
6.Maintenance
• Preventive
• Corrective
• Adaptive
• perfective
• Documents
• Change
Requests
• Code Changes
• Technical
Specific
Documents
• User:
• Project
Manager,
Technical leads,
Test
Leads ,Testers ,
Developers and
Business Analyst
SDLC Models
 The development process adopted for a project will
depend on the project aims and goals.
 There are numerous development life cycles that
have been developed in order to achieve different
required objectives.
SDLC Models
1.Sequential development
2.Incremental/Iterative development
Waterfall Model
Requirement
Gathering
Analysis &
Design
Implementation
Testing
Maintenance
Deployment
Waterfall Model
 Waterfall model is the earliest SDLC approach that
was used for software development .
 Linear and Sequential Model.
 In Waterfall model once each phase of
development is completed, the development
proceeds to the next phase.
 In waterfall model ,phases do not overlap.
Waterfall Strengths
 Easy to understand, simple to use
 Phases are processed and completed one at a time
 Sets requirements stability
 Good for management control (plan, staff, track)
 Works well for smaller projects where requirements
are very well understand.
Waterfall Weaknesses
 Adjusting scope during the life cycle can kill the
project.
 Deliverables created for each phase are considered
frozen.
 High amount of risk and uncertainty.
 Poor model for complex projects.
 Poor model for long and ongoing projects.
Incremental Model
Requirements
Design Testing
Development
Build 1
Build 2
Build n
Design
Design
Development
Development
Testing
Testing
Incremental Model
 In incremental model the whole requirement is
divided into various builds.
 Cycles are divided up into smaller, more easily
managed modules.
 Each module passes through the requirements,
design, implementation and testing phases.
 Each subsequent release of the module adds
function to the previous release.
 The process continues till the complete system is
achieved.
Advantages of Incremental
Model
 Generates working software quickly and early
during the software life cycle.
 This model is more flexible – less costly to change
scope and requirements.
 It is easier to test and debug during a smaller
iteration.
 In this model customer can respond to each built.
 Lowers initial delivery cost.
 Easier to manage risk because risky pieces are
identified and handled during it’d iteration.
Weakness of Incremental Model
 Needs good planning and design.
 Needs a clear and complete definition of the
whole system before it can be broken down and
built incrementally.
 Total cost is higher than waterfall.
Spiral Model
Spiral SDLC Model
 In a Spiral model the software is developed in a
series of incremental releases.
 There is a Focus on Risk analysis
 Combines the features of the prototyping model
and the waterfall model.
 The fact that the process needs to be iterated more
than once demands more time and is somehow
expensive task.
 This Model is used in large, expensive and
complicated projects.
Spiral Model Strengths
 High amount of risk analysis.
 Good for large and mission critical projects.
 Software is produced early in the SDLC.
Spiral Model Weaknesses
 Can be costly model to use.
 Risk analysis requires highly specific expertise.
 Project success is highly dependent on the risk
analysis phase.
 V-Model evolved from waterfall Model.
 Each phase must be completed before the next
phase begins.
 Instead of moving down in a linear way, the
process steps are bent upwards after the coding
phase, to form the typical V shape.
 Testing is emphasized in this model more than in
the waterfall model.
 It is a structured approach to testing , brings high
quality into the development of our products.
‘V’ Model
‘V’ Model
User
Requirements
Acceptance
Testing
Software
Specification System Testing
Integration
Testing
High Level
Design
Unit Testing
Detailed
Design
Coding
System Test Plan
Integration Test Plan
Unit Test Plan
Acceptance Test Plan
Verification Validation
V-Shaped Strengths
 Works well for small projects where requirements
are easily understood.
 Each phase has specific deliverables.
 Simple and Easy to use.
V-Model Weaknesses
 Very rigid like the waterfall model.
 Software is developed during the developing
phase, so no early prototypes of the software are
produced.
 Does not easily handle dynamic changes in
requirements.
 Does not contain risk analysis activities
 Faults are prevented and it stops fault
multiplication.
• Avoids the downward flow of defect.
 Lower defect Resolution cost due to earlier
detection.
 Improved quality and reliability.
 Reduction in the amount of Re-work.
 Validation at each level of stage containment.
 Allows testers to be active in the project early in
the project’s lifecycle & develop critical knowledge
about the system.
Benefits of V-Model
Agile Model
 Agile development model is also a type of Incremental
model.
 Agile is an iterative approach to project management and
software development that helps teams deliver value to
their customers faster
 Software is developed in incremental, rapid cycles.
 This results in small incremental releases with each release
building on previous functionality.
 Each release is thoroughly tested to ensure software quality
is maintained.
 It is used for time critical applications.
Agile Manifesto
 Individuals & interaction over processes & tools
 Working software over comprehensive documents
 Customer collaboration over contract negotiation
 Responding to change over following a plan
Agile Development Model
Traditional vs Agile Approach
Agile Model Waterfall Model
•Agile methodology definition:Agile
methodologies propose incremental and iterative
approach to software design
•Waterfall Model: Development of the software
flows sequentially from start point to end point.
•The Agile process in software engineering is
broken into individual models that designers
work on
•The design process is not broken into an
individual models
•The customer has early and frequent
opportunities to look at the product and make
decision and changes to the project
•The customer can only see the product at the
end of the project
•Agile model is considered unstructured
compared to the waterfall model
•Waterfall model are more secure because they
are so plan oriented
•Small projects can be implemented very quickly.
For large projects, it is difficult to estimate the
development time.
•All sorts of project can be estimated and
completed.
•Error can be fixed in the middle of the project.
•Only at the end, the whole product is tested. If
the requirement error is found or any changes
must be made, the project has to start from the
beginning
•At the end of every sprint, user acceptance is
performed
•User acceptance is performed at the end of the
project.
Scrum and Sprint
 It is framework through which we build software product
by following Agile principles.
 Scrum teams use inspection throughout an agile project to
ensure that the team meets the goals of each part of the
process.
 Each sprint is divided into its own list of requirements.
 Within each sprint, the development team builds and tests a
functional part of the product until the product owner
accepts it and the functionality becomes a potentially
shippable product.
 Scrum teams deliver product features in increments at the
end of each sprint.
 A product release occurs at the end of a sprint or after
several sprints.
Agile Model-Scrum
.
.
.
.
Product
Owner
AgileTeam
Scrum
Master
Sprint
Review
Product
Backlog
Release/Sprint
Planning
Sprint
Backlog
Retrospective
Meeting
1-4
week
Sprint
Agile – Metrics
Agile metrics provide insight into productivity through the different stages of a software
development lifecycle.
This helps to assess the quality of a product and track team performance
What is a burndown chart?
A burndown chart is a visual representation of the remaining work versus the time required to
complete it.
By estimating the time it takes to complete tasks, issues, and testing, you can determine the
project completion date.
How to create a burndown chart
Step 1. Estimate effort
Step 2. Track daily progress
Step 3. Compute the actual effort
Step 4. Obtain the final dataset
Step 5. Plot the burndown
Burndown chart vs. burnup chart
A burnup chart is used to track how much work has been completed.
Both a burndown chart and a burnup chart keep you informed about different moving parts
within a project, which is why they are frequently used together.
Strength of Agile Model
 High flexibility of the project.
 High customer satisfaction over the development process,
Since Agile projects are closely coordinated with the
customer
 Continuous quality assurance, attention to details as quality
of the product should be ensured by the testing team from
the early stages of Agile development.
Weakness of Agile Model
 Problems with workflow coordination, There is lack of
emphasis on necessary designing and documentation.
 The project can easily get taken off track if the customer
representative is not clear what final outcome that they
want.
 Difficult planning at early stages.
 Professional teams are vital, Agile projects
require teams to make serious decisions constantly so
only experienced software developers, testers, and
managers should be working on the project.
 Lack of long-term planning.
Role of Tester in Agile Team
 Understanding, implementing, and updating the test strategy
 Measuring and reporting test coverage across all applicable
coverage dimensions , Ensuring proper use of testing tools .
 Configuring, using, and managing test environments and
test data , Reporting defects and working with the team to
resolve them.
 Ensuring the appropriate testing tasks are scheduled during
release and iteration planning .
 Actively collaborating with developers and business
stakeholders to clarify requirements, especially in terms of
testability, consistency, and completeness .
Interview Questions
 What are different phases in SDLC?
 What are the strength of waterfall model?
 When to use spiral model?
 What are advantages of Incremental Model?
 Explain V Model
 Explain benefits of V model
 What is the weakness of Agile Model?
 What is Scrum Methodology used in Agile Software
Development ?

Manual Testing Module 3-SDLC.pptx sdlc cycle most important part in manual

  • 1.
  • 2.
    Learning Objectives  SoftwareProcess Development Cycle  PDCA Cycle  Phases in SDLC  SDLC Models 1.Waterfall Model 2. Incremental Model 3.Spiral Model 4. V Model 5. Agile Model
  • 3.
    Software Process Process –Projects – Products  A software process specifies a method of developing software.  A software project on the other hand, is software application developed to fulfill single client need.  A Software product is the software application developed to fulfill market need
  • 4.
    ACT DO CHECK PLAN Planning& Designing Coding & Production Testing & Evaluating Necessary Actions PDCA
  • 5.
    Software Development Life Cycle(SDLC) Software Development Life Cycle(SDLC) is a process used by software industry to design, develop and test high quality software's.  The SDLC aims to produce a high quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates.  The SDLC consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software.
  • 6.
    Software Development Life Cycle(SDLC) SDLC is a process which includes set of phases to develop a software systematically.  Phases of SDLC are: Requirement Gathering & Analysis Design Development Maintenance Deployment Testing
  • 7.
    1.Requirement Gathering & Analysis • FeasibilityStudy • Requirements elicitation, analysis • Requirement Validation • Documents • BRD -Business requirement Document • FSD -Functional requirement Document • Baseline SRS(System requirement specification) • User: • Business Analyst and Subject Matter Expert 2.Design • High level Design • Low level Design • Documents • Architectural Plan • Database design • Screen design • Module design • Program Specification • User: • Technical Architect, UI designer Senior Developer 3.Development • Developing Program Coding • Interlinking of Modules • Debugging • Unit level testing • Code Merging • Documents • Working Code • Unit level Testing Report • Module Interlinking Testing Report • User: • Project Manager, Technical Lead, Tester, Developer,Test Lead. 4.Testing • Checking of Implemented functionality with respect to requirements • Tracking the Defect till Closure. • Documents • Test Scenarios • Test Cases • Test Scripts • Defect report • User: • Testers ,Project Managers ,Tech Lead, Developers, Test Lead, Business analyst 5.Deployment • Installation of code • Making Programs and other component available for customer use • Creation of user manual • User Training • Documents • Release Notes • User Manual • User: • Project Manager, Technical leads, Test Leads ,Testers and Developers 6.Maintenance • Preventive • Corrective • Adaptive • perfective • Documents • Change Requests • Code Changes • Technical Specific Documents • User: • Project Manager, Technical leads, Test Leads ,Testers , Developers and Business Analyst
  • 8.
    SDLC Models  Thedevelopment process adopted for a project will depend on the project aims and goals.  There are numerous development life cycles that have been developed in order to achieve different required objectives. SDLC Models 1.Sequential development 2.Incremental/Iterative development
  • 9.
  • 10.
    Waterfall Model  Waterfallmodel is the earliest SDLC approach that was used for software development .  Linear and Sequential Model.  In Waterfall model once each phase of development is completed, the development proceeds to the next phase.  In waterfall model ,phases do not overlap.
  • 11.
    Waterfall Strengths  Easyto understand, simple to use  Phases are processed and completed one at a time  Sets requirements stability  Good for management control (plan, staff, track)  Works well for smaller projects where requirements are very well understand.
  • 12.
    Waterfall Weaknesses  Adjustingscope during the life cycle can kill the project.  Deliverables created for each phase are considered frozen.  High amount of risk and uncertainty.  Poor model for complex projects.  Poor model for long and ongoing projects.
  • 13.
    Incremental Model Requirements Design Testing Development Build1 Build 2 Build n Design Design Development Development Testing Testing
  • 14.
    Incremental Model  Inincremental model the whole requirement is divided into various builds.  Cycles are divided up into smaller, more easily managed modules.  Each module passes through the requirements, design, implementation and testing phases.  Each subsequent release of the module adds function to the previous release.  The process continues till the complete system is achieved.
  • 15.
    Advantages of Incremental Model Generates working software quickly and early during the software life cycle.  This model is more flexible – less costly to change scope and requirements.  It is easier to test and debug during a smaller iteration.  In this model customer can respond to each built.  Lowers initial delivery cost.  Easier to manage risk because risky pieces are identified and handled during it’d iteration.
  • 16.
    Weakness of IncrementalModel  Needs good planning and design.  Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.  Total cost is higher than waterfall.
  • 17.
  • 18.
    Spiral SDLC Model In a Spiral model the software is developed in a series of incremental releases.  There is a Focus on Risk analysis  Combines the features of the prototyping model and the waterfall model.  The fact that the process needs to be iterated more than once demands more time and is somehow expensive task.  This Model is used in large, expensive and complicated projects.
  • 19.
    Spiral Model Strengths High amount of risk analysis.  Good for large and mission critical projects.  Software is produced early in the SDLC.
  • 20.
    Spiral Model Weaknesses Can be costly model to use.  Risk analysis requires highly specific expertise.  Project success is highly dependent on the risk analysis phase.
  • 21.
     V-Model evolvedfrom waterfall Model.  Each phase must be completed before the next phase begins.  Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape.  Testing is emphasized in this model more than in the waterfall model.  It is a structured approach to testing , brings high quality into the development of our products. ‘V’ Model
  • 22.
    ‘V’ Model User Requirements Acceptance Testing Software Specification SystemTesting Integration Testing High Level Design Unit Testing Detailed Design Coding System Test Plan Integration Test Plan Unit Test Plan Acceptance Test Plan Verification Validation
  • 23.
    V-Shaped Strengths  Workswell for small projects where requirements are easily understood.  Each phase has specific deliverables.  Simple and Easy to use.
  • 24.
    V-Model Weaknesses  Veryrigid like the waterfall model.  Software is developed during the developing phase, so no early prototypes of the software are produced.  Does not easily handle dynamic changes in requirements.  Does not contain risk analysis activities
  • 25.
     Faults areprevented and it stops fault multiplication. • Avoids the downward flow of defect.  Lower defect Resolution cost due to earlier detection.  Improved quality and reliability.  Reduction in the amount of Re-work.  Validation at each level of stage containment.  Allows testers to be active in the project early in the project’s lifecycle & develop critical knowledge about the system. Benefits of V-Model
  • 26.
    Agile Model  Agiledevelopment model is also a type of Incremental model.  Agile is an iterative approach to project management and software development that helps teams deliver value to their customers faster  Software is developed in incremental, rapid cycles.  This results in small incremental releases with each release building on previous functionality.  Each release is thoroughly tested to ensure software quality is maintained.  It is used for time critical applications.
  • 27.
    Agile Manifesto  Individuals& interaction over processes & tools  Working software over comprehensive documents  Customer collaboration over contract negotiation  Responding to change over following a plan
  • 28.
  • 29.
    Traditional vs AgileApproach Agile Model Waterfall Model •Agile methodology definition:Agile methodologies propose incremental and iterative approach to software design •Waterfall Model: Development of the software flows sequentially from start point to end point. •The Agile process in software engineering is broken into individual models that designers work on •The design process is not broken into an individual models •The customer has early and frequent opportunities to look at the product and make decision and changes to the project •The customer can only see the product at the end of the project •Agile model is considered unstructured compared to the waterfall model •Waterfall model are more secure because they are so plan oriented •Small projects can be implemented very quickly. For large projects, it is difficult to estimate the development time. •All sorts of project can be estimated and completed. •Error can be fixed in the middle of the project. •Only at the end, the whole product is tested. If the requirement error is found or any changes must be made, the project has to start from the beginning •At the end of every sprint, user acceptance is performed •User acceptance is performed at the end of the project.
  • 30.
    Scrum and Sprint It is framework through which we build software product by following Agile principles.  Scrum teams use inspection throughout an agile project to ensure that the team meets the goals of each part of the process.  Each sprint is divided into its own list of requirements.  Within each sprint, the development team builds and tests a functional part of the product until the product owner accepts it and the functionality becomes a potentially shippable product.  Scrum teams deliver product features in increments at the end of each sprint.  A product release occurs at the end of a sprint or after several sprints.
  • 31.
  • 32.
    Agile – Metrics Agilemetrics provide insight into productivity through the different stages of a software development lifecycle. This helps to assess the quality of a product and track team performance What is a burndown chart? A burndown chart is a visual representation of the remaining work versus the time required to complete it. By estimating the time it takes to complete tasks, issues, and testing, you can determine the project completion date. How to create a burndown chart Step 1. Estimate effort Step 2. Track daily progress Step 3. Compute the actual effort Step 4. Obtain the final dataset Step 5. Plot the burndown Burndown chart vs. burnup chart A burnup chart is used to track how much work has been completed. Both a burndown chart and a burnup chart keep you informed about different moving parts within a project, which is why they are frequently used together.
  • 33.
    Strength of AgileModel  High flexibility of the project.  High customer satisfaction over the development process, Since Agile projects are closely coordinated with the customer  Continuous quality assurance, attention to details as quality of the product should be ensured by the testing team from the early stages of Agile development.
  • 34.
    Weakness of AgileModel  Problems with workflow coordination, There is lack of emphasis on necessary designing and documentation.  The project can easily get taken off track if the customer representative is not clear what final outcome that they want.  Difficult planning at early stages.  Professional teams are vital, Agile projects require teams to make serious decisions constantly so only experienced software developers, testers, and managers should be working on the project.  Lack of long-term planning.
  • 35.
    Role of Testerin Agile Team  Understanding, implementing, and updating the test strategy  Measuring and reporting test coverage across all applicable coverage dimensions , Ensuring proper use of testing tools .  Configuring, using, and managing test environments and test data , Reporting defects and working with the team to resolve them.  Ensuring the appropriate testing tasks are scheduled during release and iteration planning .  Actively collaborating with developers and business stakeholders to clarify requirements, especially in terms of testability, consistency, and completeness .
  • 36.
    Interview Questions  Whatare different phases in SDLC?  What are the strength of waterfall model?  When to use spiral model?  What are advantages of Incremental Model?  Explain V Model  Explain benefits of V model  What is the weakness of Agile Model?  What is Scrum Methodology used in Agile Software Development ?