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

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

on

  • 1,249 views

 

Statistics

Views

Total Views
1,249
Views on SlideShare
1,245
Embed Views
4

Actions

Likes
1
Downloads
10
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 PHX - Session #2 Test Driven Development: Improving .NET Application Performance & Scalability Presentation Transcript

    • Test Driven Development Improving .NET Application Performance & Scalability Brendon Birdoes (brendon.birdoes@neudesic.com)
    • Agenda Challenges we deal with today • Be Agile - Test Driven Development • Code coverage • Database can be Unit Tested! • Benefits of TDD • Summary • Q&A •
    • Challenges we deal with today Does our code do what we intended? • Documentation – is it updated? • Debug – again? • Change Request – What did I break? •
    • Get Agile – Test Driven Development Practices Tools Tools For Agility, Kent Beck
    • 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!
    • 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
    • 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)
    • Test Driven Development The motto quot;Red, Green, Refactor.quot;
    • Developer Unit Test
    • 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
    • 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
    • Code Coverage
    • Database can be Unit Tested! User Interface Application Code Unit Tests Data Access Layer Stored Procedures
    • Database Unit Test
    • TDD in Action: Active Bug Bug: Expired Credit Cards are being Credited
    • 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
    • Traditional testing
    • Test Driven Development
    • 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
    • Unit testing is a learned skill that can only be honed with experience. Mock Objects Interfaces Better Factored Code
    • Starting Test Driven Development Creating a cultural change is hard… ….. and it can be done.
    • 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.