SlideShare a Scribd company logo
Agile
Programming
    Systems
                    # TDD intro


2009, Vitaliy Kulikov
Overview
●   Definitions

●   Advanced testing

●   Summary

●   Questions




                              Agile Programming Systems # TDD intro
What is TDD?
●   Writing the test first

●   Not a way of life

●   Inputs and outputs

●   A cycle




                                 Agile Programming Systems # TDD intro
The Cycle
1. Add a little test
2. Run all tests and fail


3. Make a little change
4. Run all tests and succeed
            Repeat if necessary


5. Refactor to remove duplication
6. Run all tests again and succeed
             Repeat if necessary


7. Repeat cycle


                                        Agile Programming Systems # TDD intro
The Agile Model Driven
Development (AMDD) lifecycle




                      Agile Programming Systems # TDD intro
Summarising TDD
●   Another tool for your toolbox
●   Use as you need it
●   Can be difficult for beginners
●   Frameworks can help


             If it's worth building, it's worth testing.

     If it's not worth testing, why are you wasting your time
                          working on it?

                                                   Agile Programming Systems # TDD intro
Why TDD is Unpopular
●   I can’t afford the time
●   It’s just as effective to do Test-After
●   I’m a developer: I write code, not tests
●   The code I’m working on is untestable
●   I don’t need tests:
    my code is perfect the first time
●   I know I should; I just don’t



                                               Agile Programming Systems # TDD intro
Agile Programming Systems
●
    Extreme Programming
    Built around 12 basic practices ranging from pair programming to frequent refactoring, this
    approach is more prescriptive than the others.
●
    Scrum
    Based on the empirical process control model, Scrum programming relies on self-directed
    teams and dispenses with much advanced planning, task definition and management
    reporting.
●
    Crystal
    This approach empowers the team to define the development process and refine it in
    subsequent iterations until it's stable.
●
    Adaptive
    Based on adaptive rather than deterministic theories, this approach offers a series of
    frameworks to apply adaptive principles and encourage collaboration.
●
    Feature-Driven Development
    This model-driven, short-iteration process is built around the feature, a unit of work that has
    meaning for the client and developer and is small enough to be completed quickly.
●
    Dynamic Systems Development Method
    Conceived as a methodology for rapid application development, DSDM relies on a set of
    principles that include empowered teams, frequent deliverables, incremental development
    and integrated testing.

                                                                             Agile Programming Systems # TDD intro

More Related Content

What's hot (20)

PPT
Test Driven Development
guestc8093a6
 
PDF
An Introduction to Test Driven Development
CodeOps Technologies LLP
 
PPTX
Test Driven Development (TDD) Preso 360|Flex 2010
guest5639fa9
 
PPT
Scrum and Test-driven development
toteb5
 
PPTX
TDD - Test Driven Development
Tung Nguyen Thanh
 
PDF
Introduction to TDD (Test Driven development) - Ahmed Shreef
Ahmed Shreef
 
PPTX
Test-Driven Development
John Blum
 
PPTX
TDD - Agile
harinderpisces
 
PPT
TDD And Refactoring
Naresh Jain
 
PDF
Agile Test Driven Development
Viraf Karai
 
PPTX
A Brief Introduction to Test-Driven Development
Shawn Jones
 
PDF
TDD Flow: The Mantra in Action
Dionatan default
 
PPTX
VT.NET 20160411: An Intro to Test Driven Development (TDD)
Rob Hale
 
PDF
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Zohirul Alam Tiemoon
 
PPTX
Test-Driven Development (TDD)
Brian Rasmussen
 
PDF
Test Driven Development
Dhaval Dalal
 
PPTX
Unit Testing in Action - C#, NUnit, and Moq
XPDays
 
PPTX
Test driven development
Nascenia IT
 
PDF
Test driven development
Sharafat Ibn Mollah Mosharraf
 
PPTX
Software Quality via Unit Testing
Shaun Abram
 
Test Driven Development
guestc8093a6
 
An Introduction to Test Driven Development
CodeOps Technologies LLP
 
Test Driven Development (TDD) Preso 360|Flex 2010
guest5639fa9
 
Scrum and Test-driven development
toteb5
 
TDD - Test Driven Development
Tung Nguyen Thanh
 
Introduction to TDD (Test Driven development) - Ahmed Shreef
Ahmed Shreef
 
Test-Driven Development
John Blum
 
TDD - Agile
harinderpisces
 
