Date post: | 14-Apr-2018 |
Category: |
Documents |
Upload: | eduardo-quintanilla |
View: | 220 times |
Download: | 0 times |
of 18
7/30/2019 Module 6 the Developer's Perspective
1/18
Module 6: TheDevelopers Perspective
7/30/2019 Module 6 the Developer's Perspective
2/18
Overview
Value-up Development Practices
Improving Code Quality with VSTS
7/30/2019 Module 6 the Developer's Perspective
3/18
Lesson 1: Value-up Development Practices
Value-up Development Principles
Quality Barriers
7/30/2019 Module 6 the Developer's Perspective
4/18
Value-up Development Principles
Focus on the development of deliverables that thecustomer can evaluate
Embed quality assurance techniques throughout thelifecycle
Eliminate processes that produce poor quality code
Use tools to produce high quality code and reportlessons learned
7/30/2019 Module 6 the Developer's Perspective
5/18
Quality Barriers
Process Issues Leading to Quality Problems
Poorly communicated, misunderstood, or out-of-daterequirements
Programming errors
Lack of testing feedback
Version skew
Lack of transparency
1
3
4
5
2
7/30/2019 Module 6 the Developer's Perspective
6/18
Lesson 2: Improving Code Quality with VSTS
Using TDD to Ensure Requirements Clarity
Demonstration: Unit Testing and Code Coverage
Addressing Programming Errors with Code Analysis
Demonstration: Enforcing Code Analysis with PolicyAddressing Code Quality with Profiling
Demonstration: Code Metrics and Profiling
Addressing Version Skew with Source Control
Automating the Build
Using Build Verification Tests
Making Work Transparent
7/30/2019 Module 6 the Developer's Perspective
7/18
Using TDD to Ensure Requirements Clarity
TDD Benefits
Forces a clear understanding of therequirements
Catches mistakes earlyEncourages small increments andreuse to avoid unnecessary code
Creates code that is easier to evolveand maintain
Improves code quality
Unit testing and coverage analysis can provideimmediate feedback about the code
Frequent testing provides a measurement of variation
Developers can find bugs introduced by new or
refactored code
7/30/2019 Module 6 the Developer's Perspective
8/18
Demonstration: Unit Testing and Code Coverage
7/30/2019 Module 6 the Developer's Perspective
9/18
Addressing Programming Errors with Code Analysis
Manual and automated code inspection techniques canhelp address programming errors
VSTS has automated code review tools built-in
FxCop for managed code
PreFast for unmanaged code
Code review tools can be run as part of the build process
Check-in policies can be used to enforce automated
code analysis
7/30/2019 Module 6 the Developer's Perspective
10/18
Demonstration: Enforcing Code Analysis with Policy
7/30/2019 Module 6 the Developer's Perspective
11/18
Addressing Code Quality with Profiling
VSTS Profiler is a tool that helps find resource bottlenecks in your application
Slow code (CPU bottleneck)
Disk thrashing
Memory allocation
7/30/2019 Module 6 the Developer's Perspective
12/18
Demonstration: Code Metrics and Profiling
7/30/2019 Module 6 the Developer's Perspective
13/18
Addressing Version Skew with Source Code Control
Work Items resolved by this
check-in
Code, Security and
Performance
Reviewer NotesFiles to Check-in
Notes Describing the
Changes
I l di th D t b U d U ifi d Ch
7/30/2019 Module 6 the Developer's Perspective
14/18
Including the Database Under Unified ChangeManagement and Quality Control
VSTS manages the database like other assets
Supports offline database development
Collection of files that represent your true schema
Changes to schema normally have an immediate affect
With offline project nothing changes until you deploy thechanges
You can also run T-SQL unit tests
Your database and code is now under unified changemanagement and unified quality practices
7/30/2019 Module 6 the Developer's Perspective
15/18
Automating the Build
Version control is incomplete without an automatedbuild system
Build system needs to
Automate the compilation
Automate tracking and testing of the binaries against thesource versions
Provide as many quality checks as possible
At minimum, your build should
Create the output binariesRun your code analysis
Run your build verification tests
7/30/2019 Module 6 the Developer's Perspective
16/18
Using Build Verification Tests
BVTs are tests run as part of the automated buildBVTs determine whether a build is ready to be releasedfor testing
BVTs generally include
Any automated test that doesnt require manual setup
Majority of unit tests, plus component integration testsand scenario tests
BVTs should have high code coverage
7/30/2019 Module 6 the Developer's Perspective
17/18
Making Work Transparent
When code is checked in, you identify the tasks andscenarios that the delivered code implements
This links the work items to a changeset
This traceability
Drives reports such as Remaining Work and Velocity
Drives the build report so the whole team (notablytesters) can see what work is available
7/30/2019 Module 6 the Developer's Perspective
18/18
Module Review
Value-up development centers on delivering workingcode to customer quality
VSTS tools support activities aimed at helpingdevelopers build higher quality code
TDD forces explicit consideration of requirementsCode quality helped by static code analysis tools and
profiling
VSTS integrates version control and build automation