SlideShare a Scribd company logo
http://bit.ly/MSCloudDayDate:27th April 2011 (Wednesday)Time: 9.00am to 5.00pm(registration starts at 9am)Venue:Microsoft AuditoriumLevel 21, One Marina BoulevardNTUC Centre
13 April 2011Application Quality Best Practices with Visual Studio 2010Adrian Dunne | Microsoft Singapore(a-addun@microsoft.com)
The Cost of Sacrificing Quality$59 billion in lost productivity in the US64% of this cost is born by “End Users”Software bugs account for 55% of all downtime costsMicrosoft Confidential31 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.
StrategyReduce 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 FrameworkReduce time Unit Testing with Test Impact Analysis & Code Coverage MetricsMicrosoft Confidential5
Unit Test ImprovementsProgrammatically 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 GenerationTest Impact AnalysisIdentifies tests impacted by code changes
Significantly reduces test timeDEMOMicrosoft Confidential8Test Impact Analysis & Code Coverage
Enforce Coding Standards with Code Analysis & Code MetricsMicrosoft Confidential9
Code AnalysisProcess 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 designDogfooding
Project Health Metrics“Code metrics provide the ability to dig deep to find those un-maintainable and complex hotspots”CyclomaticComplexity
Lines of Code
Class Coupling
Depth of Inheritance
Maintainability IndexDEMOMicrosoft Confidential13Static Code Analysis & Metrics

More Related Content

What's hot (20)

Functional Testing
Functional TestingFunctional Testing
Functional Testing
Precise Testing Solution
 
Testing web application
Testing web applicationTesting web application
Testing web application
jayashreesaravanan
 
Mobile Application Testing Process
Mobile Application Testing ProcessMobile Application Testing Process
Mobile Application Testing Process
Aeroqube
 
Fundamentals of Testing
Fundamentals of TestingFundamentals of Testing
Fundamentals of Testing
Code95
 
Ch8-Software Engineering 9
Ch8-Software Engineering 9Ch8-Software Engineering 9
Ch8-Software Engineering 9
Ian Sommerville
 
Resume Updated
Resume UpdatedResume Updated
Resume Updated
Om Kumar
 
Tlc
TlcTlc
Tlc
Dhanasekaran Nagarajan
 
Navin Latest
Navin LatestNavin Latest
Navin Latest
Navin Singh
 
Ijcatr04051014
Ijcatr04051014Ijcatr04051014
Ijcatr04051014
Editor IJCATR
 
Step by-step mobile testing approaches and strategies
Step by-step mobile testing approaches and strategiesStep by-step mobile testing approaches and strategies
Step by-step mobile testing approaches and strategies
Alisha Henderson
 
Gl istqb testing fundamentals
Gl istqb testing fundamentalsGl istqb testing fundamentals
Gl istqb testing fundamentals
Pragya Rastogi
 
Basic interview questions for manual testing
Basic interview questions for manual testingBasic interview questions for manual testing
Basic interview questions for manual testing
JYOTI RANJAN PAL
 
Functional Testing vs Non-Functional Testing | Edureka
Functional Testing vs Non-Functional Testing | EdurekaFunctional Testing vs Non-Functional Testing | Edureka
Functional Testing vs Non-Functional Testing | Edureka
Edureka!
 
Testing
TestingTesting
Testing
kalasalingam university
 
Dan Lewis 2014
Dan Lewis 2014Dan Lewis 2014
Dan Lewis 2014
Dan Lewis
 
Istqb ctfl performance testing training course
Istqb ctfl performance testing training courseIstqb ctfl performance testing training course
Istqb ctfl performance testing training course
Narayanan Palani
 
SynapseIndia mobile apps
SynapseIndia mobile appsSynapseIndia mobile apps
SynapseIndia mobile apps
Synapseindiappsdevelopment
 
Fundamental of functional testing
Fundamental of functional testing Fundamental of functional testing
Fundamental of functional testing
RichelGarner
 
Manual testing
Manual testingManual testing
Manual testing
Ajit Jain
 
