Presentation is loading. Please wait.

Presentation is loading. Please wait.

Delving into Visual Studio 2005 Team Edition for Software Developers Brian A. Randell Senior Consultant MCW Technologies.

Similar presentations


Presentation on theme: "Delving into Visual Studio 2005 Team Edition for Software Developers Brian A. Randell Senior Consultant MCW Technologies."— Presentation transcript:

1 Delving into Visual Studio 2005 Team Edition for Software Developers Brian A. Randell Senior Consultant MCW Technologies

2 About Brian Senior Consultant with MCW Technologies, LLC Contact me via my blog or e-mail: http://www.mcwtech.com/cs/blogs/brianr/ brianr@mcwtech.com Visual Basic MVP Author of Visual Studio 2005 Team Edition for Database Professionals Hands-on Labs Manager and co-author of Microsoft SQL Server 2005 Hands-on Labs Author of Core Team System training course Co-author of Effective Visual Basic

3 Something Wicked This Way Comes …

4 … And It’s Your Code!

5 Agenda Why Quality Matters to You Unit Testing Code Coverage Static Analysis Dynamic Analysis Code Profiling

6 Testing vs. Debugging “Testing is a means of detecting errors” “Debugging is a means of diagnosing and correcting the root causes of errors that have already been detected” Steve McConnell, Code Complete 2 nd Ed., p500

7 Projects and Testing Often an expensive afterthought Strategies for minimizing impact Requirements Coding Integration Beta Test Post-Release 5 10 15 20 25 30 Relative Cost To Fix Bugs...

8 Why Quality Matters to You Defect detection rates rarely rise above 75% when using a single technique The techniques average about 40% If you’re trying to achieve high defect-rate detection, you need to use a combination of techniques The bottom line: You can’t just rely upon your test team—quality begins with you! Steve McConnell, Code Complete 2 nd Ed., p470

9 Tools Can Help Building software is hard—good tools can help Visual Studio 2005 Professional is the foundation for developers who want to write solid, high- quality code Visual Studio 2005 Team Edition for Software Developers (VSTESD) brings testing to the developer as an integrated feature—not an afterthought

10 Visual Studio Team System Visual Studio Team Suite MSF Process and Guidance Visual Studio Team Foundation Server Visual Studio Industry Partners Software Architects Software Developers Software Testers Database Professionals Visual Studio Team Explorer Application Modeling Infrastructure and Deployment Modeling Code Analysis Performance Tuning Security Analysis Database Deployment Database Change Management Database Testing Performance Testing Manual Testing Test Case Management Visual Studio Professional Edition Change Management Work Item Tracking Reporting Project Site Integration Services Project Management Load Test Agent Visio and UML Modeling Class Modeling Unit Testing Code Coverage New!

11 Unit Testing The process of running repeatable, programmatic tests, generally written by a developer, against some code (a class, set of methods, individual method, etc) Formalizes the process of test rigs Whole “lifestyle” dedicated to it—Test Driven Development (TDD)

12 Unit Testing in VSTESD Explicit Test Project Type Can be created by you or by Visual Studio Test artifacts that support code can be C#, Visual Basic, or Managed C++ Right-click support for Test project and member generation from most project types (Class libraries, Windows Forms, etc.) Member generation from test projects Can run tests against any managed target and most unmanaged targets (just might require code and effort on your part)

13 Unit Testing Runtime Tests can be run inside or outside of Visual Studio VSTestHost.exe spawned when running via the debugger MSTest.exe supports command-line integration

14 Unit Testing and C++ Only supports “production code” Unmanaged—callable from a static library, an.obj file, or a DLL entry point. Only traditional native binding mechanisms work Mixed—project that uses the /clr compiler option. As long as it’s not an EXE any callable method in your code can be called and tested. Safe or Pure--any callable assembly method can be called and tested EXE or DLL Right-click generation only supported from projects using /clr:safe compiler option

15 Team Foundation Server Integration Work items—bugs, tasks, etc.—can be created from Test Results window Test results can be published to TFS Tests can be run as part of nightly or integration builds via Team Build

