2. Team Developer
• What was already in the box?
– Static code analysis
– Dynamic code analysis
– Unit test coverage
• What is new in 2010?
– Test Impact Analysis
– Historical Debugging
– Multithreaded debugging
– Code analysis improvements
– Profiler improvements
3. Test Impact analysis
• Based on the changes you make get a list of
suggested tests to run
• Test check in policy works with only satisfying
impacted tests
• Team build generates the impact data
– Used in Test Impact view
Endeavour 5 Launch 3
5. Test Impact analysis : How It Works
void M() {
}
Test
Impacted Tests->Method Results
void M() { Tests mapping
i++;
}
Visual Studio
TFS
Build
Build Drop Site
6. Historical Debugging
• How do we debug today?
– Break…Inspect…Step…
– Restart the application multiple times
– Little insight into
reproduction environments
– Lots of time spent pinpointing where the problem
occurs
Endeavour 5 Launch 6
8. Historical Debugging : How it works
Collection Plan
• Specifies the what and how of instrumentation
Instrumentation & Hidden Trace Points
• Inserted into user’s code and the .NET framework using
ICorProfiling APIs
Logger & Log
• Data is recorded to a portable log file
User Experience
• Visualization of collected data integrated with the VS
Debugger IDE
Endeavour 5 Launch 8
9. Multithreaded debugging
• 2 new windows
– Parallel Stacks Window
– Parallel Tasks Window
DEMO
Endeavour 5 Launch 9
10. Code analysis improvements
• 8 New rules for 2010
• Filter rules for your
application and
situation
• Create, save and
distribute custom rule
sets
Endeavour 5 Launch 10
12. Profiler improvements
• Just my code profiling
• Three new profiling types
• Memory Allocation
• Contention Profiling
• Concurrency Analysis
• Comparison Reports (Excel)
• New function details view
Now Works under virtualization!
Endeavour 5 Launch 12
14. Some other new stuff
• Load tests:
– New Sequential Mix
– Also run functional tests
– Reporting to Excel
– Extensible data
collectors to support
more platforms
Endeavour 5 Launch 14
Notas del editor
CA1062: Validate arguments of public methodshttp://msdn.microsoft.com/en-us/library/ms182182.aspx CA1303: Do not pass literals as localized parametershttp://msdn.microsoft.com/en-us/library/ms182187.aspx CA2000: Dispose objects before losing scopehttp://msdn.microsoft.com/en-us/library/ms182289.aspx CA2100: Review SQL queries for security vulnerabilitieshttp://msdn.microsoft.com/en-us/library/ms182310.aspx CA2202: Do not dispose objects multiple timeshttp://msdn.microsoft.com/en-us/library/ms182334.aspx CA2204: Literals should be spelled correctlyhttp://msdn.microsoft.com/en-us/library/bb264488.aspx CA2215: Dispose methods should call base class disposehttp://msdn.microsoft.com/en-us/library/ms182330.aspx CA2241: Provide correct arguments to formatting methodshttp://msdn.microsoft.com/en-us/library/ms182361.aspx