ar25801u's picture
From ar25801u rss RSS  subscribe Subscribe

Test Driven Development 



 

 
 
Tags:  billing  software 
Views:  930
Downloads:  4
Published:  December 17, 2009
 
0
download

Share plick with friends Share
save to favorite
Report Abuse Report Abuse
 
Related Plicks
eInstruction Interwrite Dualboard

eInstruction Interwrite Dualboard

From: lysi
Views: 228 Comments: 0

 
Web based medical billing software (EMR EHR)

Web based medical billing software (EMR EHR)

From: ndarsana
Views: 614 Comments: 0
Practicesuite offers RCM Suite billing software for revenue cycle management companies for the billing needs of Chiropractic Offices by delivering Revenue Cycle Management Software and EMR software.
 
Occupational Therapy Billing Software

Occupational Therapy Billing Software

From: ndarsana
Views: 517 Comments: 0
Practicesuite offers Medical billing software that is web based medical billing system which performs all type of EMR software including physical therapy billing software, occupational therapy billing, and chiropractic billing.
 
See all 
 
More from this user
Sleep Apnea and the Eye - 2008

Sleep Apnea and the Eye - 2008

From: ar25801u
Views: 2120
Comments: 0

Courtroom Connect Announces Partnership with Delaware State ...

Courtroom Connect Announces Partnership with Delaware State ...

From: ar25801u
Views: 295
Comments: 0

Do Donts Samenwerking

Do Donts Samenwerking

From: ar25801u
Views: 238
Comments: 0

Where To Get The Best Deals On Auto Loans And Insurance

Where To Get The Best Deals On Auto Loans And Insurance

From: ar25801u
Views: 271
Comments: 0

International Fact sheet – SUNYIT – Intelligent Partners

International Fact sheet – SUNYIT – Intelligent Partners

From: ar25801u
Views: 153
Comments: 0

Blackberry 8300 Model Tips

Blackberry 8300 Model Tips

From: ar25801u
Views: 349
Comments: 0

See all 
 
 
 URL:          AddThis Social Bookmark Button
Embed Thin Player: (fits in most blogs)
Embed Full Player :
 
 

Name

Email (will NOT be shown to other users)

 

 
 
Comments: (watch)
 
 
Notes:
 
