Transcript
  • Feature Coding

    Part 3

    Unit and Integration Testing

    DEV_205Eric 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 satisfactionAvoid downtime and costly outagesMeet or exceed service level agreementsMaximize investment in current infrastructure

  • About Me

    Eric Shupps, MVP President, BinaryWave Email: [email protected]

    Microsoft Patterns & Practices: spg.codeplex.com CKS:DEV cksdev.codeplex.com Blog: www.sharepointcowboy.com Twitter: @eshupps Facebook: www.facebook.com/sharepointcowboy

  • Agenda

    Testing FundamentalsCode OptimizationUnit 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

    ReduceCosts

    EnsureQuality

    ImproveDynamics

    IncreaseEfficiency

  • 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 RefactoringClass

    Method Method Method Method Method Method

    Class

    Method Method

    Class

    Method Method

    Class

    Method Method

    Test Test Test Test Test Test

  • CODE ISOLATIONRefactor the core solution components for testability.

  • Unit Testing

  • Unit Testing Objectives

    CodeIsolate

    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 TESTSCreate 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 TESTSCreate and execute integration tests for core solution components.

  • Thank you for attending!

    (This slide must always be the last

    slide in your deck)


Recommended