Presentation is loading. Please wait.

Presentation is loading. Please wait.

Visual Studio 2005 Team System: Building Robust & Reliable Software Tejasvi Kumar Technology Specialist - VSTS Microsoft Corporation

Similar presentations


Presentation on theme: "Visual Studio 2005 Team System: Building Robust & Reliable Software Tejasvi Kumar Technology Specialist - VSTS Microsoft Corporation"— Presentation transcript:

1 Visual Studio 2005 Team System: Building Robust & Reliable Software Tejasvi Kumar Technology Specialist - VSTS Microsoft Corporation tejkumar@microsoft.com

2 Visual Studio Team System Change ManagementWork Item TrackingReportingProject Portal Visual Studio Team Foundation Server Integration ServicesProject Management Process and Architecture Guidance Dynamic Code Analyzer Visual Studio Team Edition Software Architects Static Code AnalyzerCode ProfilerUnit TestingCode CoverageTeam Explorer (includes Team Foundation Server CAL)Visual Studio Professional EditionLoad TestingManual TestingTest Case ManagementApplication DesignerSystem DesignerLogical Datacenter Designer Visual Studio Team Edition Software Developers Visual Studio Team Edition Software Testers Visual Studio Industry Partners Team BuildClass Designer (in Visual Studio Standard Edition and higher) Deployment DesignerVisio for Enterprise Architects (in MSDN Premium Subscription)

3 Problem Space … Developers VS05 Pro users VSEA 2003 users VB6 users ISVs Web developers Multiple tools require constant context switching Multiple tools require constant context switching Difficult to share knowledge Difficult to share knowledge  Best practices  Avoid common mistakes Security is a constantly evolving problem Security is a constantly evolving problem

4 Team Developer Edition Developers VS05 Pro users VSEA 2003 users VB6 users ISVs Web developers Integrated Code Profiler, Unit Testing and Code Coverage Integrated Code Profiler, Unit Testing and Code Coverage Process-driven Development Process-driven Development Code Analysis with each build Code Analysis with each build

5 Unit Testing Write tests to verify code quality Write tests to verify code quality  Managed Code  Web Services Improves the quality of code and helps to maintain quality standards Improves the quality of code and helps to maintain quality standards Rich feature set: Rich feature set:  Code Generation  Integrated Debugging  Data Driven Testing

6 Unit Testing Integrated Unit Testing

7 Code Coverage Verify the code paths touched by test cases Verify the code paths touched by test cases  Management in VSTE-SD  Part of shared team reports Measure the effectiveness of testing efforts Measure the effectiveness of testing efforts Drill-down as needed Drill-down as needed  Assemblies, Classes, Methods  Lines of code

8 Code Coverage

9 Code Analysis Evaluating code without execution Evaluating code without execution  Managed & Unmanaged Code  Integrated with VSTE-SD & on the Command Line Great way of finding bugs earlier in your development cycle Great way of finding bugs earlier in your development cycle  Costs less when you find bugs early  Code review in a box Can be used at the Team level Can be used at the Team level  Part of your Build process  Part of your check-in policy

10 Static Analysis Find errors in your code before you run or deploy it Find errors in your code before you run or deploy it Checks range from style to code correctness to security issues Checks range from style to code correctness to security issues Integrated into the Team System Build Environment Integrated into the Team System Build Environment

11 Static Analysis The dev process without Static Analysis Compile Code Binary PreprocGrammarLinkRaiseErrors

12 Static Analysis The dev process with Static Analysis Code Compile StaticAnalysis AnalyzeCodeCheckRulesRaiseErrors Binary

