Anthony Borton | ALM Consultant, Enhance ALM

  • View

  • Download

Embed Size (px)


06 | Develop Customer Value with High Quality. Anthony Borton | ALM Consultant, Enhance ALM Steven Borg | Co-founder & Strategist, Northwest Cadence. Module Overview. Define code quality indicators Incorporate unit testing Develop code Validate quality Customize a team project. - PowerPoint PPT Presentation

Text of Anthony Borton | ALM Consultant, Enhance ALM

Develop Customer Value with High Quality

06 | Develop Customer Value with High QualityAnthony Borton | ALM Consultant, Enhance ALMSteven Borg | Co-founder & Strategist, Northwest Cadence1Define code quality indicatorsIncorporate unit testingDevelop codeValidate qualityCustomize a team projectModule Overview2Define code quality indicatorsClick to edit Master subtitle styleMicrosoft Virtual AcademyWhat the Study Guide saysDefine code quality indicatorsperforming code review, including security and performance analysisanalyzing code for common defectscalculating code coverageperforming architecture validation

Code reviewsFull workflow backed Code review experienceSend requests to one or more team membersGreat new Diff experienceInline modeSide-by-Side modeLine highlighting including sub-line highlightingFull Intellisense within Diff ToolAccept or decline code review requests from othersRequesting a code review

Accepting and responding

Code reviewsDEMOMicrosoft Virtual AcademyIncorporate unit testingClick to edit Master subtitle styleMicrosoft Virtual AcademyWhat the Study Guide saysIncorporate unit testingestablishing unit test standardsdeveloping a strategy for adding unit tests to existing applicationsselecting the unit test typeestablishing the code coverage targetUnit Testing ArchitectureVisual Studio Unit Test ExplorerCommand Line RunnerTeamBuild Unit Test ActivityVisual Studio Unit Test PlatformMS-Test ManagedMS-Test NativeNUnitxUnit.netQUnitMORE!

Developer Focused Unit Test ExperienceRed-Green BarMost important tests shown firstTimingsShows tests from any frameworkSearchRun DetailsCode coverage in VS2012Analyze your code coverage with a single clickAnalyze for selected tests to help find how specific tests are covering your systemSupports native code (via the MS-Test Native framework)Works with third party managed & native frameworks

Code Clone AnalysisNew feature in Visual Studio 2012Looks for semantically similar code using a heuristic search techniqueMore than just simply searching for exact matchesUnit TestingDEMOMicrosoft Virtual AcademyDevelop codeClick to edit Master subtitle styleMicrosoft Virtual AcademyWhat the Study Guide saysDevelop codedeveloping maintainable codedefining coding standardsdefining application architecturedefining configuration management process and tooling (source control tree, branching strategy, solution structure, source control/check-in policy)Branching GuidanceALM Rangers Guidance Document

Branching, solution structure and check-in policiesDEMOMicrosoft Virtual AcademyValidate qualityClick to edit Master subtitle styleMicrosoft Virtual AcademyWhat the Study Guide saysValidate qualityorganizing test artifacts such as test cases, suites, plans, and requirementsdefining test strategymanaging test executionidentifying test types and associated toolsidentifying and configuring environmentsAnalyzing test runs

Test PlansTest plans allow you to group your test suites, test cases and configurations into a convenient groupTest ConfigurationsVista and IE8XP and IE7Win2K8 and IE8XP and IE8Test SuitesTESTCASESTESTCASESTESTCASESTEST SUITE ATEST SUITE BTEST SUITE CTest PlanTest SuitesTest suites are groups of related test casesThere are three types of Test SuitesRequirements based test suiteStatic Test SuiteQuery-based Test Suite23Understanding each test type in Visual StudioIn this section well look at each of the following type typesUnit testsManual testsCoded UI testsOrdered testsGeneric testsWeb performance testsLoad tests