Slide 1: TEST DRIVEN DEVELOPMENT 1 Presented By: Nitin Garg 07030244008 MBA(SDM)
Slide 2: TEST-DRIVEN DEVELOPMENT 2
Slide 3: ORIGIN  Test-Driven Development is a core part of the agile process formalized by Kent Beck called eXtreme Programming (XP). XP originally had the rule to test everything that could possibly break. Now, however, the practice of testing in XP has evolved into TestDriven Development.“ Do not need to adopt XP in order to practice TDD and gain the benefit from it.   3
Slide 4: INTRODUCTION   Traditional Approach  Test last Errors in production Programmer moves onto other projects Test and code written by different programmers Tests based on outdated information Infrequent testing Fixes that create other problems Problems with Traditional       4
Slide 5: COST OF DEVELOPMENT C o s t Time Traditional TDD 5
Slide 6: COST OF FIXING FAULTS 40 35 30 25 20 15 10 5 0 40 30 15 10 1 Reqs. Relative Cost 3 Operation Dev. Test Coding Design Accept. 6
Slide 7: WHAT IS TDD?  TDD is a technique whereby you write your test cases before you write any implementation code  Forces developers to think in terms of implementer and user  Tests drive or dictate the code that is developed  “Do the simplest thing that could possibly work”  Developers have less choice in what they write  An indication of “intent”    Tests provide a specification of “what” a piece of code actually does – it goes some way to defining an interface Some might argue that “tests are part of the documentation” Could your customers/clients write tests? 7
Slide 8: WHAT IS TDD?  “Before you write code, think about what it will do. Write a test that will use the methods you haven’t even written yet.” A test is not something you “do”, it is something you “write” and run once, twice, three times, etc. It is a piece of code  Testing is therefore “automated”  Repeatedly executed, even after small changes    “TDD is risk averse programming, investing work in the near term to avoid failures later on” 8
Slide 9: WHAT CAN BE TESTED?  Valid Input In-valid Input Exceptions Boundary Conditions Everything that should be possible break. 9    
Slide 10: ASPECTS OF TDD  Features High level user requirements  User story   Customer Tests  Customer identified acceptance tests Tests developed during software construction  Developer Tests  10
Slide 11: METHODOLOGY  Test first – Code last  You may not write production code unless you’ve first written a failing unit test You may not write more of a unit test than is sufficient to fail You may not write more production code than is sufficient to make the failing unit test pass  Test more – Code more   Test again – Code again  11
Slide 12: TDD STAGES Write a test Refactor code (and test) Run test, watch it pass Compile Fix compile errors Write code Run test, watch it fail 12
Slide 13: TDD STAGES  The Extreme Programming Explored , Bill Wake describes the test cycle: Write a single test Compile it. It shouldn’t compile because you’ve not written the implementation code Implement just enough code to get the test to compile Run the test and see it fail Implement just enough code to get the test to pass Run the test and see it pass Refactor for clarity and “once and only once” Repeat 1. 2. 3. 4. 5. 6. 7. 8. 13
Slide 14: LIFE CYCLE Write Test Refactor As Needed Compile Run & See the Fail 14
Slide 15: WHY DOES TDD WORK? The (sometimes tedious) routine leads the programmers to think about details they otherwise don’t (because they’ve bitten off more than they can chew)  Specifically, test cases are thought through before the programmer is allowed to think about the “interesting part” of how to implement the functionality  15
Slide 16: WHY DOES TDD WORK? Encourages “divide-and-conquer”  Programmers are never scared to make a change that might “break” the system  The testing time that is often squeezed out of the end of a traditional development cycle cannot be squeezed out.  16
Slide 17: ADVANTAGES OF TDD TDD shortens the programming feedback loop  TDD promotes the development of high-quality code  User requirements more easily understood  Reduced interface misunderstandings  TDD provides concrete evidence that your software works  Reduced software defect rates  Better Code  Less Debug Time.  17
Slide 18: DISADVANTAGES OF TDD Programmers like to code, not to test  Test writing is time consuming  Test completeness is difficult to judge  TDD may not always work  18
Slide 19: EXAMPLE  We want to develop a method that, given two Integers, returns an Integer that is the sum of parameters. 19
Slide 20: EXAMPLE (CONT.)  Test  Method Integer i = new Integer(5); Integer j = new Interger(2); Object o = sum(i,j); 20
Slide 21: EXAMPLE (CONT.)  Test  Method Integer i = new Integer(5); Integer j = new Interger(2); Object o = sum(i,j); public static Object sum(Integer i, Integer j) { return new Object(); } 21
Slide 22: EXAMPLE (CONT.)  Test  Method Integer i = new Integer(5); Integer j = new Interger(2); Object o = sum(i,j); if (o instanceof Integer) return true; else return false; public static Object sum(Integer i, Integer j) { return new Object(); } 22
Slide 23: EXAMPLE (CONT.)  Test  Method Integer i = new Integer(5); Integer j = new Interger(2); Object o = sum(i,j); if (o instanceof Integer) return true; else return false; public static Integer sum(Integer i, Integer j) { return new Integer(); } 23
Slide 24: EXAMPLE (CONT.)  Test  Method Integer i = new Integer(5); Integer j = new Interger(2); Object o = sum(i,j); if ((o instanceof Integer) && ((new Integer(7)) .equals(o)) return true; else return false; public static Integer sum(Integer i, Integer j) { return new Integer(); } 24
Slide 25: EXAMPLE (CONT.)  Test  Method Integer i = new Integer(5); Integer j = new Interger(2); Object o = sum(i,j); if ((o instanceof Integer) && ((new Integer(7)) .equals(o)) return true; else return false; public static Integer sum(Integer i, Integer j) { return new Integer( i.intValue() + j.intValue()); } 25
Slide 26: OTHER TECHNIQUES OF TDD 26
Slide 27: TECHNIQUE 1 Identify a “smallest possible” change to be made  Implement test and (the one line of) code for that change (see previous slide)  Run all tests  Save test and code together in source control system  Repeat  27
Slide 28: TECHNIQUE 2  Test and implement a low-level function (using previous Techniques)  Test and implement a higher-level function that invokes the lower-level function  Test all the logic in the higher-level function as expected; use as many tests as necessary  Include one test that convinces you that the higher-level function called the lowerlevel one 28
Slide 29: TECHNIQUE 3 Build higher- and higher-level tests  Build tests that represent user actions such as entering a piece of data and hitting “OK”  Build tests that string together a series of user actions that represent Acceptance Test cases  Demonstrate the Acceptance Tests to the user(s) regularly  29
Slide 30: CONCLUSION More code has to be written using TDD but that isn’t the bottleneck in Software Development  Techniques have to be learned by developers and enforced by managers  User Interface testing is the hardest  Resulting unit tests most valuable when run as part of an automated build process  30

   
Time on Slide Time on Plick
Slides per Visit Slide Views Views by Location