SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
Test Driven Development 
In An Agile Environment


   Presented by Mr. Viraf Karai

                 

      on Mon. Jan 19, 2009
Topics covered
    Agile manifesto            Myths about TDD
                          



    Evolutionary dvlp &        TDD benefits
                          


    design                     Ideal qualities of unit 
                           


    TDD philosophy             tests




    TDD steps                  Resources
                          



    TDD states




    Legacy development





                                                          2
The Agile Manifesto
    Composed by heavy hitters in the software industry 



    in Snowbird, UT in February 2001
    Included folks backing methodologies such as 



    Scrum, XP, Crystal, Feature driven developemt, etc.
    Big names such as Martin Fowler, Robert C Martin 



    (Uncle Bob), Alistair Cockburn, Ken Schwaber, 
    Dave Thomas, etc.




                                                          3
The Agile Manifesto – principles
                                      Primary metric of progress is 
    Continuous delivery           


                                      working software
    Welcome changing reqs


                                      All participants should 
                                  

    Deliver working software 

                                      maintain a constant pace
    frequently
                                      Continuous attention to tech 
                                  

    Involve biz and developers 

                                      excellence & good design
    throughout the project
                                      Simplicity is essential
                                  

    Build projects around 


                                      Self organizing teams
    motivated folks               



                                      Periodic retrospectives
    Communication should be       



    face­to­face

                                                                      4
A couple of quotes
The act of writing a unit test is more an act of design 
 than verification  (Robert C Martin aka Uncle Bob)


Walking on water and developing software from a 
 specification are both easy if both are frozen 
 (Edward V. Berard)




                                                           5
Evolutionary dvlp and design
     Evolutionary  development  is  an  iterative  and  incremental  approach 
       to software development.  
    Instead  of  creating  a  comprehensive  artifact,  such  as  a  requirements 



    specification,  that  you  review  and  accept  before  creating  a 
    comprehensive  design  model  (and  so  on)  you  instead  evolve  the 
    critical development artifacts over time in an iterative manner.  
    Instead  of  building  and  then  delivering  your  system  in  a  single  “big 



    bang” release you instead deliver it incrementally over time. Yes, you 
    will likely still need to do some initial requirements and architecture 
    envisioning, but this is at a high level ­­ I can't say this enough, you 
    don't need to do big modeling up­front (BMUF) 
– Scott Ambler

                                                                                  6
Evolutionary design steps




                                7
Test Driven Dvlp (TDD) Philosophy
    The basic tenets are developing and implementing 



    unit tests before writing a line of code
    Unit tests will and must fail up front




    Code is developed after the test is developed.




    A unique idea that is still foreign to many 



    developers




                                                        8
TDD steps




                9
TDD steps 
    Quickly add a test ­ just enough code to fail test




    Run test­suite to ensure test fails (may choose to run 



    a subset of suite)
    Update your functional code to ensure new test 



    passes
    Re­run test suite and keep updating functional code 



    until test passes
    Refactor and move on





                                                         10
TDD states




                 11
TDD and agile
    TDD implies agile.




    Strong emphasis on testing 




    Tests should span entire breadth of codebase




    Once all software is ready for delivery, all tests 



    should pass 
    A unique way to address modern challenges in 



    software development



                                                          12
Legacy software dvlp and testing
    Mostly implies a waterfall/big­bang process




    Very little emphasis on unit testing by developers




    Tests are almost developed as an afterthought




    Tests are mostly manual




    Huge emphasis on QA team 




    Delivering quality software on time and within 



    budget is almost accidental


                                                         13
Myths about TDD
    Myth: TDD is ok for small projects involving a 



    handful of folks but won't scale to large projects 
    involving scores or hundreds of people.
    Answer: Not true. 



        Kent Beck worked on a pure TDD project developed in 
    


        Smalltalk.
        4 years and 40 man years of effort resulting in 250K lines 
    


        of func code and 250K lines of test code
        4,000 tests run in under 20 mins
    


        Full suite runs several times a day
    


                                                                 14
TDD benefits
    Shortens the programming feedback




    Provides detailed (executable) specifications




    Promotes development of high­quality code




    Provides concrete evidence that your code works




    Requires developers to prove it with code




    Provides finely­grained, concrete feedback (in mins)




    Ensures that your design is clean by focusing on creation of 



    operations that are callable and testable
    Supports evolutionary development




                                                                15
Six ideal qualities of unit tests
    Decisive – has all info to determine success/failure




    Valid – produces a result that matches the intention of the work 



    artifact under test
    Complete ­  contains all the information it needs to run correctly with 



    a given test harness and work artifact under test
    Repeatable ­ always gives the same results if the test harness and the 



    artifact under test are the same i.e. Is deterministic
    Isolated ­ is not affected by other tests run before it nor does a test 



    affect the results of tests run after it
    Automated ­ requires only a start signal in order to run to completion 



    in a finite amount of time

                                                                               16