13 Static Analysis Managed Code Example static void Initialize(string id) { if (id == "") return; if (id == "") return; try try { Utilities.OpenUserAccount(id); Utilities.OpenUserAccount(id); } catch(Exception ex) catch(Exception ex) { // user must not exist // user must not exist Utilities.CleanAccountState(id); Utilities.CleanAccountState(id); Console.WriteLine(ex); Console.WriteLine(ex); }} Compiles Static Analysis gives warnings

14 Static Analysis Managed Code Example static void Initialize(string id) { if (id == "") return; if (id == "") return; try try { Utilities.OpenUserAccount(id); Utilities.OpenUserAccount(id); } catch(Exception ex) catch(Exception ex) { // user must not exist // user must not exist Utilities.CleanAccountState(id); Utilities.CleanAccountState(id); Console.WriteLine(ex); Console.WriteLine(ex); }} e:\Logger.cs(39): 'Logger.Initialize(System.String)#System.Void' Modify the following catch clauses in 'Logger.Initialize' by catching a more specific exception type or rethrowing the exception ' catch(Exception) {...}' e:\logger.cs(36): 'Logger.Initialize(System.String)#System.Void' Replace all calls to "".Equals or String.Empty.Equals in 'Logger.Initialize(System.String)' with checks for Length == 0.

15 Static Analysis Managed Code Example static void Initialize(string id) { if (id.Length == 0) if (id.Length == 0) { throw new ArgumentExeception(“Bad A…”); } try try { Utilities.OpenUserAccount(id); Utilities.OpenUserAccount(id); } catch(Exception ex) catch(Exception ex) { // user must not exist // user must not exist Utilities.CleanAccountState(id); Utilities.CleanAccountState(id); throw ex; throw ex; }} Improve my code

16 Static Code Analysis Static Code Analyzer

17 Profiling Evaluation code while it’s running Evaluation code while it’s running  Sampling  Instrumentation Find performance issues as you develop your code Find performance issues as you develop your code  Managed & Unmanaged  Reports view integrated with Visual Studio  Integrated with VSTE-SD and on the Command Line

18 Profiling Able to do both managed and unmanaged Able to do both managed and unmanaged Able to do both instrumentation and sampling Able to do both instrumentation and sampling Used by many internal teams and on customer engagements Used by many internal teams and on customer engagements

19 Profiling Instrumentation main AMethod BMethod main 001 AMethod0023 BMethod0098 ….. 0145 Adds instructions to your code to monitor Adds instructions to your code to monitor

20 Profiling Sampling main AMethod BMethod Analyze without changing your app Analyze without changing your app main 3 AMethod 6 BMethod 9 2

21

22 Team Developer Edition The Tools the Microsoft Uses The Tools the Microsoft Uses Features Features  Static code analysis  Support for managed and native code  PREfast used in Trustworthy Computing Code Reviews  FxCop used to develop.NET framework  Code profiling  Based on two internal profilers:  Instrumented – IceCAP, used by Windows Base and SQL Server  Sampling – LOP, used throughout MX, including Xbox  Includes ETW events  Sequence view examines running threads  GC view of object allocation and lifetime  Caller-callee, callstack, and function views  Code coverage  Basic Block Coverage  Based on the BBCover technology that Windows & Visual Studio use  Application Verifier

23

24 The Webcast Quiz! Four questions, multiple choice type Four questions, multiple choice type  More than one maybe correct Two lucky winners will win an Orchid Music Player Two lucky winners will win an Orchid Music Player If you participate in the contest and are among the 2 lucky winners, your name will be featured on http://www.microsoft.com/india/webcasts/ If you participate in the contest and are among the 2 lucky winners, your name will be featured on http://www.microsoft.com/india/webcasts/ http://www.microsoft.com/india/webcasts/

25 1. Visual Studio Team Edition for Software Developers offers which of the following functionalities? A) Unit Testing B) Code Analysis C) Code Profiling D) Source Code Control

26 2. In Test Driven Development (TDD) you would: A) Write code first & then write unit tests B) Just start coding without writing any unit tests C) Write the unit tests first & then write the code D) None of the above

27 3. Code Coverage: A) Ensures correctness of your code B) Debugs your code C) Verifies the code paths touched by the test cases D) Compiles your code

28 4. Code profiling includes which of the following techniques? A) Sampling B) Instrumentation C) Refactoring D) Shadowing

29 How to Participate Please send your responses to response@erfolgcs.com Please send your responses to response@erfolgcs.com response@erfolgcs.com  Subject = “Microsoft Webcast Contest – VSTS Webcasts – Developer”

30 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Download ppt "Visual Studio 2005 Team System: Building Robust & Reliable Software Tejasvi Kumar Technology Specialist - VSTS Microsoft Corporation"

Similar presentations


Ads by Google