TDD And Refactoring
Naresh Jain
 
Agile Test Driven Development
Viraf Karai
 
A Brief Introduction to Test-Driven Development
Shawn Jones
 
TDD Flow: The Mantra in Action
Dionatan default
 
VT.NET 20160411: An Intro to Test Driven Development (TDD)
Rob Hale
 
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Zohirul Alam Tiemoon
 
Test-Driven Development (TDD)
Brian Rasmussen
 
Test Driven Development
Dhaval Dalal
 
Unit Testing in Action - C#, NUnit, and Moq
XPDays
 
Test driven development
Nascenia IT
 
Test driven development
Sharafat Ibn Mollah Mosharraf
 
Software Quality via Unit Testing
Shaun Abram
 

Viewers also liked (7)

PDF
The Agile Movement
Fáber D. Giraldo
 
PDF
Top ten tips for an agile coach
Vitaliy Kulikov
 
PDF
Agile Modeling
Otavio Ferreira
 
PPTX
Agile Practices - eXtreme Programming
Aniruddha Chakrabarti
 
PPTX
Extreme programming (xp)
Mohamed Abdelrahman
 
PPT
extreme Programming
Bilal Shah
 
PDF
LinkedIn SlideShare: Knowledge, Well-Presented
SlideShare
 
The Agile Movement
Fáber D. Giraldo
 
Top ten tips for an agile coach
Vitaliy Kulikov
 
Agile Modeling
Otavio Ferreira
 
Agile Practices - eXtreme Programming
Aniruddha Chakrabarti
 
Extreme programming (xp)
Mohamed Abdelrahman
 
extreme Programming
Bilal Shah
 
LinkedIn SlideShare: Knowledge, Well-Presented
SlideShare
 
Ad

Similar to Agile Programming Systems # TDD intro (20)

PDF
Test Driven Development Methodology and Philosophy
Vijay Kumbhar
 
PDF
Agile and test driven development
Ahmed El-Deeb
 
PPT
Waterfallacies V1 1
Jorge Boria
 
PPT
Test Driven Development - Overview and Adoption
Pyxis Technologies
 
PPTX
TDD in Agile
Atish Narlawar
 
PPTX
agile modeling in project management.pptx
RahatUllah55
 
PPT
lecture24.ppt
emanamin19
 
PPTX
Prashant technical practices-tdd for xebia event
Xebia India
 
PPTX
03 fse agiledevelopment
Mohesh Chandran
 
PPT
Agile Methodology
Suresh Krishna Madhuvarsu
 
PPTX
Test driven development
Luis Goldster
 
PPTX
Test driven development
Young Alista
 
PPTX
Test driven development
Tony Nguyen
 
PPTX
Test driven development
Fraboni Ec
 
PPTX
Test driven development
James Wong
 
PPTX
Test driven development
Harry Potter
 
PDF
Test Driven Development
Valerio Maggio
 
PPT
An Introduction to XP and Agile
Jason Yip
 
PDF
Agile Software Development Process Practice in Thai Culture
Wee Witthawaskul
 
Test Driven Development Methodology and Philosophy
Vijay Kumbhar
 
Agile and test driven development
Ahmed El-Deeb
 
Waterfallacies V1 1
Jorge Boria
 
Test Driven Development - Overview and Adoption
Pyxis Technologies
 
TDD in Agile
Atish Narlawar
 
agile modeling in project management.pptx
RahatUllah55
 
lecture24.ppt
emanamin19
 
Prashant technical practices-tdd for xebia event
Xebia India
 
03 fse agiledevelopment
Mohesh Chandran
 
Agile Methodology
Suresh Krishna Madhuvarsu
 
Test driven development
Luis Goldster
 
Test driven development
Young Alista
 
Test driven development
Tony Nguyen
 
Test driven development
Fraboni Ec
 
Test driven development
James Wong
 
Test driven development
Harry Potter
 
Test Driven Development
Valerio Maggio
 
An Introduction to XP and Agile
Jason Yip
 
Agile Software Development Process Practice in Thai Culture
Wee Witthawaskul
 
Ad

Recently uploaded (12)

PPTX
Psychosocial support activity emotion space.pptx
AnnaMae39
 
PDF
Psychology of Entrepreneurship - Bansko Nomad Fest
Kalin Karakehayov
 
PDF
The Anxious Generation Summary: How Digital Upheaval Is Damaging Youth Mental...
MohammedTouzani2
 