16 Code Coverage Code Coverage allows you to see what code is being executed, neé covered, and what code is not This is accomplished by instrumenting the assembly Support for both managed and native code

17 What’s going on inside? New assembly is generated Two types are added in custom namespace Methods are injected with calls to internally generated class A minimum of two calls are added One to register one to track entry Additional calls based upon coding constructs like conditionals, loops, etc. External dependency on VSCover80.dll

18 Code Coverage in VSTESD Instrumentation of assemblies does not occur until tests are run with Code Coverage enabled Done on a per assembly basis Programmatic access to coverage data possible via managed interfaces Full command-line support via three tools: Instrumentation—vsinstr.exeMonitoring—VSPerfMon.exeControl—VSPerfCmd.exe

19 TFS Integration Work items—bugs, tasks, etc.—can be created from Test Results window linking to test with code coverage Code coverage data can be included with test results that are published to TFS Code coverage can be run with tests as part of a nightly or integration build via Team Build

20 Things to watch out for Cannot debug assemblies that have Code Coverage enabled It is possible to not get 100% code coverage My in Visual Basic projects Certain conditional or looping operations

21 Static Code Analysis Support for both managed and unmanaged code Evolution of FxCop for managed developers Post compilation analysis of compiled IL PREfast for C++ developers Analysis done during build process

22 Static Code Analysis in VSTESD Managed projects have a new property page labeled Code Analysis Check-box to turn it on; 11 categories of rules Violation of rules can trigger warning or error Can decorate code with attributes to suppress a warning (right-click support from Error List window) Use FxCopCmd.exe at the command line C++ projects done via Code Analysis node under Configuration Properties Can use /analyze switch at command line

23 TFS Integration Work items—bugs, tasks, etc.—can be created from Error List window Source Code Control Policy can be used to enforce code analysis before check-in Support for migration of policy from server to solutions on client machines Support for both managed and C++ projects Code analysis can be run as part of nightly or integration builds via Team Build

24 Things to watch out for Customization of rules not possible for C++ in this release Customization of rules for managed code is discouraged by product team It’s not officially supported or documented Issues with policy migration to new Visual Studio 2005 Web Project types

25 Dynamic Code Analysis Application Verifier catches heap, handle and lock errors in native applications Used with C++ projects during runtime only Available via Debug | Start With Application Verifier

26 Things to watch out for You must be an administrator on the system that you are using in order to run Application Verifier Application Verifier only runs on Windows XP and Windows Server 2003 I’ve not tried it on Vista or Longhorn server yet

27 Code Profiling Support two modes of application profiling for both managed and native application Sampling captures runtime data on a periodic basis without modification of the application Generally best for isolating hot spots Instrumentation modifies binaries by inserting probes and provides very granular information Generally used after a hot spot is found and you want to dig deeper

28 Code Profiling in VSTESD Can be started from Visual Studio via Tools | Performance Tools Can also generate performance session from a test via the Test Results window However doesn’t work correctly for C++ projects

29 Rich Command Line Support VsPerfCLREnv.exe to setup and cleanup VsPerfCmd.exe to start and stop VsPerfMon.exe for advanced profiling vsinstr.exe to instrument your assemblies VsPerfReport.exe to analyze reports

30 TFS Integration Not much No right-click support for SCC or Work Items Performance window is its own window is its own window

31 Things to watch out for Make sure you setup a symbol server or hook up to Microsoft’s to see external member names Profiling can generate TONS of data Make sure you have lots of disk space Can’t profile in sampling mode under Virtual PC Only supports.NET 2.0 managed applications Does not support 64-bit applications Add a post-compilation event to re-sign assemblies if your profiling code with strong names

32 3rd Party Tools SPI Dynamics Comprehensive Find and Fix Approach: DevInspect and SecureObjects accelerate the construction and delivery of secure Web applications by identifying vulnerabilities and fixing insecure source code within Visual Studio 2005 DevInspect and SecureObjects leverage Visual Studio 2005 Team System’s source control system and code check-in policies to prevent developers from checking insecure source code. For more information: http://www.spidynamics.com/products/devinspect/index.html http://www.spidynamics.com/products/devinspect/datasheet.html