V model
V modelV model
V model
Albert Alejandre
 
Mobile Application Testing Process
Mobile Application Testing ProcessMobile Application Testing Process
Mobile Application Testing Process
Aeroqube
 
Fundamentals of Testing
Fundamentals of TestingFundamentals of Testing
Fundamentals of Testing
Code95
 
Ch8-Software Engineering 9
Ch8-Software Engineering 9Ch8-Software Engineering 9
Ch8-Software Engineering 9
Ian Sommerville
 
Resume Updated
Resume UpdatedResume Updated
Resume Updated
Om Kumar
 
Step by-step mobile testing approaches and strategies
Step by-step mobile testing approaches and strategiesStep by-step mobile testing approaches and strategies
Step by-step mobile testing approaches and strategies
Alisha Henderson
 
Gl istqb testing fundamentals
Gl istqb testing fundamentalsGl istqb testing fundamentals
Gl istqb testing fundamentals
Pragya Rastogi
 
Basic interview questions for manual testing
Basic interview questions for manual testingBasic interview questions for manual testing
Basic interview questions for manual testing
JYOTI RANJAN PAL
 
Functional Testing vs Non-Functional Testing | Edureka
Functional Testing vs Non-Functional Testing | EdurekaFunctional Testing vs Non-Functional Testing | Edureka
Functional Testing vs Non-Functional Testing | Edureka
Edureka!
 
Dan Lewis 2014
Dan Lewis 2014Dan Lewis 2014
Dan Lewis 2014
Dan Lewis
 
Istqb ctfl performance testing training course
Istqb ctfl performance testing training courseIstqb ctfl performance testing training course
Istqb ctfl performance testing training course
Narayanan Palani
 
Fundamental of functional testing
Fundamental of functional testing Fundamental of functional testing
Fundamental of functional testing
RichelGarner
 
Manual testing
Manual testingManual testing
Manual testing
Ajit Jain
 

Viewers also liked (15)

Reslink Solutions 2015 Public
Reslink Solutions 2015 PublicReslink Solutions 2015 Public
Reslink Solutions 2015 Public
Jukka Hautala
 
ALM with TFS 2010
ALM with TFS 2010ALM with TFS 2010
ALM with TFS 2010
adrian8three
 
Didactica
DidacticaDidactica
Didactica
COLEGIO GRAN BRETAÑA
 
A Lap Around Visual Studio 2010
A Lap Around Visual Studio 2010A Lap Around Visual Studio 2010
A Lap Around Visual Studio 2010
adrian8three
 
Grandma's memory
Grandma's memoryGrandma's memory
Grandma's memory
Shannon Nail
 
Pureprofile Sept 2011 Global Panelbook
Pureprofile Sept 2011 Global PanelbookPureprofile Sept 2011 Global Panelbook
Pureprofile Sept 2011 Global Panelbook
jplahnbrewer
 
Newsletter
NewsletterNewsletter
Newsletter
group5catonline
 
Pureprofile Esomar 26 Questions
Pureprofile Esomar 26 QuestionsPureprofile Esomar 26 Questions
Pureprofile Esomar 26 Questions
jplahnbrewer
 
Annual Report of the Comptroller and Auditor General 2010
Annual Report of the Comptroller and Auditor General 2010Annual Report of the Comptroller and Auditor General 2010
Annual Report of the Comptroller and Auditor General 2010
Brendan Brady Accountants & Tax Consultants
 
Enterprise Project Planning with Project Server and TFS
Enterprise Project Planning with Project Server and TFSEnterprise Project Planning with Project Server and TFS
Enterprise Project Planning with Project Server and TFS
adrian8three
 
Scrum With TFS 2010
Scrum With TFS 2010Scrum With TFS 2010
Scrum With TFS 2010
adrian8three
 
Manual bomba centrífuga griswold
Manual bomba centrífuga griswoldManual bomba centrífuga griswold
Manual bomba centrífuga griswold
Omar Soto Basilio
 
