1 / 45

Driving Quality Throughout the Application Lifecycle

27 th June 2011. Driving Quality Throughout the Application Lifecycle . Richard Erwin Developer Tools Specialist Microsoft UK. Phases of the Application Lifecycle. Test. Develop. Cost of Bugs. Cost / £. Development. Testing. UAT. Released. Lifecycle stage.

gerard
Download Presentation

Driving Quality Throughout the Application Lifecycle

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 27th June 2011 Driving Quality Throughout the Application Lifecycle Richard Erwin Developer Tools Specialist Microsoft UK

  2. Phases of the Application Lifecycle • Test • Develop

  3. Cost of Bugs Cost / £ Development Testing UAT Released Lifecycle stage

  4. Application Lifecycle Tooling Eclipse Developer Visual Studio Developer Business Analyst Tech Writer on Mac OS X Tester • DevProcess Support • Version Control • Automated Build • Test Case Management • Reporting C++ developer on Linux Team Foundation Server

  5. Code Quality Tooling Unit Testing Code Analysis Code Coverage Code Metrics Unit Testing & TDD Static Code Analysis Test Impact Analysis Pex Code Profiling Style Cop Process Other Tools Automated Build Check-In Policies Security Tools Test Tools Reporting Shelving Database Tools Architecture Tools Free Pro Premium Ultimate TFS

  6. Unit Testing

  7. Unit Testing • What is it? • Ensuring individual units of source code work • A developer, not tester, activity • Unit test ≠ functional test • Why do it? Quality Flexibility Delivery Time

  8. Test Driven Development • Grown out of eXtremeProgramming • Write Test before Implementation • Improve Code Coverage • Can help With Implementation Design • Catch Defects Early

  9. PEX • Automatically generate test suites with high code coverage. • Visual Studio add-in for testing .NET Framework applications • Moles - Isolation framework for .NET

  10. Code Coverage • How much unit testing should you do? • How much of the code is being tested?

  11. DEMO Unit Testing

  12. Code Analysis

  13. Code Metrics • Is the Code Maintainable? • Where are Defects Likely to be Found? • Where Should I Concentrate my Efforts?

  14. Code Metrics

  15. Maintainability Index MAX(0,(171 - 5.2 * ln(Halstead Volume) 0.23 * (Cyclomatic Complexity) – 16.2 * ln(Lines of Code))*100 / 171)  0 – 9 Low Maintainability 10 – 19 Moderately Maintainable 20-100 Good Maintainability

  16. Code Analysis • My code: • Compiles • Passes Unit Testing • Isn’t Too Complex • It must be OK then, right?

  17. Code Analysis

  18. Code Profiler

  19. StyleCop • Ensure Uniform Code Formatting • Improve Code Readbility • Aid Code Readability • Removes Debate Among Team Members • Apply At Check-In • Examples • Braces {} on a New Line • Use Tabs instead of Spaces • Empty Line Separation Between Methods

  20. DEMO Code Analysis

  21. Additional Tools & Processes

  22. Check In Policies • Add quality gates to Version Control • Create your own

  23. Branch Visualizations Branches are a first class artefact Visualize Branch Hierarchy Track Changes against WIs View Timeline

  24. Automated Builds

  25. What about Previous Builds? Did it Build? Did my Tests Pass? Code Coverage? Code Analysis? What Code Changed? Which Features Were Impacted Which Tests Were Impacted?

  26. Testing & Debugging Tools

  27. Dedicated tool for Testers. Integrated with TFS

  28. Test Cases & Shared Steps are TFS Work Items

  29. Link Test Cases to other Work Items (e.g. requirements)

  30. Define Test Settings - What data we want to automatically collect when tests are executed

  31. Generate TFS Bug Work Items from Microsoft Test Runner

  32. Give the bug a title – the hard work has been automatically done

  33. Intellitrace Post mortem debug Every interesting event is logged

  34. Walk up and down the call stack Debug code executed by someone else

  35. Prototype with SketchFlow

  36. Understand Existing Code Assets

  37. Drill in and follow relationships

  38. Enforce application architecture

  39. Database Tools in Visual Studio* *Visual Studio 2010 Premium/Ultimate

  40. Schema Comparison & SQL Unit Tests Database Development

  41. Database Development Generate Realistic Test Data

  42. Security Tools http://www.microsoft.com/security/sdl/adopt/tools.aspx

  43. Phases of the Application Lifecycle

  44. Keep in touch

More Related