PDF
The Let Them Theory Summary & Review: Master Your Inner Peace
MohammedTouzani2
 
PDF
VPM - III - VPRDM-WASF-RRS-QQ-LWSAWQAFDD
thesisvnit
 
PPTX
Personal Safety for Women - 12 Reasons Why Women Stay in An Abusive Relations...
Robert Kaiser
 
PPTX
Extended_Colorful_Presentation_with_Icons.pptx
w6pvzbjp7m
 
PPTX
reported-speech-grammar-guides-oneonone-activities_125089.pptx
MohamedAhmed292169
 
PPTX
PSAP-G11-and-G12-Bag-of-Feelings-Session-1.pptx
johnrusselvelario492
 
PDF
KK KLUB
zukkunft
 
PDF
Rewire Your Day: 10 Everyday Biohacks for Energy, Clarity, and Empowerment
cathassistservice
 
PPTX
Communication_Skills_Class10_Final.pptx 19/06/2025
namanrastogi70555
 
Psychosocial support activity emotion space.pptx
AnnaMae39
 
Psychology of Entrepreneurship - Bansko Nomad Fest
Kalin Karakehayov
 
The Anxious Generation Summary: How Digital Upheaval Is Damaging Youth Mental...
MohammedTouzani2
 
The Let Them Theory Summary & Review: Master Your Inner Peace
MohammedTouzani2
 
VPM - III - VPRDM-WASF-RRS-QQ-LWSAWQAFDD
thesisvnit
 
Personal Safety for Women - 12 Reasons Why Women Stay in An Abusive Relations...
Robert Kaiser
 
Extended_Colorful_Presentation_with_Icons.pptx
w6pvzbjp7m
 
reported-speech-grammar-guides-oneonone-activities_125089.pptx
MohamedAhmed292169
 
PSAP-G11-and-G12-Bag-of-Feelings-Session-1.pptx
johnrusselvelario492
 
KK KLUB
zukkunft
 
Rewire Your Day: 10 Everyday Biohacks for Energy, Clarity, and Empowerment
cathassistservice
 
Communication_Skills_Class10_Final.pptx 19/06/2025
namanrastogi70555
 

Agile Programming Systems # TDD intro

  • 1. Agile Programming Systems # TDD intro 2009, Vitaliy Kulikov
  • 2. Overview ● Definitions ● Advanced testing ● Summary ● Questions Agile Programming Systems # TDD intro
  • 3. What is TDD? ● Writing the test first ● Not a way of life ● Inputs and outputs ● A cycle Agile Programming Systems # TDD intro
  • 4. The Cycle 1. Add a little test 2. Run all tests and fail 3. Make a little change 4. Run all tests and succeed Repeat if necessary 5. Refactor to remove duplication 6. Run all tests again and succeed Repeat if necessary 7. Repeat cycle Agile Programming Systems # TDD intro
  • 5. The Agile Model Driven Development (AMDD) lifecycle Agile Programming Systems # TDD intro
  • 6. Summarising TDD ● Another tool for your toolbox ● Use as you need it ● Can be difficult for beginners ● Frameworks can help If it's worth building, it's worth testing. If it's not worth testing, why are you wasting your time working on it? Agile Programming Systems # TDD intro
  • 7. Why TDD is Unpopular ● I can’t afford the time ● It’s just as effective to do Test-After ● I’m a developer: I write code, not tests ● The code I’m working on is untestable ● I don’t need tests: my code is perfect the first time ● I know I should; I just don’t Agile Programming Systems # TDD intro
  • 8. Agile Programming Systems ● Extreme Programming Built around 12 basic practices ranging from pair programming to frequent refactoring, this approach is more prescriptive than the others. ● Scrum Based on the empirical process control model, Scrum programming relies on self-directed teams and dispenses with much advanced planning, task definition and management reporting. ● Crystal This approach empowers the team to define the development process and refine it in subsequent iterations until it's stable. ● Adaptive Based on adaptive rather than deterministic theories, this approach offers a series of frameworks to apply adaptive principles and encourage collaboration. ● Feature-Driven Development This model-driven, short-iteration process is built around the feature, a unit of work that has meaning for the client and developer and is small enough to be completed quickly. ● Dynamic Systems Development Method Conceived as a methodology for rapid application development, DSDM relies on a set of principles that include empowered teams, frequent deliverables, incremental development and integrated testing. Agile Programming Systems # TDD intro