Taxation of Married Couples, Separation, Divorce & Civil Partnership
Taxation of Married Couples, Separation, Divorce & Civil PartnershipTaxation of Married Couples, Separation, Divorce & Civil Partnership
Taxation of Married Couples, Separation, Divorce & Civil Partnership
Brendan Brady Accountants & Tax Consultants
 
Reslink Solutions 2015 Public
Reslink Solutions 2015 PublicReslink Solutions 2015 Public
Reslink Solutions 2015 Public
Jukka Hautala
 
A Lap Around Visual Studio 2010
A Lap Around Visual Studio 2010A Lap Around Visual Studio 2010
A Lap Around Visual Studio 2010
adrian8three
 
Pureprofile Sept 2011 Global Panelbook
Pureprofile Sept 2011 Global PanelbookPureprofile Sept 2011 Global Panelbook
Pureprofile Sept 2011 Global Panelbook
jplahnbrewer
 
Pureprofile Esomar 26 Questions
Pureprofile Esomar 26 QuestionsPureprofile Esomar 26 Questions
Pureprofile Esomar 26 Questions
jplahnbrewer
 
Enterprise Project Planning with Project Server and TFS
Enterprise Project Planning with Project Server and TFSEnterprise Project Planning with Project Server and TFS
Enterprise Project Planning with Project Server and TFS
adrian8three
 
Scrum With TFS 2010
Scrum With TFS 2010Scrum With TFS 2010
Scrum With TFS 2010
adrian8three
 
Manual bomba centrífuga griswold
Manual bomba centrífuga griswoldManual bomba centrífuga griswold
Manual bomba centrífuga griswold
Omar Soto Basilio
 

Similar to Application Quality Best Practices with VS2010 (20)

Embedded software validation best practices with NI and RQM
Embedded software validation best practices with NI and RQMEmbedded software validation best practices with NI and RQM
Embedded software validation best practices with NI and RQM
Paul Urban
 
CISQ and Software Quality Measurement - Software Assurance Forum (March 2010)
CISQ and Software Quality Measurement - Software Assurance Forum (March 2010)CISQ and Software Quality Measurement - Software Assurance Forum (March 2010)
CISQ and Software Quality Measurement - Software Assurance Forum (March 2010)
CISQ - Consortium for IT Software Quality
 
implementing_ai_for_improved_performance_testing_the_key_to_success.pdf
implementing_ai_for_improved_performance_testing_the_key_to_success.pdfimplementing_ai_for_improved_performance_testing_the_key_to_success.pdf
implementing_ai_for_improved_performance_testing_the_key_to_success.pdf
sarah david
 
vinayak chavan-tester
vinayak chavan-testervinayak chavan-tester
vinayak chavan-tester
Vinayak Chavan
 
Zibrasoft | Software QA Testing Company Inida
Zibrasoft | Software QA Testing Company InidaZibrasoft | Software QA Testing Company Inida
Zibrasoft | Software QA Testing Company Inida
ZibraSoft Technologies
 
Reduce Release Risk with Feature Monitoring
Reduce Release Risk with Feature MonitoringReduce Release Risk with Feature Monitoring
Reduce Release Risk with Feature Monitoring
Split Software
 
Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran Kinsbruner
QA or the Highway
 
Software Project Management - NESDEV
Software Project Management - NESDEVSoftware Project Management - NESDEV
Software Project Management - NESDEV
Krit Kamtuo
 
Bindu Chintalapudi - Software Testing -latest (1)
Bindu Chintalapudi - Software Testing -latest (1)Bindu Chintalapudi - Software Testing -latest (1)
Bindu Chintalapudi - Software Testing -latest (1)
bindu chintalapudi
 
Srikanth QA Analyst
Srikanth QA AnalystSrikanth QA Analyst
Srikanth QA Analyst
srikanth rangraju
 
Agile Development in Aerospace and Defense
Agile Development in Aerospace and DefenseAgile Development in Aerospace and Defense
Agile Development in Aerospace and Defense
Jim Nickel
 
