SlideShare a Scribd company logo
Agile And Test Driven
Development
Agenda
1. Waterfall vs Agile
2. Agile intro
3. SCRUM
4. Test-Driven Development
● You complete one phase (e.g. Design) before moving on to the next phase
(e.g. Development)
● You rarely aim to revisit a 'phase' once it's completed
Waterfall development
Agile and test driven development
But ..
● You don't realize any value until the end of the project
● You leave the testing until the end
● You don't seek approval from the stakeholders until late in the day
This approach is highly risky, often more costly and generally less efficient than
agile approaches
Waterfall Vs Agile
● Waterfall model
phase by phase:
analysis > design > development >
testing and delivery of whole
functionality
● Agile model
analysis > design > development >
testing and delivery of a small
functional pieces in with short
cycles (Sprints)
Agile and test driven development
Agile
what is agile ?
● In 1970, Dr. Winston Royce presented a paper entitled “Managing the
Development of Large Software Systems.
● In February 2001, seventeen software developers met at the Snowbird resort
in Utah to discuss lightweight development methods. They published the
Manifesto for Agile Software Development.
● agile methodology is described as “iterative” and “incremental.”
what is agile ? ,continue
● In an agile paradigm, every aspect of development — requirements, design,
etc. — is continually revisited throughout the lifecycle.
● Agile methodology is an alternative to traditional project management,
typically used in software development. It helps teams respond to
unpredictability through incremental, iterative work cadences, known as
sprints. Agile methodologies are an alternative to waterfall, or traditional
sequential development.
Agile Development Cycle
● the initial planning
● analysis is kept to a
very high level
● analysing, designing,
developing and
testing
● An iteration is simply a fixed, short period of time that the team chooses to
work within.
● Typically for agile teams, an iteration is between 1 week and 30 days.
● Strictly speaking, the Scrum agile development methodology advocates 30
days .
● The Extreme Programming agile methodology advocates 1 week.
Agile and test driven development
● inspect-and-adapt
● analysis paralysis
● Agile and stakeholders
Benefits of Agile
Types of agile:
● Scrum
● Kanban
● Extreme programming
● Lean software development
Agile principles
The Agile Manifesto is based on twelve principles:
1. Customer satisfaction by early and continuous delivery of useful software
2. Welcome changing requirements, even in late development
3. Working software is delivered frequently (weeks rather than months)
4. Close, daily cooperation between business people and developers
5. Projects are built around motivated individuals, who should be trusted
6. Face-to-face conversation is the best form of communication (co-location)
Agile principles ,continue
7. Working software is the principal measure of progress
8. Sustainable development, able to maintain a constant pace
9. Continuous attention to technical excellence and good design10.
10. Simplicity—the art of maximizing the amount of work not done—is essential
11. self-organizing teams
12. Regular adaptation to changing circumstance
Evolutions
● In 2009, Later, Ken Schwaber with others founded the Scrum Alliance and
created the Certified Scrum Master programs and its derivatives.
Scrum
Scrum
● Split your organization
● Split your work
● Split time
Agile and test driven development
Things we do in Scrum ..
● Backlog
● User stories
● Work estimation
● Roadmap
● Daily scrum meeting
Daily Scrum meeting
Scrum planning example
● Iteration cycle of weeks
● Working hour per day is 8
● Product backlog of 20 stories
● Each story effort is 10 hrs
Total hours of work iteration can accommodate
= 8hrs x 5days x 3weeks = 120 hrs
● Iteration backlog or number of stories per iteration 12 user story
Test-Driven Development (TDD)
What is Test-Driven Development?
● In principle, it is just about writing the test before the program
● But in consequence, it leads the developer to:
○ first think about “how to use” the component (why do we need the component, what’s it for?)
○ and only then about “how to implement”.
● So, it’s a testing technique as well as a design technique
○ It results into components that are easy to test and enhance.
● In the end, there is no code without a test.
Motivation
● If you intend to test after you‘ve developed the system, you won‘t have the
time for testing. => Write the tests before the code!
● If things get complicated, you might fear that „the system“ doesn‘t work.
=> Execute the tests and get positive feedback (everything still works) or get
pointed to the bit that does not / no longer work.
● If you don‘t have tests for the code, you shouldn‘t use it / ship it.
=> This can‘t happen if you write the test first (so you reach
better test coverage than with functional tests).
Mechanics of TDD
● Always start with a failing test
● Quickly write the simplest code needed to pass the test
● Remove duplication
● Repeat as needed to meet requirements
● Test everything that could possibly break
What should be tested?
● Valid inputs
● Invalid inputs
● Errors, exceptions, and events
● Boundary conditions
● Everything that could possibly break!
TDD Benefits for Developers
● Much less debug time
● Code proven to meet requirements
● Don’t write any un-necessary code
Getting started with TDD
● Get some training
● Start with a small visible project
● Shoot for 100% test coverage
● Don’t expect to be perfect
● Expect to improve dramatically in time
● Measure the results
Thanks !

More Related Content

