Test Driven Development Why Should You Care about TDD And Automated (Unit) Testing? Naresh Jain Twitter: @nashjain Blog: http://blogs.agilefaqs.com Licensed Under Creative Commons by Naresh Jain 1
Test Driven DevelopmentTDD Rhythm - Test, Code, Refactor 2
Test Driven Development Add a TestTDD Rhythm - Test, Code, Refactor 2
Test Driven Development Add a Test Run the TestTDD Rhythm - Test, Code, Refactor 2
Test Driven Development Add a Test Pass Run the TestTDD Rhythm - Test, Code, Refactor 2
Test Driven Development Add a Test Pass Run the Test FailTDD Rhythm - Test, Code, Refactor 2
Test Driven Development Add a Test Pass Run the Test FailTDD Rhythm - Test, Code, Refactor Make a little change 2
Test Driven Development Add a Test Pass Run the Test FailTDD Rhythm - Test, Code, Refactor Make a little change Run the Test 2
Test Driven Development Add a Test Pass Run the Test FailTDD Rhythm - Test, Code, Refactor Make a little change Fail Run the Test 2
Test Driven Development Add a Test Pass Run the Test FailTDD Rhythm - Test, Code, Refactor Make a little change Fail Run the Test Pass 2
Test Driven Development Add a Test Pass Run the Test FailTDD Rhythm - Test, Code, Refactor Make a little change Fail Run the Test Pass Refactor 2
Test Driven Development Add a Test Pass Run the Test FailTDD Rhythm - Test, Code, Refactor Make a little change Fail Run the Test Pass Refactor 2
Test Driven Development Add a Test Pass Run the Test FailTDD Rhythm - Test, Code, Refactor Make a little change Fail Run the Test Pass Refactor 2
Test Driven Development Add a Test Pass Run the Test FailTDD Rhythm - Test, Code, Refactor Make a little change Fail Run the Test Pass Refactor 2
Why Learn TDD? 3
Manual (monkey) Checking by Developers and Tester 4
Stay away from (time hungry) debugger 5
Maintain Focus 6
Confidence 7
Reduce Wastage: Hand Overs 8
Helps youSlow down and Think 9
Communication 10
11
Ultimate Goals 12
Ultimate Goals• Bring JOY back to programming 12
Ultimate Goals• Bring JOY back to programming• Understand Code Easily 12
Ultimate Goals• Bring JOY back to programming• Understand Code Easily• Produce Simple, Testable, Loosely-Coupled Design 12
Ultimate Goals• Bring JOY back to programming• Understand Code Easily• Produce Simple, Testable, Loosely-Coupled Design• Build Quality In 12
Ultimate Goals• Bring JOY back to programming• Understand Code Easily• Produce Simple, Testable, Loosely-Coupled Design• Build Quality In• Reduce Maintenance Significantly 12
Living, up-to-date specification 13
Learning:Listen to your code 14
Testable Code by Design + Safety Net 15
Communicate Design Decisions 16
Loosely-Coupled Design 17
Refactoring 18
Ultimate Goals• Bring JOY back to programming• Understand Code Easily• Produce Simple, Testable, Loosely-Coupled Design• Build Quality In• Reduce Maintenance Significantly 19
Thank You! Naresh Jain naresh@agilefaqs.comLicensed Under Creative Commons by Naresh Jain 20