Unit Testing Essay
Unit Testing EssayUnit Testing Essay
Unit Testing Essay
Dani Cox
 
Bhavana Paul
Bhavana PaulBhavana Paul
Bhavana Paul
Bhavana Paul
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
SQALab
 
Keyword Driven Automation
Keyword Driven AutomationKeyword Driven Automation
Keyword Driven Automation
Pankaj Goel
 
Updated resume
Updated resumeUpdated resume
Updated resume
shriraam ms
 
Software tester_6+ yrs of experience
Software tester_6+ yrs of experienceSoftware tester_6+ yrs of experience
Software tester_6+ yrs of experience
Pramod dussa
 
Kiran R P_CV
Kiran  R P_CVKiran  R P_CV
Kiran R P_CV
Kiran RP
 
Optimizing API Performance Testing A Comprehensive Guide
Optimizing API Performance Testing A Comprehensive GuideOptimizing API Performance Testing A Comprehensive Guide
Optimizing API Performance Testing A Comprehensive Guide
Testrig Technologies
 
MANJULA PRASHANT CV
MANJULA PRASHANT CVMANJULA PRASHANT CV
MANJULA PRASHANT CV
Manjula CB
 
Embedded software validation best practices with NI and RQM
Embedded software validation best practices with NI and RQMEmbedded software validation best practices with NI and RQM
Embedded software validation best practices with NI and RQM
Paul Urban
 
CISQ and Software Quality Measurement - Software Assurance Forum (March 2010)
CISQ and Software Quality Measurement - Software Assurance Forum (March 2010)CISQ and Software Quality Measurement - Software Assurance Forum (March 2010)
CISQ and Software Quality Measurement - Software Assurance Forum (March 2010)
CISQ - Consortium for IT Software Quality
 
implementing_ai_for_improved_performance_testing_the_key_to_success.pdf
implementing_ai_for_improved_performance_testing_the_key_to_success.pdfimplementing_ai_for_improved_performance_testing_the_key_to_success.pdf
implementing_ai_for_improved_performance_testing_the_key_to_success.pdf
sarah david
 
Zibrasoft | Software QA Testing Company Inida
Zibrasoft | Software QA Testing Company InidaZibrasoft | Software QA Testing Company Inida
Zibrasoft | Software QA Testing Company Inida
ZibraSoft Technologies
 
Reduce Release Risk with Feature Monitoring
Reduce Release Risk with Feature MonitoringReduce Release Risk with Feature Monitoring
Reduce Release Risk with Feature Monitoring
Split Software
 
Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran Kinsbruner
QA or the Highway
 
Software Project Management - NESDEV
Software Project Management - NESDEVSoftware Project Management - NESDEV
Software Project Management - NESDEV
Krit Kamtuo
 
Bindu Chintalapudi - Software Testing -latest (1)
Bindu Chintalapudi - Software Testing -latest (1)Bindu Chintalapudi - Software Testing -latest (1)
Bindu Chintalapudi - Software Testing -latest (1)
bindu chintalapudi
 
Agile Development in Aerospace and Defense
Agile Development in Aerospace and DefenseAgile Development in Aerospace and Defense
Agile Development in Aerospace and Defense
Jim Nickel
 
Unit Testing Essay
Unit Testing EssayUnit Testing Essay
Unit Testing Essay
Dani Cox
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
SQALab
 
Keyword Driven Automation
Keyword Driven AutomationKeyword Driven Automation
Keyword Driven Automation
Pankaj Goel
 
Software tester_6+ yrs of experience
Software tester_6+ yrs of experienceSoftware tester_6+ yrs of experience
Software tester_6+ yrs of experience
Pramod dussa
 
Kiran R P_CV
Kiran  R P_CVKiran  R P_CV
Kiran R P_CV
Kiran RP
 
Optimizing API Performance Testing A Comprehensive Guide
Optimizing API Performance Testing A Comprehensive GuideOptimizing API Performance Testing A Comprehensive Guide
Optimizing API Performance Testing A Comprehensive Guide
Testrig Technologies
 
