PHX - Session #2 Test Driven Development: Improving .NET Application Performance & Scalability
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

PHX - Session #2 Test Driven Development: Improving .NET Application Performance & Scalability

on

  • 1,286 views

 

Statistics

Views

Total Views
1,286
Views on SlideShare
1,282
Embed Views
4

Actions

Likes
1
Downloads
11
Comments
0

2 Embeds 4

http://blogs.msdn.com 3
http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

PHX - Session #2 Test Driven Development: Improving .NET Application Performance & Scalability Presentation Transcript

  • 1. Test Driven Development Improving .NET Application Performance & Scalability Brendon Birdoes (brendon.birdoes@neudesic.com)
  • 2. Agenda Challenges we deal with today • Be Agile - Test Driven Development • Code coverage • Database can be Unit Tested! • Benefits of TDD • Summary • Q&A •
  • 3. Challenges we deal with today Does our code do what we intended? • Documentation – is it updated? • Debug – again? • Change Request – What did I break? •
  • 4. Get Agile – Test Driven Development Practices Tools Tools For Agility, Kent Beck
  • 5. Unit Test Defined • Code programmers write to exercise each method in the design that run quickly and help localize errors – Isolates and tests a single operation – Run in any environment – Less time debugging – Side affect is documentation!
  • 6. Unit Tests Defined • Tests are NOT unit tests when they… – Talk to a database – Communicate across the network – Touch the file system – Require human intervention (such as modifying a *.config file, starting a console app, etc.) to run
  • 7. What is Test Driven Development? • Despite the name, TDD focuses on “Design” first, “Test” second • Basic tenants are: – Write a failing automated test before you write any code • Focus on interface and use case or problem • Tests get written • Just enough code to pass the test – Remove duplication (refactor)
  • 8. Test Driven Development The motto quot;Red, Green, Refactor.quot;
  • 9. Developer Unit Test
  • 10. Code Coverage Defined • Also known as “test coverage” • It measures how thoroughly the automated tests exercise the production code, its source code statements, branches, and expressions
  • 11. What degree of code coverage should you aim for? • Answer: It depends • Average code coverage is around 85% • Biggest blocker to attain 100% - existing code, auto generated code • Aim for 100% while learning – you’ll understand why 85% is nicer
  • 12. Code Coverage
  • 13. Database can be Unit Tested! User Interface Application Code Unit Tests Data Access Layer Stored Procedures
  • 14. Database Unit Test
  • 15. TDD in Action: Active Bug Bug: Expired Credit Cards are being Credited
  • 16. Quality Indicators 91 80 76 71 60 56 51 40 32.5 20 19 18 12 9 8 Iteration 1 Iteration 2 Iteration 3 Iteration 4 Iteration 5
  • 17. Traditional testing
  • 18. Test Driven Development
  • 19. TDD - Application Lifecycle UAT Testing & Bug Fixing Development Testing & UAT Development Bug Fixing  Development and testing/bug fixing take about the same amount of time  Development takes more time than testing, and testing time is reduced  Overall lifecycle is shortened
  • 20. Unit testing is a learned skill that can only be honed with experience. Mock Objects Interfaces Better Factored Code
  • 21. Starting Test Driven Development Creating a cultural change is hard… ….. and it can be done.
  • 22. Summary • Development becomes more challenging. • TDD is a great tool to overcome these challenges • Database can be Unit Tested! • Development is Faster using TDD. • VSTS is a great tool for UT and TDD.