visual studio 2010 diagnostics and analysis tools to improve software quality as building software...

36
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. Randy Pagels Sr. Developer Technical Specialist Microsoft Corporation [email protected] 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

Post on 20-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

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 PagelsSr. Developer Technical SpecialistMicrosoft [email protected]://www.teamsystemcafe.net

Specialist covering Heartland(MI, OH, KY, and TN) Team Foundation Server Visual Studio ALM tools Visual Studio Test Professional Lab Management

• IntelliTrace™• Test Impact Analysis• Multi-tier Performance

Analysis• Solve Complex Debugging

Tasks• Q & A

Agenda

What is Proteus?

The Answer

Codename “Proteus”

Intellitrace, previously called “Historical Debugging”Record what the application does as it is runningMakes it easy to spot the bugRecord method calls with parametersGet intellitrace logs from your F5 developer testingGet intellitrace logs from your build serverGet intellitrace logs from your testers Record / Trace testers executionUse same source code to debug as the tester had to test

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?

ss

− Testing - No more “no repro”− Integrated, Extensible Diagnostics− Rich Bugs, fix first time, every time− Intellitrace

− Build Automation - BVTs− Build Verification Test (BVT) test fails− View & Debug failed test results from build

report− Intellitrace

− Developer Experience – F5− Historical Debugging from Dev machine− Play back events, forward & backward− Intellitrace

IntelliTrace™ value add experiences

Eliminate “No-repro” Bugs

File Bug

Resolve as

“No Repro”

Hand-offto Test

Test CodeHand-offto Dev

Verify Bug

Write Code

What is IntelliTrace?

+ =

ApplicationInstrumentati

onLog File

Today

+ ==

IntelliTrace • Record• Playback• Rewind

IntelliTrace

demo

• 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 IntelliTrace adapter 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 WorksApplication

IntelliTrace File

CollectionPlan.xml

IntelliTrace Recorder(IntelliTrace.exe)

Using IntelliTrace to debug Windows Azure Cloud Services

Windows Azure Compute Explorer indicates whether a deployment has IntelliTrace enabled on Hosted Services

Now simply view the Intellitrace logs

Enable IntelliTrace for .Net 4 apps

Package IntelliTrace logs from the web and worker host processes in the cloud and start the deployment process

A B

C D

What is Aftershock?

The Answer

Codename “Aftershock”

Test Impact AnalysisA list of impacted testsA list of changed methods with unit testsA list of changed tests with methods

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?

Choose the right tests

Automated Testing

Manual Testing

User Testing

Choosing the Right TestsThe Problem

Application Functionality

Q: Which tests should the developer and tester run to verify this code change?A) Automated Tests

onlyB) Manual Tests onlyC) All of the aboveD) Don’t knowE) Trick question??

Δ

Code Change

Choosing the Right TestsThe Consequence

The world of Developers−Run more tests than

needed−Run too few tests than

needed

The world of Testers− Verify more tests than

needed− Verify too few tests than

needed

1. Less Productivity• Effort wasted on tests that don’t need to be run

2. 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?

demoTest Impact Analysis• A One Line Bug Fix• Build Report• Manual Testing with Test

Manager

How Test Impact Analysis Works

Automated Impacted Tests

Test Impact View

TFS

Team Build

Manual Impacted Tests

Microsoft Test Manager

Team Build Report

A B

C

Multi-Tier Performance Analysis

Client-side Script

Database calls

Multi-Tier Performance AnalysisUser: “Why is it taking so long to load the Orders

page?”

Developer: “I wonder where the

problem could be???”

Front End?

Mid Tier?

Back End?

Multi-Tier Performance Analysis

demo

Tier Interaction Profiling• Performance Analysis

Across Multiple Tiers

Solve Complex Debugging Tasks

demo

Advanced Debugging• Debugging a Crash using Dump

Files• Data Tips with Export

Dump File Summary PageDump file summary information

Support for mixed-mode dump files

IL Interpreter for managed property evaluation

Operating system and CLR version information

Module Information

Search modules

DataTipsPin 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

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

DataTip changes color to indicate it is a floating window

Visual Studio 2010 Ultimate

• Provides everything in one box• IntelliTrace®• Microsoft® Test Manager 2010• Architecture and modeling

toolsLab 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.

Appendix

Visual Studio 2010

Test Manager 2010

Manual Testing

Layer Diagram

UML Modeling

Load Testing Web Testing

Test Case Management

IntelliTrace™

Architecture Explorer Fast Forward for Manual Testing

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 AnalysisUI Test Automation

Code Coverage

Performance Profiling

Database Change Mgmt

Test Manager 2010

Test Case Management

Fast Forward for Manual Testing

Manual Testing

Lab Mgmt Config.

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

Gated Check-in

Agile Planning Tools