PDF
Test Driven Development (TDD) & Continuous Integration (CI)
PDF
Agile Test Driven Development
PPT
Scrum and Test-driven development
PPTX
TDD That Was Easy!
PPTX
Test driven development
PDF
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
PDF
Test Driven Development
PDF
A Not-So-Serious Introduction to Test Driven Development (TDD)
Test Driven Development (TDD) & Continuous Integration (CI)
Agile Test Driven Development
Scrum and Test-driven development
TDD That Was Easy!
Test driven development
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Test Driven Development
A Not-So-Serious Introduction to Test Driven Development (TDD)

What's hot (20)

PPTX
From Gatekeeper to Partner by Kelsey Shannahan
PDF
Hey You Got Your TDD in my SQL DB by Jeff McKenzie
PDF
Agile Programming Systems # TDD intro
PPTX
A Brief Introduction to Test-Driven Development
PPTX
Test Driven Development
PPT
Test Driven Development
PDF
Test Driven Development
PPT
Test Driven Development
PPTX
Unit testing for project managers
PPTX
How to be proud when you are done
PPT
Test drive on driven development process
PDF
Test Driven Development (TDD)
ODP
Extreme Programming
PPTX
XP Injection
PDF
What is Agile Testing?
PPTX
Code review
PDF
Test driven development
PPTX
Acceptance Test Driven Development
PDF
Test driven development
From Gatekeeper to Partner by Kelsey Shannahan
Hey You Got Your TDD in my SQL DB by Jeff McKenzie
Agile Programming Systems # TDD intro
A Brief Introduction to Test-Driven Development
Test Driven Development
Test Driven Development
Test Driven Development
Test Driven Development
Unit testing for project managers
How to be proud when you are done
Test drive on driven development process
Test Driven Development (TDD)
Extreme Programming
XP Injection
What is Agile Testing?
Code review
Test driven development
Acceptance Test Driven Development
Test driven development
Ad

Viewers also liked (7)

PPTX
PHP Experience 2016 - [Workshop] Agile: Test Driven Development
PPT
Test-Driven Development in the Corporate Workplace
PDF
ODD: Extending Agile 1.3
PPTX
ABAPCodeRetreat 23.7.2016 - TDD
PDF
Context driven agile tester - from outsourcing to startup world – EclipseCon ...
PPTX
Informed & Agile: Test Driven Design w/ Jon Innes
PDF
Test Driven Design - GDG DevFest Istanbul 2016
PHP Experience 2016 - [Workshop] Agile: Test Driven Development
Test-Driven Development in the Corporate Workplace
ODD: Extending Agile 1.3
ABAPCodeRetreat 23.7.2016 - TDD
Context driven agile tester - from outsourcing to startup world – EclipseCon ...
Informed & Agile: Test Driven Design w/ Jon Innes
Test Driven Design - GDG DevFest Istanbul 2016
Ad

Similar to Agile and test driven development (20)

PDF
Software Development Methodologies
PPTX
Agile Software Development with Scrum_ A Complete Guide to The Steps in Agile...
PPTX
Agile
ODP
Introduction To Agile
PPTX
Chapter 3 -Project selection and management.ppt
ODP
What is xp
PDF
Managing software projects & teams effectively
PPTX
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
PPTX
Agile methodology
PPTX
Agile and its impact to Project Management 022218.pptx
PPTX
Agile process model powerpoint presentat
PPTX
Flavours of agile software engineering
PPTX
Flavours of agile software engineering
PDF
Software Engineering SDLC phases and SRS.pdf
PDF
Agile Model & Methodology
PPTX
Agile Project Management
PPTX
Test strategy
PPTX
TDD in Agile
PDF
Agile Methodologies by TechDesti
Software Development Methodologies
Agile Software Development with Scrum_ A Complete Guide to The Steps in Agile...
Agile
Introduction To Agile
Chapter 3 -Project selection and management.ppt
What is xp
Managing software projects & teams effectively
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Agile methodology
Agile and its impact to Project Management 022218.pptx
Agile process model powerpoint presentat
Flavours of agile software engineering
Flavours of agile software engineering
Software Engineering SDLC phases and SRS.pdf
Agile Model & Methodology
Agile Project Management
Test strategy
TDD in Agile
Agile Methodologies by TechDesti

Recently uploaded (20)

PDF
Approach and Philosophy of On baking technology
PDF
cuic standard and advanced reporting.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
A Presentation on Artificial Intelligence
Approach and Philosophy of On baking technology
cuic standard and advanced reporting.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Spectroscopy.pptx food analysis technology
Network Security Unit 5.pdf for BCA BBA.
Per capita expenditure prediction using model stacking based on satellite ima...
Advanced methodologies resolving dimensionality complications for autism neur...
Mobile App Security Testing_ A Comprehensive Guide.pdf
A comparative analysis of optical character recognition models for extracting...
MYSQL Presentation for SQL database connectivity
Chapter 3 Spatial Domain Image Processing.pdf
Empathic Computing: Creating Shared Understanding
Programs and apps: productivity, graphics, security and other tools
Digital-Transformation-Roadmap-for-Companies.pptx
The AUB Centre for AI in Media Proposal.docx
“AI and Expert System Decision Support & Business Intelligence Systems”
Unlocking AI with Model Context Protocol (MCP)
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Review of recent advances in non-invasive hemoglobin estimation
A Presentation on Artificial Intelligence