MANJULA PRASHANT CV
MANJULA PRASHANT CVMANJULA PRASHANT CV
MANJULA PRASHANT CV
Manjula CB
 

Application Quality Best Practices with VS2010

Editor's Notes

  • #3: Introduce self… Talking about code quality… It’s not secret that developers strive for code quality, its that inner perfectionist that drives us all, what makes us tick (…)
  • #4: Poor quality software costs the United States economy some $59 billion annually according to the National Institute of Standards and Technologies (2002). This money is lost through poor productivity and wasted resources, with the majority of the pain being felt not by the development team but by the end users.Of the estimated yearly loses, $38.3 billion (64%) of the cost is absorbed by the users of the softwareAnd of this cost, Software Bugs account for 55% of all downtime costsThe study concludes that one-third of this cost could be saved by improving the testing infrastructureWe do not want to stiffle innovation, without that we have nothing. What we have done… with VS2010 is put the tools you need RIGHT AT YOUR FINGERTIPS… it’s been done in a way that allows you to integrate these practices into your development lifecycle however you see fit.
  • #5: For the session we will focus on the following four steps to try and mitigate that risk early on in the development process.
  • #7: There are some minor enhancements, such as support for categories instead of test lists, performance improvements like using more than one core. Simplifying deployment that will result in improved performance as well. Unit Tests can now be extended with custom attributes (like privilege escalation attribute). The unit test type can be extended to provide custom coded tests (this is how coded UI is implemented)
  • #9: 1) Code Analysis 2) Test Impact Analysis (Change Product constructor)
  • #10: Just because your unit testing was successful doesn't mean your code is error free. Use the static code analysis features of VS2010 to analyze managed assemblies.
  • #14: Tailspin.Model Project -> BuildChange to Design rules -> BuildModify (error message for none generic event handlers) and save as new ruleset and modify name directly in XMLBuild
  • #17: A profiler is a tool that monitors the execution of another application. A common language runtime (CLR) profiler is a dynamic link library (DLL) that consists of functions that receive messages from, and send messages to, the CLR by using the profiling API. The profiler DLL is loaded by the CLR at run time.Traditional profiling tools focus on measuring the execution of the application. That is, they measure the time that is spent in each function or the memory usage of the application over time. The profiling API targets a broader class of diagnostic tools such as code-coverage utilities and even advanced debugging aids. These uses are all diagnostic in nature. The profiling API not only measures but also monitors the execution of an application. For this reason, the profiling API should never be used by the application itself, and the application’s execution should not depend on (or be affected by) the profiler.Profiling a CLR application requires more support than profiling conventionally compiled machine code. This is because the CLR introduces concepts such as application domains, garbage collection, managed exception handling, just-in-time (JIT) compilation of code (converting Microsoft intermediate language, or MSIL, code into native machine code), and similar features. Conventional profiling mechanisms cannot identify or provide useful information about these features. The profiling API provides this missing information efficiently, with minimal effect on the performance of the CLR and the profiled application.JIT compilation at run time provides good opportunities for profiling. The profiling API enables a profiler to change the in-memory MSIL code stream for a routine before it is JIT-compiled. In this manner, the profiler can dynamically add instrumentation code to particular routines that need deeper investigation. Although this approach is possible in conventional scenarios, it is much easier to implement for the CLR by using the profiling API.
  • #19: Run basic profiling session (Instrumentation!!)Save ReportAdd some bogus sleeping code to HomeController->Show(SKU)Run basic profiling session (Instrumentation!!)Show new hot pathShow TIP
  • #20: This is one area that has had less of a focus in terms of development activities in the past, again, due to, mostly, a lack of integrated tooling. We have a large focus on testing in VS2010.One of the big impacts is load testing. Now you stress test, not only your application but also the resources your tapping into such as database servers, web servers etc. For example, you can tell VS2010 to just keep adding virtual user load onto you application until it’s completely crippled allowing you to know exactly what needs to be done before it goes into production