33 VSTS Breakout Sessions DEV311 - Delving into Visual Studio 2005 Team Edition for Software Testers 6/12/2006 5:00PM-6:15PM 104 ABC DEV217 - Introducing Visual Studio 2005 Team Edition for Database Professionals 6/13/2006 10:15AM-11:30AM 104 ABC DAT312 - Managing and Deploying Your SQL Server Schemas with Visual Studio Team Edition for Database Professionals 6/13/2006 1:00PM-2:15PM 156 ABC DAT320 - Testing and Refactoring Your Database with Visual Studio Team Edition for Database Professionals 6/14/2006 8:30AM-9:45AM 160 ABC DEV327 - Visual Studio 2005 Team Foundation Server (Part 1): Applying Version Control, Work Item Tracking and Team Build to Your Software Development Project 6/14/2006 10:15AM-11:30AM 160 ABC

34 VSTS Breakout Sessions DEV429 - Visual Studio 2005 Team Foundation Server (Part 2): Developing Custom Process Templates, Work Item Types and Policies 6/14/2006 2:00PM-3:15PM 160 ABC DEV233 - Visual Studio 2005 Team Foundation Server: Using Metrics to Manage and Troubleshoot Your Projects 6/14/2006 5:30PM-6:45PM 153 ABC DEV237 - Visual Studio 2005 Team Foundation Server: Step-by- Step Migration and Adoption Planning 6/15/2006 9:45AM-11:00AM 104 ABC DEV439- Visual Studio 2005 Team System and Microsoft Solution Framework: Implementing an Agile or CMMI Process 6/15/2006 1:00PM-2:15PM 156 ABC DAT433Under the Hood of Visual Studio Team Edition for Database Professionals 6/15/2006 1:00PM-2:15PM 160 ABC

35 VSTS HOL / TCL Hands on Labs DEV005 Streamlining your Development Process with Visual Studio 2005 Team System DEV008 Take a Tour of Visual Studio 2005 Team System for Database Professionals Chalktalks Building Quality In: Visual Studio Team System and Continuous Integrated Testing DEV TLC Theatre 6/14/2006 8:30AM-9:45AM Teamlook and TeamSpec in Context Modeling that Supports Visual Studio 2005 DEV TLC Theatre 6/14/2006 5:30PM-6:45PM Modeling that Supports Visual Studio 2005 DEV TLC Theatre 6/14/2006 5:30PM-6:45PM Visual Studio Team Edition for Database Professionals: Overview DEV TLC Theatre 6/15/2006 9:45AM-11:00AM Code Generation and Model Execution from DSL Tools DEV TLC Theatre 6/15/2006 2:45PM-4:00PM

36 Summary Quality is everyone’s job Use the tools when it makes sense Questions? I’m here all week or contact me via my blog or e-mail: http://www.mcwtech.com/cs/blogs/brianr/ brianr@mcwtech.com

37 Resources Technical Chats and Webcasts http://www.microsoft.com/communities/chats/default.mspx http://www.microsoft.com/usa/webcasts/default.asp Microsoft Learning and Certification http://www.microsoft.com/learning/default.mspx MSDN & TechNet http://microsoft.com/msdn http://microsoft.com/technet Virtual Labs http://www.microsoft.com/technet/traincert/virtuallab/rms.mspx Newsgroups http://communities2.microsoft.com/ communities/newsgroups/en-us/default.aspx Technical Community Sites http://www.microsoft.com/communities/default.mspx User Groups http://www.microsoft.com/communities/usergroups/default.mspx

38 Fill out a session evaluation on CommNet for a chance to Win an XBOX 360!

39 © 2006 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.


Download ppt "Delving into Visual Studio 2005 Team Edition for Software Developers Brian A. Randell Senior Consultant MCW Technologies."

Similar presentations


Ads by Google