Why TDD


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

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

                 ­ Scott Ambler



                                                  17
Resources
    Test Driven Development By Example – Kent Beck




    Test Driven: TDD And Acceptance TDD For Java 



    Developers ­ Lasse Koskela
    http://www.testdriven.com




    http://www.agiledata.org




    Junit 4 in 10 minutes



    http://www.instrumentalservices.com/media/articles/java
     

                                                      18
Questions




                19

Contenu connexe

Tendances

Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven DevelopmentJohn Blum
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentMireia Sangalo
 
Unit and integration Testing
Unit and integration TestingUnit and integration Testing
Unit and integration TestingDavid Berliner
 
Agile QA presentation
Agile QA presentationAgile QA presentation
Agile QA presentationCarl Bruiners
 
TDD (Test Driven Design)
TDD (Test Driven Design)TDD (Test Driven Design)
TDD (Test Driven Design)nedirtv
 
Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010guest5639fa9
 
Manual testing concepts course 1
Manual testing concepts course 1Manual testing concepts course 1
Manual testing concepts course 1Raghu Kiran
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing ProcessIntetics
 
QA interview questions and answers
QA interview questions and answersQA interview questions and answers
QA interview questions and answersMehul Chauhan
 
Introduction to TDD (Test Driven development) - Ahmed Shreef
Introduction to TDD (Test Driven development) - Ahmed ShreefIntroduction to TDD (Test Driven development) - Ahmed Shreef
Introduction to TDD (Test Driven development) - Ahmed ShreefAhmed Shreef
 
Software Testing 101
Software Testing 101Software Testing 101
Software Testing 101QA Hannah
 

Tendances (20)

Nunit
NunitNunit
Nunit
 
devops
devops devops
devops
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Unit and integration Testing
Unit and integration TestingUnit and integration Testing
Unit and integration Testing
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
 
Pair Programming
Pair ProgrammingPair Programming
Pair Programming
 
Agile QA presentation
Agile QA presentationAgile QA presentation
Agile QA presentation
 
TDD (Test Driven Design)
TDD (Test Driven Design)TDD (Test Driven Design)
TDD (Test Driven Design)
 
Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Manual testing concepts course 1
Manual testing concepts course 1Manual testing concepts course 1
Manual testing concepts course 1
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
QA interview questions and answers
QA interview questions and answersQA interview questions and answers
QA interview questions and answers
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Presentation on Agile Testing
Presentation on Agile TestingPresentation on Agile Testing
Presentation on Agile Testing
 
Manual testing
Manual testingManual testing
Manual testing
 
Introduction to TDD (Test Driven development) - Ahmed Shreef
Introduction to TDD (Test Driven development) - Ahmed ShreefIntroduction to TDD (Test Driven development) - Ahmed Shreef
Introduction to TDD (Test Driven development) - Ahmed Shreef
 
Testing web application
Testing web applicationTesting web application
Testing web application
 
Software Testing 101
Software Testing 101Software Testing 101
Software Testing 101
 

Similaire à Agile Test Driven Development

Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cyclenayanbanik
 
Are Agile Projects Doomed To Halfbaked Design
Are Agile Projects Doomed To Halfbaked DesignAre Agile Projects Doomed To Halfbaked Design
Are Agile Projects Doomed To Halfbaked Designeraz
 
How BDD enables True CI/CD
How BDD enables True CI/CDHow BDD enables True CI/CD
How BDD enables True CI/CDRoger Turnau
 
Manchester ITExpo Talk: DevOps large and small - Cambridge Satchel
Manchester ITExpo Talk:  DevOps large and small - Cambridge SatchelManchester ITExpo Talk:  DevOps large and small - Cambridge Satchel
Manchester ITExpo Talk: DevOps large and small - Cambridge SatchelJwooldridge
 
Testing Sap: Modern Methodology
Testing Sap: Modern MethodologyTesting Sap: Modern Methodology
Testing Sap: Modern MethodologyEthan Jewett
 
SD DevOps Meet-up - Exploring Quadrants of DevOps Maturity
SD DevOps Meet-up - Exploring Quadrants of DevOps MaturitySD DevOps Meet-up - Exploring Quadrants of DevOps Maturity
SD DevOps Meet-up - Exploring Quadrants of DevOps MaturityBrian Dawson
 
Agile Java Testing With Open Source Frameworks
Agile Java Testing With Open Source FrameworksAgile Java Testing With Open Source Frameworks
Agile Java Testing With Open Source FrameworksViraf Karai
 
Agile Project Management in a Waterfall World: Managing Sprints with Predicti...
Agile Project Management in a Waterfall World: Managing Sprints with Predicti...Agile Project Management in a Waterfall World: Managing Sprints with Predicti...
Agile Project Management in a Waterfall World: Managing Sprints with Predicti...John Carter
 