Unit testsWritten by programmers for use by programmersCan be run manually or automatically, usually as part of a build process. (Eg. Continuous Integration)Become a form of code documentation by detailing the behaviour of application logicManual testsAre lists of steps to be manually performed by a testerManual tests are created as Test Case work items in Team Foundation ServerContain expected results that a manual tester must choose to pass or failManual tests are primarily worked on using Microsoft Test Manager (MTM)Coded UI testsAutomated tests of the user interface (UI) are known as coded UI tests.Provide functional testing of the UI and validation of UI controls. You can create coded UI tests to determine that the UI is functioning correctly after code changes. Can be created by recording your actions or from an action recording on a manual testOrdered testsAn ordered test contains other tests that are meant to be run in a specified order. Each test is self-contained and independent. Environment state is not retained between each test that is run. Do not use an ordered test in which any of the tests have dependencies on the outcome of previous tests in the ordered test.

Generic testsGeneric tests call external programs and tests. Use a generic test to wrap an existing test, program, or third-party tool that behaves as follows:It can be run from a command line.It returns a value of Pass or Fail.

Load testingUsed to ensure your web application performs as expected under a range of user loads.Can be used for smoke, load and stress testing.Visual Studio monitors the system under test and can provide an enormous amount of data.Understanding Performance Monitor counters is required to really interpret the test results .Web Performance TestingRepeatable tests that drive a web application using the HTTP layer.Recorded using a web browser but executed using network classes.You can analyse the HTTP response.Primarily used as the building blocks for Load Tests.Should not be confused with Coded UI Tests.Microsoft Test ManagerThe Microsoft Test Manager (MTM) comprises two Activity Centers;Testing CenterWork with manual test casesLab CenterAllows you to work with physical or virtual lab environmentsSwitch between the two parts using the Activity Center drop down32Organizing test artefacts in Microsoft Test ManagerDEMOMicrosoft Virtual AcademyCustomize a team projectClick to edit Master subtitle styleMicrosoft Virtual AcademyWhat the Study Guide saysCustomize a team projectcustomizing a Work Itemcustomizing Work Item Queriescustomizing Team Portalidentifying areas and iterations managing roles and associated permissions

What is a Process Template?The template TFS uses when creating new Team ProjectsDefines key aspects of a team project such as work item types, queries and reportsYou can choose a process template during the project creation wizardWhile some aspects of the process can be changed after a project has been created, you cant simply change from one process template to another after the project has been created

36Template ArchitectureProcess Template Composition

New Team Project Wizardused by project leads to create a new team projectXML Process definition filesa set of tasks that must run to correctly configure a new team project for the process. BuildClassificationsGroup and PermissionsLabReports

Test ManagementVersion ControlWindows SharePoint ServicesWorkItem Tracking

Available templatesThere are three out-of-the-box templates (at RTM)Microsoft Visual Studio Scrum 2.0MSF for Agile Software Development 6.0MSF for CMMI Process Improvement 6.0While the Scrum and Agile templates are similar, the CMMI template is based on a different MSF process with a different philosophical approach to software development.Tips before you beginProcess Template customisation should be planned and well considered before startingAlways test templates on non-production TFS server instances BEFORE uploading to a production serverAvoid changes for the sake of changeManage template files in the same way you would work with .NET source code.Store in TFS Source repositoryAdopt branching/labelling practises to track versions

39The customisation processDownload the default process template that you are either currently using or that most closely matches what you wantRename the template (Important)Make a few small changes at a timeVerify your changes as you goUpload to a non-production server to testCreate a new team project using your templateVerify the changes you have made are correctDownloading a template

ProcessTemplate.xmlStep 1: Change the template nameStep 2: Change the template description

Step 3: Change the GUID and version numbersGetting started with editing process templatesDEMOMicrosoft Virtual AcademyWhile you do not generally need to know the specifics of how to use every quality tool, make sure you know; what they arewhat value they offer what problems/issues they can solveYou dont need to know everything about template customization but have a good general knowledge

EXAM BEST BETS2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics 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.