SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Automated Testing vs Manual Testing
Automated Testing vs Manual TestingAutomated Testing vs Manual Testing
Automated Testing vs Manual Testingdidev
 
Mutation Testing: Testing your tests
Mutation Testing: Testing your testsMutation Testing: Testing your tests
Mutation Testing: Testing your testsStephen Leigh
 
Best practices for test automation
Best practices for test automationBest practices for test automation
Best practices for test automationDavid Tzemach
 
TDD (Test Driven Design)
TDD (Test Driven Design)TDD (Test Driven Design)
TDD (Test Driven Design)nedirtv
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)David Ehringer
 
Software Testing
Software TestingSoftware Testing
Software TestingSengu Msc
 
Shift Left & Shift Right Approach in Testing
Shift Left  &  Shift Right  Approach in TestingShift Left  &  Shift Right  Approach in Testing
Shift Left & Shift Right Approach in TestingRiswan
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentMireia Sangalo
 
Manual testing interview questions and answers
Manual testing interview questions and answersManual testing interview questions and answers
Manual testing interview questions and answerskaranmca
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing ProcessIntetics
 
Quality Assurance and Software Testing
Quality Assurance and Software TestingQuality Assurance and Software Testing
Quality Assurance and Software Testingpingkapil
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test AutomationNaveen Kumar Singh
 
Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)Lars Thorup
 
Acceptance testing
Acceptance testingAcceptance testing
Acceptance testingCOEPD HR
 
소프트웨어 테스팅
소프트웨어 테스팅소프트웨어 테스팅
소프트웨어 테스팅영기 김
 

La actualidad más candente (20)

Automated Testing vs Manual Testing
Automated Testing vs Manual TestingAutomated Testing vs Manual Testing
Automated Testing vs Manual Testing
 
Mutation Testing: Testing your tests
Mutation Testing: Testing your testsMutation Testing: Testing your tests
Mutation Testing: Testing your tests
 
Best practices for test automation
Best practices for test automationBest practices for test automation
Best practices for test automation
 
TDD (Test Driven Design)
TDD (Test Driven Design)TDD (Test Driven Design)
TDD (Test Driven Design)
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Shift Left & Shift Right Approach in Testing
Shift Left  &  Shift Right  Approach in TestingShift Left  &  Shift Right  Approach in Testing
Shift Left & Shift Right Approach in Testing
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Manual testing interview questions and answers
Manual testing interview questions and answersManual testing interview questions and answers
Manual testing interview questions and answers
 
JUnit Presentation
JUnit PresentationJUnit Presentation
JUnit Presentation
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
Manual Testing.
Manual Testing.Manual Testing.
Manual Testing.
 
Quality Assurance and Software Testing
Quality Assurance and Software TestingQuality Assurance and Software Testing
Quality Assurance and Software Testing
 
Automation Testing
Automation TestingAutomation Testing
Automation Testing
 
Manual testing - Introduction to Manual Software testing
Manual testing - Introduction to Manual Software testingManual testing - Introduction to Manual Software testing
Manual testing - Introduction to Manual Software testing
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test Automation
 
Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)
 
Cucumber BDD
Cucumber BDDCucumber BDD
Cucumber BDD
 
Acceptance testing
Acceptance testingAcceptance testing
Acceptance testing
 
소프트웨어 테스팅
소프트웨어 테스팅소프트웨어 테스팅
소프트웨어 테스팅
 

Similar a 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
 

Similar a 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
 

Último

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Último (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

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