2009 05 21 The Lean Startup At SIPA
2009 05 21 The Lean Startup At SIPA2009 05 21 The Lean Startup At SIPA
2009 05 21 The Lean Startup At SIPAEric Ries
 
10 tips
10 tips10 tips
10 tipsdjras
 
2009 06 01 The Lean Startup Texas Edition
2009 06 01 The Lean Startup Texas Edition2009 06 01 The Lean Startup Texas Edition
2009 06 01 The Lean Startup Texas EditionEric Ries
 
Developer Productivity Engineering with Gradle
Developer Productivity Engineering with GradleDeveloper Productivity Engineering with Gradle
Developer Productivity Engineering with GradleAll Things Open
 
Agile Eng Practices Agilesparks
Agile Eng Practices AgilesparksAgile Eng Practices Agilesparks
Agile Eng Practices AgilesparksYuval Yeret
 
DevOps in Action: How Nedbank went from quarterly to weekly releases in no ti...
DevOps in Action: How Nedbank went from quarterly to weekly releases in no ti...DevOps in Action: How Nedbank went from quarterly to weekly releases in no ti...
DevOps in Action: How Nedbank went from quarterly to weekly releases in no ti...Agile Software Community of India
 
Avoiding Overdesign and Underdesign
Avoiding Overdesign and UnderdesignAvoiding Overdesign and Underdesign
Avoiding Overdesign and UnderdesignTechWell
 
DevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDaysJKT
 

Similaire à Agile Test Driven Development (20)

Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Are Agile Projects Doomed To Halfbaked Design
Are Agile Projects Doomed To Halfbaked DesignAre Agile Projects Doomed To Halfbaked Design
Are Agile Projects Doomed To Halfbaked Design
 
How BDD enables True CI/CD
How BDD enables True CI/CDHow BDD enables True CI/CD
How BDD enables True CI/CD
 
Manchester ITExpo Talk: DevOps large and small - Cambridge Satchel
Manchester ITExpo Talk:  DevOps large and small - Cambridge SatchelManchester ITExpo Talk:  DevOps large and small - Cambridge Satchel
Manchester ITExpo Talk: DevOps large and small - Cambridge Satchel
 
Starting and Scaling Devops
Starting and Scaling Devops Starting and Scaling Devops
Starting and Scaling Devops
 
Starting and Scaling DevOps
Starting and Scaling DevOpsStarting and Scaling DevOps
Starting and Scaling DevOps
 
Testing Sap: Modern Methodology
Testing Sap: Modern MethodologyTesting Sap: Modern Methodology
Testing Sap: Modern Methodology
 
SD DevOps Meet-up - Exploring Quadrants of DevOps Maturity
SD DevOps Meet-up - Exploring Quadrants of DevOps MaturitySD DevOps Meet-up - Exploring Quadrants of DevOps Maturity
SD DevOps Meet-up - Exploring Quadrants of DevOps Maturity
 
Agile Java Testing With Open Source Frameworks
Agile Java Testing With Open Source FrameworksAgile Java Testing With Open Source Frameworks
Agile Java Testing With Open Source Frameworks
 
Agile Project Management in a Waterfall World: Managing Sprints with Predicti...
Agile Project Management in a Waterfall World: Managing Sprints with Predicti...Agile Project Management in a Waterfall World: Managing Sprints with Predicti...
Agile Project Management in a Waterfall World: Managing Sprints with Predicti...
 
2009 05 21 The Lean Startup At SIPA
2009 05 21 The Lean Startup At SIPA2009 05 21 The Lean Startup At SIPA
2009 05 21 The Lean Startup At SIPA
 
10 tips
10 tips10 tips
10 tips
 
2009 06 01 The Lean Startup Texas Edition
2009 06 01 The Lean Startup Texas Edition2009 06 01 The Lean Startup Texas Edition
2009 06 01 The Lean Startup Texas Edition
 
Shyama Sasidharan_CV
Shyama Sasidharan_CVShyama Sasidharan_CV
Shyama Sasidharan_CV
 
Developer Productivity Engineering with Gradle
Developer Productivity Engineering with GradleDeveloper Productivity Engineering with Gradle
Developer Productivity Engineering with Gradle
 
10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung
 
Agile Eng Practices Agilesparks
Agile Eng Practices AgilesparksAgile Eng Practices Agilesparks
Agile Eng Practices Agilesparks
 
DevOps in Action: How Nedbank went from quarterly to weekly releases in no ti...
DevOps in Action: How Nedbank went from quarterly to weekly releases in no ti...DevOps in Action: How Nedbank went from quarterly to weekly releases in no ti...
DevOps in Action: How Nedbank went from quarterly to weekly releases in no ti...
 
