Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tccc10 tooling testingci-vs2010teamcity


Published on

slide deck from my tccc10 presentation. please use the URL's and references for the source code and other technologies which are discussed but not covered.

Published in: Education
  • Be the first to comment

  • Be the first to like this

Tccc10 tooling testingci-vs2010teamcity

  1. 1. 1Baskin I. TapkanAdvanced Technology Software GroupImation Corp. April 9, 2011 – TCCC‐10
  2. 2. 21. Reasons behind testing and why you should care2. Development and testing with VS‐20103. Something‐Driven styles and contrasts4. Types of testing5. Coded UI testing – demo6. Database Unit testing ‐ demo7. Continuous Integration Practices8. Unit test & TeamCity ‐ demo9. Conclusion & References April 9, 2011 – TCCC‐10
  3. 3. 3Bugs are expensive – over $59 billion/yearOn average, 100 errors per 1,000 lines of codeCancelled and over‐ran projects combined cost around $88 billion in 2009A few examples… April 9, 2011 – TCCC‐10
  4. 4. 4Code Re‐useConversion from 64‐bit to 16‐bit signed int caused overflow, exception handling was disabled for some other reason –COST > $370 million (‘96 dollars) April 9, 2011 – TCCC‐10
  5. 5. 5 Crossed international dateline  the first time on the way to  Japan, computers crashed losing  all navigation and  communication systems. Luckily with clear weather, it  followed tankers back to HawaiiApril 9, 2011 – TCCC‐10
  6. 6. 6Failed to wake up users during Daylight Savings Time change April 9, 2011 – TCCC‐10
  7. 7. 7 Writing tests first help write better code Process of writing a test first helps to see when a  design is too rigid or unfocused Testing is no longer just about keeping defects from the  users; instead it is about helping the team understand the features users need and deliver them reliably and predictably April 9, 2011 – TCCC‐10
  8. 8. 8Repeated cycles of activity Each cycle adds new features  and team gets feedback Each cycle deploys work to some kind  of environment Every deploy, team has an opportunity to  check the assumptions against reality Without deployment, the feedback is  not complete April 9, 2011 – TCCC‐10
  9. 9. 9RequirementsFeature codingPair programmingStand‐upsUnit testingDeploymentIntegration testingReleases April 9, 2011 – TCCC‐10
  10. 10. 10 Incremental development  Iterative development  builds a system feature,  progressively refines the instead of building layers and  implementation of features  components and integrating  in response to feedback  them at the end.   until they are good enough.  Each feature is implemented  In other words, reacting to  as an end‐to‐end “slice”.   the “anticipating to the  System is always integrated  unanticipated” and ready for deployment April 9, 2011 – TCCC‐10
  11. 11. 11 Release TestDevelopment April 9, 2011 – TCCC‐10
  12. 12. 12Pushing quality upstream Release Test Development April 9, 2011 – TCCC‐10
  13. 13. 13 Coding Horror : referenceApril 9, 2011 – TCCC‐10
  14. 14. 14 The catch is that few developers enjoy testing their code.  Many see writing automated tests is seen as not “real” work  compared to adding features.  They find it boring. It takes a different mind set and takes time to learn and master.TDD makes coding a design activity.  Use tests to clarify ideas  about what the code should do.  Having tests during development process can build up a safety  net of automated regression tests.  These tests give confidence to make changes.   All of a sudden, you are doing “Red – Green – Refactor” “… you have nothing to lose but your bugs”  April 9, 2011 – TCCC‐10
  15. 15. 15Evolution of TDD Test method names should be sentences Writing tests that matter “Given, When, Then” Concept of executable specifications April 9, 2011 – TCCC‐10
  16. 16. 16 Start feature with an acceptance test Develop from the inputs & outputsMSDN Article:‐us/magazine/gg490346.aspx April 9, 2011 – TCCC‐10
  17. 17. 17Unit / Integration / Acceptance TestsDatabase Unit TestCoded UI TestsWeb Performance  and Load Tests April 9, 2011 – TCCC‐10
  18. 18. 18 TailSpin project lab‐available‐visual‐studio‐2010‐rtm‐virtual‐machine‐with‐sample‐data‐and‐hands‐on‐labs.aspx April 9, 2011 – TCCC‐10
  19. 19. 19SP1 is available Help viewer updates Silverlight 4 support Unit testing for .NET 3.5 IIS Express support SQL Server CE Support Razor support “Pimp my IDE” check out  http://studiostyl.esFeature Pack 2 Code visualization and modeling Improved Coded UI Testing April 9, 2011 – TCCC‐10
  20. 20. 20 using SQL Server 2008‐to‐unit‐test‐sql‐server‐2008‐database‐using‐visual‐studio‐2010.aspx April 9, 2011 – TCCC‐10
  21. 21. 21A unit test is a piece  of code that invokes  another piece of code,  Is Automated and repeatable resides in another  assembly Is Easy to implement Should remain for future use Is run by anyone Should run with a push of a button Runs quicklySUT : System Under Test (CUT : Code under Test) : Class under Test) April 9, 2011 – TCCC‐10
  22. 22. 22 Development &  Architecture Lab Management Test TFS Database•Architecture Explorer •Historical debugging •Multi‐tier  •Test planning •Work item hierarchy •Layer Diagram •Test impact analysis environment creation  •Test case  & link types•Use case designer •Improved code  and management management •Improved Agile •Activity designer analysis •Automated  •Test prioritization template •Improved profiling  deployment •Run management &  •MOSS & WSS •Component diagram (incl. multi‐tier) •Easily manage  reporting dashboards•Logical class designer •Database extensibility machine pools •Project quality  •Simplified reporting•Sequence diagram •Network fencing reports •Improved support for •Modeling project  •Checkpoints •Manual test  parallel development system execution •Rollback•UML Model Explorer •Diagnostic recording  •Build queuing and •Architecture  (environment, video,  pooling validation during  etc.) •Gated check‐in build •UI Automation  •Simplified setup recording •Scale out of web and  •Coded UI tests data tiers •Admin console •Project  move/archive/restore April 9, 2011 – TCCC‐10
  23. 23. 23Real Life Example April 9, 2011 – TCCC‐10
  24. 24. 24 Maintain a Single Source Repository Automate the Build Make Your Build Self‐Testing Keep the Build Fast Everyone can see whats happening Automate Deployment April 9, 2011 – TCCC‐10
  25. 25. 25April 9, 2011 – TCCC‐10
  26. 26. 26April 9, 2011 – TCCC‐10
  27. 27. 27April 9, 2011 – TCCC‐10
  28. 28. 28April 9, 2011 – TCCC‐10
  29. 29. 29April 9, 2011 – TCCC‐10
  30. 30. 30 Goal is to ship to “less” buggy, rigid  software.  TDD and BDD will help.  Keep an open mind and try out! VS‐2010 has many other features on various testing  mechanisms.  Take the time to learn and master them.  Don’t hesitate looking at other platforms for ideas. Continuous Integration is more than “nice to have” any more. If  you are serious about development, you should have it. April 9, 2011 – TCCC‐10
  31. 31. 31April 9, 2011 – TCCC‐10
  32. 32. 32Speaker Rate:‐tooling‐testing‐and‐continuous‐integration‐using‐vs‐2010‐and‐teamcity April 9, 2011 – TCCC‐10