360 likes | 470 Views
Visual Studio 2010 Diagnostics and Analysis Tools to Improve Software Quality.
E N D
Visual Studio 2010 Diagnostics and Analysis Tools to Improve Software Quality As building software becomes more complex, the probability of exposing end-users to application defects increases exponentially. Software quality begins as soon as you start writing code. Improving code quality is the first line of offense in quality management. IntelliTrace™ extends and enhances the Visual Studio live debugging experience. Debugging with IntelliTrace provides an enhanced picture of your application compared with traditional debuggers. Test Impact Analyst will help you analyze the tests impacted as a result of a code change. These tests can be Unit Test or just Manual Tests. Multi-Tier Performance Analysis. Tier Interaction Profiling enables you to measure the performance of your application from a database interactions point of view. • Randy Pagels • Sr. Developer Technical Specialist • Microsoft Corporation • rpagels@microsoft.com • http://www.teamsystemcafe.net • Specialist covering Heartland • (MI, OH, KY, and TN) • Team Foundation Server • Visual Studio ALM tools • Visual Studio Test Professional • Lab Management
Agenda • IntelliTrace™ • Test Impact Analysis • Multi-tier Performance Analysis • Solve Complex Debugging Tasks • Q & A
Codename “Proteus” What is Proteus? • Is it an early blooming spring flower? • Is it an sea god, according to Greek Mythology? • Is it a planet in the Milky Way? • Is it the code name for Visual Studio 2010? The Answer • Intellitrace, previously called “Historical Debugging” • Record what the application does as it is running • Makes it easy to spot the bug • Record method calls with parameters • Get intellitrace logs from your F5 developer testing • Get intellitrace logs from your build server • Get intellitrace logs from your testers • Record / Trace testers execution • Use same source code to debug as the tester had to test
IntelliTrace™ value add experiences • Testing - No more “no repro” • Integrated, Extensible Diagnostics • Rich Bugs, fix first time, every time • Intellitrace ss • Developer Experience – F5 • Historical Debugging from Dev machine • Play back events, forward & backward • Intellitrace • Build Automation - BVTs • Build Verification Test (BVT) test fails • View & Debug failed test results from build report • Intellitrace
Eliminate “No-repro” Bugs Write Code Hand-offto Test Test Code File Bug Hand-offto Dev Verify Bug Resolve as “No Repro”
What is IntelliTrace? Today + = Application Instrumentation Log File IntelliTrace • Record • Playback • Rewind = + = IntelliTrace
IntelliTrace™ Developer F5 debugging Build Verification Test (BVT) test failures Manual Test failures
Number #1 FAQ about IntelliTrace “Can I use IntelliTrace in production?” Short answer: NO!
IntelliTrace in Production From the Microsoft Visual Studio 2010 Licensing White Paper(page 17): • The IntelliTraceadapter and/or IntelliTrace.exe cannot be used: • On a device or server in a production environment. • For purposes of system or application monitoring. • In non-interactive scenarios other than as part of an automated test or debugging-data collection session.
Number #2 FAQ about IntelliTrace Does IntelliTrace support 64-bit? Short answer: NO! And YES!
IntelliTrace 64-bit Support • 64-bit is supported for: • Running IntelliTrace from the command line • Integration with Microsoft Test Manager • Integration with Lab Management • 64-bit is not supported for • F5 debugging
IntelliTrace Capabilities • Code is instrumented dynamically • Records program execution flow • Method Enter & Exit • Records program data • Parameters • Return values • Low overhead for collection • Supports Dev, Test and Staging environments • Pay-as-you-go collection model • 1st class debugging experience in VS
Using IntelliTrace from the CMD Line • Four steps: • XCopy IntelliTrace.exe and supporting files to any location on the target machine • C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\TraceDebugger Tools • On the target machine, open a Command prompt with elevated privilege • Run IntelliTrace.exe on the target machine to collect *.itrace file • IntelliTrace launch /collectionplan:en\CollectionPlan.xml /logfile:HelloWorld.itrace HelloWorld.exe • Open *.itrace file in Visual Studio to debug
How IntelliTrace Works Application IntelliTrace Recorder (IntelliTrace.exe) CollectionPlan.xml IntelliTrace File
Using IntelliTrace to debug Windows Azure Cloud Services A B Package IntelliTrace logs from the web and worker host processes in the cloud and start the deployment process Enable IntelliTrace for .Net 4 apps C D Now simply view the Intellitrace logs Windows Azure Compute Explorer indicates whether a deployment has IntelliTraceenabled on Hosted Services
Codename “Aftershock” What is Aftershock? • Is it a rock band? • Is it a type of basketball shoe? • Is it a luxury women's clothing brand? • Is a liqueur drink produced in Canada? • Is it the code name for Visual Studio 2010? The Answer • Test Impact Analysis • A list of impacted tests • A list of changed methods with unit tests • A list of changed tests with methods
Choosing the Right TestsThe Problem Q: Which tests should the developer and tester run to verify this code change? Automated Tests only Manual Tests only All of the above Don’t know Trick question?? Code Change Δ Application Functionality
Choosing the Right TestsThe Consequence The world of Developers The world of Testers Verify more tests than needed Verify too few tests than needed • Run more tests than needed • Run too few tests than needed • Less Productivity • Effort wasted on tests that don’t need to be run • Lower quality • Not enough testing to verify code change
What is Test Impact Analysis? • Automatically pinpoint which tests are impacted as a result of a code change What is the impact of this bug fix?
Test Impact Analysis A One Line Bug Fix Build Report Manual Testing with Test Manager
How Test Impact Analysis Works B A TFS Microsoft Test Manager Team Build Test Impact View Manual Impacted Tests C Automated Impacted Tests Team Build Report
Multi-Tier Performance Analysis Client-side Script Database calls
Multi-Tier Performance Analysis Developer: “I wonder where the problem could be???” User: “Why is it taking so long to load the Orders page?” Back End? Front End? Mid Tier?
Tier Interaction Profiling Performance Analysis Across Multiple Tiers
Advanced Debugging Debugging a Crash using Dump Files Data Tips with Export
Dump File Summary Page Dump file summary information IL Interpreter for managed property evaluation Operating system and CLR version information Search modules Support for mixed-mode dump files Module Information
DataTips Pin the DataTip to the source code DataTip stays in sync with the source code Toolbar allows the user to pin/unpin a DataTip Context menu for managing values/expressions in the DataTip DataTip changes color to indicate it is a floating window Floating DataTips can be dragged anywhere, and can’t be pinned unless over source code Space provided for comments in the DataTip which can be collapsed/expanded as desired
Visual Studio 2010 Ultimate • Provides everything in one box • IntelliTrace® • Microsoft® Test Manager 2010 • Architecture and modeling tools Lab Management is part of Visual Studio 2010 Ultimate and Test Professional 2010 for MSDN subscribers
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Test Manager 2010 UML Modeling Performance Profiling Manual Testing Layer Diagram Load Testing Web Testing Test Case Management IntelliTrace™ Architecture Explorer Logical Class Designer Cloud Development Office Development Windows Development New WPF Editor Customizable IDE Multi-core Development Silverlight Tools Web Development SharePoint Development Generate from Usage Static Code Analysis Database Deployment Code Metrics Database Unit Testing Test Data Generation Test Impact Analysis UI Test Automation Code Coverage Database Change Mgmt Fast Forward for Manual Testing
Test Manager 2010 Gated Check-in Test Case Management Manual Testing Lab MgmtConfig. Checkpoint Environment Environment from Template Virtual Env. Setup/Tear Down Team Explorer Team Agents Reporting Team Portal Test Case Management Branch Visualization Version Control Build Automation Agile Planning Tools Fast Forward for Manual Testing