Вы находитесь на странице: 1из 22

Feature Coding

Part 3
Unit and Integration Testing
DEV_205
Eric Shupps
Sponsored by:
Visit us on the web at www.binarywave.com
Real-time application monitoring, event
management, and operational health
metrics for Microsoft SharePoint
Reduce troubleshooting time by up to 30%
Increase efficiency and improve user satisfaction
Avoid downtime and costly outages
Meet or exceed service level agreements
Maximize investment in current infrastructure
About Me
Eric Shupps, MVP
President, BinaryWave
Email: eshupps@binarywave.com
Microsoft Patterns & Practices: spg.codeplex.com
CKS:DEV cksdev.codeplex.com
Blog: www.sharepointcowboy.com
Twitter: @eshupps
Facebook: www.facebook.com/sharepointcowboy
Agenda

Testing Fundamentals

Code Optimization

Unit Testing

Integration Testing
Testing Fundamentals
Testing Objectives
Facilitate change
Simplify integration
Increase modularity
Faster changes
Repeatable processes
Increased confidence
Eliminate defects
Validate functionality
Reduce complexity
Less rework
Shorter cycles
Faster delivery times
Fewer support
requests
Reduce
Costs
Ensure
Quality
Improve
Dynamics
Increase
Efficiency
Testing Methodologies
Any methodology is
better than no
methodology
Select a methodology
that supports the team
dynamic and satisfies
the testing objectives
Code for the
customer/end user, not
the methodology
Focus on modularity
and sustainability
Testing Lifecycle
Unit Integration Regression
Code Optimization
Code Isolation and Refactoring
Class
Method Method Method Method Method Method
Class
Method Method
Class
Method Method
Class
Method Method
Test Test Test Test Test Test
CODE ISOLATION
Refactor the core solution components for testability.
Unit Testing
Unit Testing Objectives
Code
Isolate
Validate
Integrate
Refactor
Maintain
Unit Testing Principles
Separate interface from
implementation
Fail first in order to
succeed
Tests do not drive
functionality - they verify
functionality
Features define tests
and tests define methods
Tests should exercise all
probable execution paths
Unit Testing Methodologies
Separate interface from
implementation
Fail first in order to
succeed
Tests do not drive
functionality - they verify
functionality
Features define tests
and tests define methods
Tests should exercise all
probable execution paths
UNIT TESTS
Create and execute unit tests for isolated code.
IntegrationTesting
Integration Testing Objectives
Test code
execution against
target
system/dependenci
es
Verify methods as
they will be used in
released code
Validate/invalidate
unit test results
Exercise all points
of interoperability
Identify
vulnerabilities in
execution chain
Integration Testing Principles
Tests should exercise
actual dependencies
no mocks or stubs
Tests should not be
authored or driven by
developer
Tests should cover all
application tiers (top-
down, bottom-up, or
both)
Manual testing is
acceptable (and often
preferred)
Integration Testing Methodologies
Inverse Isolation
Reusing unit tests by
replacing mock or stub
objects with actual
implementations
Black Box
Open-ended, interface-
driven tests that explore
available functionality and
are not driven by specific
feature requirements
White Box
Predefined set of test
routines that verify specific
functional requirements
INTEGRATION TESTS
Create and execute integration tests for core solution components.
Thank you for attending!
(This slide must always be the last
slide in your deck)

Вам также может понравиться