Avoiding Overdesign and Underdesign
Avoiding Overdesign and UnderdesignAvoiding Overdesign and Underdesign
Avoiding Overdesign and Underdesign
 
DevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDays Jakarta Igites
DevOpsDays Jakarta Igites
 

Dernier

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 

Dernier (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Agile Test Driven Development

  • 1. Test Driven Development  In An Agile Environment Presented by Mr. Viraf Karai   on Mon. Jan 19, 2009
  • 2. Topics covered Agile manifesto Myths about TDD   Evolutionary dvlp &  TDD benefits   design Ideal qualities of unit   TDD philosophy tests  TDD steps Resources   TDD states  Legacy development      2
  • 3. The Agile Manifesto Composed by heavy hitters in the software industry   in Snowbird, UT in February 2001 Included folks backing methodologies such as   Scrum, XP, Crystal, Feature driven developemt, etc. Big names such as Martin Fowler, Robert C Martin   (Uncle Bob), Alistair Cockburn, Ken Schwaber,  Dave Thomas, etc.     3
  • 4. The Agile Manifesto – principles Primary metric of progress is  Continuous delivery   working software Welcome changing reqs  All participants should   Deliver working software   maintain a constant pace frequently Continuous attention to tech   Involve biz and developers   excellence & good design throughout the project Simplicity is essential  Build projects around   Self organizing teams motivated folks  Periodic retrospectives Communication should be    face­to­face     4
  • 6. Evolutionary dvlp and design Evolutionary  development  is  an  iterative  and  incremental  approach  to software development.   Instead  of  creating  a  comprehensive  artifact,  such  as  a  requirements   specification,  that  you  review  and  accept  before  creating  a  comprehensive  design  model  (and  so  on)  you  instead  evolve  the  critical development artifacts over time in an iterative manner.   Instead  of  building  and  then  delivering  your  system  in  a  single  “big   bang” release you instead deliver it incrementally over time. Yes, you  will likely still need to do some initial requirements and architecture  envisioning, but this is at a high level ­­ I can't say this enough, you  don't need to do big modeling up­front (BMUF)  – Scott Ambler     6
  • 8. Test Driven Dvlp (TDD) Philosophy The basic tenets are developing and implementing   unit tests before writing a line of code Unit tests will and must fail up front  Code is developed after the test is developed.  A unique idea that is still foreign to many   developers     8
  • 10. TDD steps  Quickly add a test ­ just enough code to fail test  Run test­suite to ensure test fails (may choose to run   a subset of suite) Update your functional code to ensure new test   passes Re­run test suite and keep updating functional code   until test passes Refactor and move on      10
  • 11. TDD states     11
  • 12. TDD and agile TDD implies agile.  Strong emphasis on testing   Tests should span entire breadth of codebase  Once all software is ready for delivery, all tests   should pass  A unique way to address modern challenges in   software development     12
  • 13. Legacy software dvlp and testing Mostly implies a waterfall/big­bang process  Very little emphasis on unit testing by developers  Tests are almost developed as an afterthought  Tests are mostly manual  Huge emphasis on QA team   Delivering quality software on time and within   budget is almost accidental     13
  • 14. Myths about TDD Myth: TDD is ok for small projects involving a   handful of folks but won't scale to large projects  involving scores or hundreds of people. Answer: Not true.   Kent Beck worked on a pure TDD project developed in   Smalltalk. 4 years and 40 man years of effort resulting in 250K lines   of func code and 250K lines of test code 4,000 tests run in under 20 mins  Full suite runs several times a day      14
  • 15. TDD benefits Shortens the programming feedback  Provides detailed (executable) specifications  Promotes development of high­quality code  Provides concrete evidence that your code works  Requires developers to prove it with code  Provides finely­grained, concrete feedback (in mins)  Ensures that your design is clean by focusing on creation of   operations that are callable and testable Supports evolutionary development      15
  • 16. Six ideal qualities of unit tests Decisive – has all info to determine success/failure  Valid – produces a result that matches the intention of the work   artifact under test Complete ­  contains all the information it needs to run correctly with   a given test harness and work artifact under test Repeatable ­ always gives the same results if the test harness and the   artifact under test are the same i.e. Is deterministic Isolated ­ is not affected by other tests run before it nor does a test   affect the results of tests run after it Automated ­ requires only a start signal in order to run to completion   in a finite amount of time     16
  • 17. Why TDD If it's worth building, it's worth testing. If it's not worth testing, why are you  wasting your time working on it? ­ Scott Ambler     17
  • 18. Resources Test Driven Development By Example – Kent Beck  Test Driven: TDD And Acceptance TDD For Java   Developers ­ Lasse Koskela http://www.testdriven.com  http://www.agiledata.org  Junit 4 in 10 minutes  http://www.instrumentalservices.com/media/articles/java       18
  • 19. Questions     19