Application Quality Best Practices with Visual Studio 2010 - Adrian Dunne

Preview:

DESCRIPTION

 

Citation preview

http://bit.ly/MSCloudDay Date:27th April 2011 (Wednesday)Time: 9.00am to 5.00pm(registration starts at 9am)

Venue:Microsoft AuditoriumLevel 21, One Marina BoulevardNTUC Centre

Application Quality Best Practices with Visual Studio 2010

13 April 2011

Adrian Dunne | Microsoft Singapore (a-addun@microsoft.com)

Microsoft Confidential3

The Cost of Sacrificing Quality

− $59 billion in lost productivity in the US

− 64% of this cost is born by “End Users”

− Software bugs account for 55% of all downtime costs

1 National Institute of Standards and Technology. (2002). Planning Report 02-3, The Economic Impacts of

Inadequate Infrastructure for Software Testing. U.S. Department of Commerce.

Strategy

Reduce time Unit Testing with Test Impact Analysis & Code Coverage Metrics

Enforce Coding Standards with Code Analysis & Code Metrics

Identify Performance Bottlenecks Before you’re Users with the Performance Wizard

Identify an Application’s limits with the Load Testing Framework

Microsoft Confidential5

Reduce time Unit Testing with Test Impact Analysis & Code Coverage

Metrics

Unit Test Improvements

Programmatically Control Unit Test Execution

Support for Categories (instead of lists) Performance Improvements Extensible with Custom Attributes Can Extend Unit Test Type Test Generation Test Data Generation

Test Impact Analysis Identifies tests impacted by code changes Significantly reduces test time

Microsoft Confidential8

DEMOTest Impact Analysis & Code

Coverage

Microsoft Confidential9

Enforce Coding Standards with Code Analysis & Code Metrics

Code Analysis

Process of examining code before runtime to eliminate defects and enforce standards

Code analysis != code review Reduce the man hours spent reviewing

typical coding errors, and spending more time on application design

Dogfooding

Design Globalization Interoperability

Maintainability

Mobility Naming Performance Portability

Reliability Security Usage

Project Health Metrics

“Code metrics provide the ability to dig deep to find those un-maintainable and complex hotspots”

Cyclomatic Complexity Lines of Code Class Coupling Depth of Inheritance Maintainability Index

Microsoft Confidential13

DEMOStatic Code Analysis &

Metrics

Microsoft Confidential14

Identify Performance Bottlenecks Before you’re Users with the

Performance Wizard

Performance Profiling

Measuring the execution of an application Assess your application performance

before deployment Identify & fix those areas that are

performing poorly

Profiling in the CLR

Profiling covers additional monitoring and diagnostics activities to support CLR features Application domains, garbage collection,

managed exception handling, and just-in-time (JIT) compilation

So What’s New?

Tier Interaction Profiling (TIP) – Profile Database Interaction!

Check-in performance reports to use as a baseline for comparison

Capture performance data from automated tests

Microsoft Confidential18

DEMOPerformance Profiling

Microsoft Confidential19

Identify an Application’s limits with the Load Testing Framework

Options for automated tests− Visual Studio 2010 supports several kinds of

automated tests

DatabaseBusiness Logic

User Interface

DatabaseUnit Tests

T T T T T

Unit Tests

T T

T T T

T T

Web Performance

Tests

T

T

T

T

Coded UI Tests

T

T

Unlimited Load Testing

Web Performance

Tests

T

T

T

T

T

T

T

T

T

T

T

T

T

T

T

T

Test Agent

Test Agent

Test Agent

Test Agent

Test Controller

DEMO

Microsoft Confidential22

Web Performance & Load Testing

Microsoft Confidential23

QnA

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Visual Studio, the Visual Studio logo, and [list other trademarks referenced] are trademarks of the Microsoft group of companies.

 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.