Agile and test driven development

  • 1. Agile And Test Driven Development
  • 2. Agenda 1. Waterfall vs Agile 2. Agile intro 3. SCRUM 4. Test-Driven Development
  • 3. ● You complete one phase (e.g. Design) before moving on to the next phase (e.g. Development) ● You rarely aim to revisit a 'phase' once it's completed Waterfall development
  • 5. But .. ● You don't realize any value until the end of the project ● You leave the testing until the end ● You don't seek approval from the stakeholders until late in the day This approach is highly risky, often more costly and generally less efficient than agile approaches
  • 6. Waterfall Vs Agile ● Waterfall model phase by phase: analysis > design > development > testing and delivery of whole functionality ● Agile model analysis > design > development > testing and delivery of a small functional pieces in with short cycles (Sprints)
  • 9. what is agile ? ● In 1970, Dr. Winston Royce presented a paper entitled “Managing the Development of Large Software Systems. ● In February 2001, seventeen software developers met at the Snowbird resort in Utah to discuss lightweight development methods. They published the Manifesto for Agile Software Development. ● agile methodology is described as “iterative” and “incremental.”
  • 10. what is agile ? ,continue ● In an agile paradigm, every aspect of development — requirements, design, etc. — is continually revisited throughout the lifecycle. ● Agile methodology is an alternative to traditional project management, typically used in software development. It helps teams respond to unpredictability through incremental, iterative work cadences, known as sprints. Agile methodologies are an alternative to waterfall, or traditional sequential development.
  • 11. Agile Development Cycle ● the initial planning ● analysis is kept to a very high level ● analysing, designing, developing and testing
  • 12. ● An iteration is simply a fixed, short period of time that the team chooses to work within. ● Typically for agile teams, an iteration is between 1 week and 30 days. ● Strictly speaking, the Scrum agile development methodology advocates 30 days . ● The Extreme Programming agile methodology advocates 1 week.
  • 14. ● inspect-and-adapt ● analysis paralysis ● Agile and stakeholders Benefits of Agile
  • 15. Types of agile: ● Scrum ● Kanban ● Extreme programming ● Lean software development
  • 16. Agile principles The Agile Manifesto is based on twelve principles: 1. Customer satisfaction by early and continuous delivery of useful software 2. Welcome changing requirements, even in late development 3. Working software is delivered frequently (weeks rather than months) 4. Close, daily cooperation between business people and developers 5. Projects are built around motivated individuals, who should be trusted 6. Face-to-face conversation is the best form of communication (co-location)
  • 17. Agile principles ,continue 7. Working software is the principal measure of progress 8. Sustainable development, able to maintain a constant pace 9. Continuous attention to technical excellence and good design10. 10. Simplicity—the art of maximizing the amount of work not done—is essential 11. self-organizing teams 12. Regular adaptation to changing circumstance
  • 18. Evolutions ● In 2009, Later, Ken Schwaber with others founded the Scrum Alliance and created the Certified Scrum Master programs and its derivatives.
  • 19. Scrum
  • 20. Scrum ● Split your organization ● Split your work ● Split time
  • 22. Things we do in Scrum .. ● Backlog ● User stories ● Work estimation ● Roadmap ● Daily scrum meeting
  • 24. Scrum planning example ● Iteration cycle of weeks ● Working hour per day is 8 ● Product backlog of 20 stories ● Each story effort is 10 hrs Total hours of work iteration can accommodate = 8hrs x 5days x 3weeks = 120 hrs ● Iteration backlog or number of stories per iteration 12 user story
  • 26. What is Test-Driven Development? ● In principle, it is just about writing the test before the program ● But in consequence, it leads the developer to: ○ first think about “how to use” the component (why do we need the component, what’s it for?) ○ and only then about “how to implement”. ● So, it’s a testing technique as well as a design technique ○ It results into components that are easy to test and enhance. ● In the end, there is no code without a test.
  • 27. Motivation ● If you intend to test after you‘ve developed the system, you won‘t have the time for testing. => Write the tests before the code! ● If things get complicated, you might fear that „the system“ doesn‘t work. => Execute the tests and get positive feedback (everything still works) or get pointed to the bit that does not / no longer work. ● If you don‘t have tests for the code, you shouldn‘t use it / ship it. => This can‘t happen if you write the test first (so you reach better test coverage than with functional tests).
  • 28. Mechanics of TDD ● Always start with a failing test ● Quickly write the simplest code needed to pass the test ● Remove duplication ● Repeat as needed to meet requirements ● Test everything that could possibly break
  • 29. What should be tested? ● Valid inputs ● Invalid inputs ● Errors, exceptions, and events ● Boundary conditions ● Everything that could possibly break!
  • 30. TDD Benefits for Developers ● Much less debug time ● Code proven to meet requirements ● Don’t write any un-necessary code
  • 31. Getting started with TDD ● Get some training ● Start with a small visible project ● Shoot for 100% test coverage ● Don’t expect to be perfect ● Expect to improve dramatically in time ● Measure the results