Seminar Test Driven Development (TDD), and Refactoring Legacy Code Using C# Seminar

Presented by Hands-On Technology Transfer

Hands On Technology Transfer Computer Training

Bring this seminar on-site to your facility for groups of 10 or more.

This course provides students with hands on experience learning Test Driven Development (TDD) using NUnit and Microsofts Visual Studio. Students will build unit tests using mocks, fakes, stubs and drivers, and address issues working with databases and other systems.

Course Description


This course provides students with hands on experience learning Test Driven Development (TDD) using NUnit and Microsoft's Visual Studio. Students will build unit tests using mocks, fakes, stubs and drivers, and address issues working with databases and other systems. Student will create tests and code that will be more likely to meet and exceed requirements. Code that receives test coverage will not break existing systems, because tests are passed before code is checked in.

Students will spend time working with the issue involved in refactoring legacy code, or cutting into a living, breathing, system, safely. Students will work on looking for, or creating seams to more safely improve code or add features, and work on identifying code smells that need attention in a productive system.

Finally, students will explore dependency issues as well as techniques to better understand and improve complex systems.

Students will also examine TDD and refactoring legacy code in other languages like Java to gain a broader view of options and issues working in a multi-language shop. Comprehensive labs using C# provide facilitated hands on practice crucial to developing competence and confidence with the new skills being learned.

Course Prerequisites: C# programming experience and an understanding of object-oriented design principles.

Why Test? Think Twice, Write
Production Code Once
  • Safety Net of Automated Testing
  • Agile Development Concepts
  • Fewer Bugs, Less Stress
  • Smoother Production Rollouts
  • Write with Tests, as Fast or Faster
  • Make Changes More Safely
  • “Don’t Break the System”
Unit Testing
  • NUnit and Visual Studio
  • Start off Simple and Add More Tests
  • Making Tests Easy to Run
  • Red, Green Refactor
  • Assertion Methods
  • NUnit Cleanup Methods
  • Boundary Testing
  • Know Unit Test Limitations
Mocks, Fakes, Stubs and Drivers
  • TDD Development Patterns
  • Naming Conventions for Better Code
  • Mock Objects
  • Fakes
  • Stubs
  • Test Doubles
  • Self-Shunt Pattern
Database Unit Testing
  • Database Mocks and ADO.NET
  • Writing Database Tests
  • Setting Up Database Tests
  • Tearing Down Database Tests
  • Black Box Tests
  • White Box Testing
  • Database Sandboxes for Testing
  • ADO.NET Entity Framework Testing Issues
System, Regression and Acceptance Testing
  • Statistical Sampling
  • Usability Testing
  • Test Protocols
  • Regression Testing
  • Acceptance Testing
Patterns and Anti-Patterns in TDD
  • Factory Methods
  • Web GUI Testing
  • Coding to Interface References
  • Checking Parameters for Validity Test
  • Open/Closed Principle, Open to Extension, Closed to Change
  • Break Out Method/Object
  • Extract and Override Call
  • Extract and Override Factory Method
Continuous Integration Servers/Automated Testing
  • Early Warning of Conflicts
  • Metrics and Tools
  • Checking into Repository
    • Team Foundation Server (TFS)
    • Subversion
  • Continuous Integration Servers
    • CruiseControl.NET
    • Hudson
  • Automate the Build/Deployment
Risks Changing Legacy/Production Systems
  • Refactoring
  • Coupling and Cohesion Issues
  • Taking Small Tested Steps
  • Anti-Pattern: Big Bang, Boom
Refactoring
  • Refactoring Existing Code
  • Restructuring
  • Improving Clarity and Maintainability
  • Fixing Broken Code
  • Breaking Code into Logical Pieces
  • Value of Testing
  • Pull Up – Push Down – Inheritance
Seam Model: Finding or Creating a Seam for Changes
  • Safely Cutting into a Living System
  • Sprout Method
  • Sprout Class
  • Wrap Class
  • Building Seems for Expansion and Testing
Code Coverage
  • White Box vs Black Box Testing
  • Code Coverage Increasing Over Time
  • Goal 80% or More Test Coverage
  • Statement Coverage
  • Condition Coverage
  • Path Coverage
  • Test Harnesses
  • Unit-Testing Harnesses
Code Smells
  • Recognizing Code Smells
    • Long Method
    • Large Class
    • Duplicate Code
    • Inappropriate Intimacy
    • Feature Envy
    • Excessive Use of Literals, Named Constants or Enums
  • Testing Code Smells
  • Fixing Smelly Code
Dependency Breaking
  • Testing Web Services
  • Making Defensive Copies
  • Using Enums Instead of Constants
  • Dealing with Hidden Dependencies
  • Design and Pinch Point Issues
Large Legacy Systems
  • Notes and Sketching
  • Listing Markup
  • Monster Methods and How to Refactor
  • Preserving Signatures
  • Creating and Using Interfaces

 

More Seminar Information

Hands-On Technology Transfer
Hands On Technology Transfer Computer Training

Summary

This course provides students with hands on experience learning Test Driven Development (TDD) using NUnit and Microsofts Visual Studio. Students will build unit tests using mocks, fakes, stubs and drivers, and address issues working with databases and other systems.

Delivery Method

Seminar Seminar

Also Available As

On-Site Training On-Site Training

Who Should Attend


 
Search similar training
Email this page
Print this document
 

Dates and Locations

Schaumburg, IL
3/2/2020 - 3/5/2020
Tuition: $2295

Chicago, IL
3/2/2020 - 3/5/2020
Tuition: $2295

Des Moines, IA
3/2/2020 - 3/5/2020
Tuition: $2295

Cedar Rapids, IA
3/2/2020 - 3/5/2020
Tuition: $2295

Springfield, IL
3/2/2020 - 3/5/2020
Tuition: $2295

see all dates/locations

 

Frequently Asked
Questions

Payment Options
Bill Me/Invoice
Credit Card

Register
Online
Fax Form

Availability
Select a date from the list at the bottom of the page for specific information about that class.

Other Information
Seminar

All Date/Location Information

Alabama (Find training in Alabama)
4/6/2020-4/9/2020 in Huntsville, AL         Find a seminar in Huntsville AL

Arkansas (Find training in Arkansas)
3/30/2020-4/2/2020 in Little Rock, AR         Find a seminar in Little Rock AR

Arizona (Find training in Arizona)
3/23/2020-3/26/2020 in Phoenix, AZ         Find a seminar in Phoenix AZ
5/18/2020-5/21/2020 in Phoenix, AZ         Find a seminar in Phoenix AZ
3/23/2020-3/26/2020 in Tucson, AZ         Find a seminar in Tucson AZ
5/18/2020-5/21/2020 in Tucson, AZ         Find a seminar in Tucson AZ

California (Find training in California)
3/16/2020-3/19/2020 in Bakersfield, CA         Find a seminar in Bakersfield CA
5/18/2020-5/21/2020 in Bakersfield, CA         Find a seminar in Bakersfield CA
3/16/2020-3/19/2020 in Fresno, CA         Find a seminar in Fresno CA
5/18/2020-5/21/2020 in Fresno, CA         Find a seminar in Fresno CA
3/23/2020-3/26/2020 in Irvine, CA         Find a seminar in Irvine CA
5/18/2020-5/21/2020 in Irvine, CA         Find a seminar in Irvine CA
3/23/2020-3/26/2020 in Los Angeles, CA         Find a seminar in Los Angeles CA
5/18/2020-5/21/2020 in Los Angeles, CA         Find a seminar in Los Angeles CA
3/16/2020-3/19/2020 in Modesto, CA         Find a seminar in Modesto CA
5/18/2020-5/21/2020 in Modesto, CA         Find a seminar in Modesto CA
3/16/2020-3/19/2020 in Oakland, CA         Find a seminar in Oakland CA
5/18/2020-5/21/2020 in Oakland, CA         Find a seminar in Oakland CA
3/23/2020-3/26/2020 in Riverside, CA         Find a seminar in Riverside CA
5/18/2020-5/21/2020 in Riverside, CA         Find a seminar in Riverside CA
3/16/2020-3/19/2020 in Sacramento, CA         Find a seminar in Sacramento CA
5/18/2020-5/21/2020 in Sacramento, CA         Find a seminar in Sacramento CA
3/23/2020-3/26/2020 in San Bernardino, CA         Find a seminar in San Bernardino CA
5/18/2020-5/21/2020 in San Bernardino, CA         Find a seminar in San Bernardino CA
3/23/2020-3/26/2020 in San Diego, CA         Find a seminar in San Diego CA
5/18/2020-5/21/2020 in San Diego, CA         Find a seminar in San Diego CA
3/16/2020-3/19/2020 in San Francisco, CA         Find a seminar in San Francisco CA
5/18/2020-5/21/2020 in San Francisco, CA         Find a seminar in San Francisco CA
3/16/2020-3/19/2020 in San Jose, CA         Find a seminar in San Jose CA
5/18/2020-5/21/2020 in San Jose, CA         Find a seminar in San Jose CA
3/23/2020-3/26/2020 in Santa Clarita, CA         Find a seminar in Santa Clarita CA
5/18/2020-5/21/2020 in Santa Clarita, CA         Find a seminar in Santa Clarita CA
3/23/2020-3/26/2020 in Santa Monica, CA         Find a seminar in Santa Monica CA
5/18/2020-5/21/2020 in Santa Monica, CA         Find a seminar in Santa Monica CA
3/23/2020-3/26/2020 in Temecula, CA         Find a seminar in Temecula CA
5/18/2020-5/21/2020 in Temecula, CA         Find a seminar in Temecula CA

Colorado (Find training in Colorado)
3/9/2020-3/12/2020 in Denver, CO         Find a seminar in Denver CO
5/11/2020-5/14/2020 in Denver, CO         Find a seminar in Denver CO

Washington DC (Find training in Washington DC)
4/13/2020-4/16/2020 in Washington, DC         Find a seminar in Washington DC

Florida (Find training in Florida)
4/6/2020-4/9/2020 in Ft Lauderdale, FL         Find a seminar in Ft Lauderdale FL
4/6/2020-4/9/2020 in Jacksonville, FL         Find a seminar in Jacksonville FL
4/6/2020-4/9/2020 in Miami, FL         Find a seminar in Miami FL
4/6/2020-4/9/2020 in Orlando, FL         Find a seminar in Orlando FL
4/6/2020-4/9/2020 in Pensacola, FL         Find a seminar in Pensacola FL
4/6/2020-4/9/2020 in Sarasota, FL         Find a seminar in Sarasota FL
4/6/2020-4/9/2020 in Tampa, FL         Find a seminar in Tampa FL
4/6/2020-4/9/2020 in West Palm Beach, FL         Find a seminar in West Palm Beach FL

Georgia (Find training in Georgia)
4/6/2020-4/9/2020 in Atlanta, GA         Find a seminar in Atlanta GA
4/6/2020-4/9/2020 in Savannah, GA         Find a seminar in Savannah GA

Iowa (Find training in Iowa)
3/2/2020-3/5/2020 in Cedar Rapids, IA         Find a seminar in Cedar Rapids IA
5/4/2020-5/7/2020 in Cedar Rapids, IA         Find a seminar in Cedar Rapids IA
3/2/2020-3/5/2020 in Des Moines, IA         Find a seminar in Des Moines IA
5/4/2020-5/7/2020 in Des Moines, IA         Find a seminar in Des Moines IA

Idaho (Find training in Idaho)
3/9/2020-3/12/2020 in Boise, ID         Find a seminar in Boise ID
5/11/2020-5/14/2020 in Boise, ID         Find a seminar in Boise ID

Illinois (Find training in Illinois)
3/2/2020-3/5/2020 in Chicago, IL         Find a seminar in Chicago IL
5/4/2020-5/7/2020 in Chicago, IL         Find a seminar in Chicago IL
3/2/2020-3/5/2020 in Schaumburg, IL         Find a seminar in Schaumburg IL
5/4/2020-5/7/2020 in Schaumburg, IL         Find a seminar in Schaumburg IL
3/2/2020-3/5/2020 in Springfield, IL         Find a seminar in Springfield IL
5/4/2020-5/7/2020 in Springfield, IL         Find a seminar in Springfield IL

Indiana (Find training in Indiana)
3/2/2020-3/5/2020 in Indianapolis, IN         Find a seminar in Indianapolis IN
5/4/2020-5/7/2020 in Indianapolis, IN         Find a seminar in Indianapolis IN

Kansas (Find training in Kansas)
3/30/2020-4/2/2020 in Wichita, KS         Find a seminar in Wichita KS

Kentucky (Find training in Kentucky)
4/27/2020-4/30/2020 in Louisville, KY         Find a seminar in Louisville KY

Louisiana (Find training in Louisiana)
3/30/2020-4/2/2020 in Shreveport, LA         Find a seminar in Shreveport LA

Maryland (Find training in Maryland)
4/13/2020-4/16/2020 in Baltimore, MD         Find a seminar in Baltimore MD
4/13/2020-4/16/2020 in Columbia, MD         Find a seminar in Columbia MD

Michigan (Find training in Michigan)
3/2/2020-3/5/2020 in Detroit, MI         Find a seminar in Detroit MI
5/4/2020-5/7/2020 in Detroit, MI         Find a seminar in Detroit MI
3/2/2020-3/5/2020 in Lansing, MI         Find a seminar in Lansing MI
5/4/2020-5/7/2020 in Lansing, MI         Find a seminar in Lansing MI

Minnesota (Find training in Minnesota)
3/2/2020-3/5/2020 in Minneapolis, MN         Find a seminar in Minneapolis MN
5/4/2020-5/7/2020 in Minneapolis, MN         Find a seminar in Minneapolis MN

Missouri (Find training in Missouri)
3/2/2020-3/5/2020 in Kansas City, MO         Find a seminar in Kansas City MO
5/4/2020-5/7/2020 in Kansas City, MO         Find a seminar in Kansas City MO
3/2/2020-3/5/2020 in Springfield, MO         Find a seminar in Springfield MO
5/4/2020-5/7/2020 in Springfield, MO         Find a seminar in Springfield MO
3/2/2020-3/5/2020 in St Charles, MO         Find a seminar in St Charles MO
5/4/2020-5/7/2020 in St Charles, MO         Find a seminar in St Charles MO

North Carolina (Find training in North Carolina)
4/13/2020-4/16/2020 in Charlotte, NC         Find a seminar in Charlotte NC
4/13/2020-4/16/2020 in Raleigh-Durham, NC         Find a seminar in Raleigh-Durham NC
4/13/2020-4/16/2020 in Winston-Salem, NC         Find a seminar in Winston-Salem NC

Nebraska (Find training in Nebraska)
3/2/2020-3/5/2020 in Omaha, NE         Find a seminar in Omaha NE
5/4/2020-5/7/2020 in Omaha, NE         Find a seminar in Omaha NE

New Jersey (Find training in New Jersey)
4/13/2020-4/16/2020 in Jersey City, NJ         Find a seminar in Jersey City NJ
4/13/2020-4/16/2020 in Newark, NJ         Find a seminar in Newark NJ
4/13/2020-4/16/2020 in Princeton, NJ         Find a seminar in Princeton NJ

New Mexico (Find training in New Mexico)
3/23/2020-3/26/2020 in Albuquerque, NM         Find a seminar in Albuquerque NM
5/18/2020-5/21/2020 in Albuquerque, NM         Find a seminar in Albuquerque NM
3/23/2020-3/26/2020 in Las Cruces, NM         Find a seminar in Las Cruces NM
5/18/2020-5/21/2020 in Las Cruces, NM         Find a seminar in Las Cruces NM

Nevada (Find training in Nevada)
3/23/2020-3/26/2020 in Las Vegas, NV         Find a seminar in Las Vegas NV
5/18/2020-5/21/2020 in Las Vegas, NV         Find a seminar in Las Vegas NV

New York (Find training in New York)
4/27/2020-4/30/2020 in Binghamton, NY         Find a seminar in Binghamton NY
4/27/2020-4/30/2020 in Buffalo, NY         Find a seminar in Buffalo NY
4/27/2020-4/30/2020 in Ithaca, NY         Find a seminar in Ithaca NY
4/13/2020-4/16/2020 in Manhattan, NY         Find a seminar in Manhattan NY
4/27/2020-4/30/2020 in Rochester, NY         Find a seminar in Rochester NY
4/27/2020-4/30/2020 in Syracuse, NY         Find a seminar in Syracuse NY

Ohio (Find training in Ohio)
4/27/2020-4/30/2020 in Cincinnati, OH         Find a seminar in Cincinnati OH
4/27/2020-4/30/2020 in Cleveland, OH         Find a seminar in Cleveland OH
4/27/2020-4/30/2020 in Columbus, OH         Find a seminar in Columbus OH
4/27/2020-4/30/2020 in Dayton, OH         Find a seminar in Dayton OH

Oklahoma (Find training in Oklahoma)
3/30/2020-4/2/2020 in Oklahoma City, OK         Find a seminar in Oklahoma City OK
3/30/2020-4/2/2020 in Tulsa, OK         Find a seminar in Tulsa OK

Oregon (Find training in Oregon)
3/9/2020-3/12/2020 in Portland, OR         Find a seminar in Portland OR
5/11/2020-5/14/2020 in Portland, OR         Find a seminar in Portland OR

Pennsylvania (Find training in Pennsylvania)
4/13/2020-4/16/2020 in Harrisburg, PA         Find a seminar in Harrisburg PA
4/13/2020-4/16/2020 in Philadelphia, PA         Find a seminar in Philadelphia PA
4/27/2020-4/30/2020 in Pittsburgh, PA         Find a seminar in Pittsburgh PA

South Carolina (Find training in South Carolina)
4/6/2020-4/9/2020 in Charleston, SC         Find a seminar in Charleston SC

Tennessee (Find training in Tennessee)
4/27/2020-4/30/2020 in Memphis, TN         Find a seminar in Memphis TN
4/27/2020-4/30/2020 in Nashville, TN         Find a seminar in Nashville TN

Texas (Find training in Texas)
3/30/2020-4/2/2020 in Austin, TX         Find a seminar in Austin TX
3/30/2020-4/2/2020 in Corpus Christi, TX         Find a seminar in Corpus Christi TX
3/30/2020-4/2/2020 in Dallas, TX         Find a seminar in Dallas TX
3/23/2020-3/26/2020 in El Paso, TX         Find a seminar in El Paso TX
5/18/2020-5/21/2020 in El Paso, TX         Find a seminar in El Paso TX
3/30/2020-4/2/2020 in Ft Worth, TX         Find a seminar in Ft Worth TX
3/30/2020-4/2/2020 in Houston, TX         Find a seminar in Houston TX
3/30/2020-4/2/2020 in San Antonio, TX         Find a seminar in San Antonio TX

Utah (Find training in Utah)
3/9/2020-3/12/2020 in Salt Lake City, UT         Find a seminar in Salt Lake City UT
5/11/2020-5/14/2020 in Salt Lake City, UT         Find a seminar in Salt Lake City UT

Virginia (Find training in Virginia)
4/13/2020-4/16/2020 in Alexandria, VA         Find a seminar in Alexandria VA
4/13/2020-4/16/2020 in Fairfax, VA         Find a seminar in Fairfax VA
4/13/2020-4/16/2020 in Norfolk, VA         Find a seminar in Norfolk VA
4/13/2020-4/16/2020 in Richmond, VA         Find a seminar in Richmond VA
4/13/2020-4/16/2020 in Williamsburg, VA         Find a seminar in Williamsburg VA

Washington (Find training in Washington)
3/9/2020-3/12/2020 in Seattle, WA         Find a seminar in Seattle WA
5/11/2020-5/14/2020 in Seattle, WA         Find a seminar in Seattle WA
3/9/2020-3/12/2020 in Spokane, WA         Find a seminar in Spokane WA
5/11/2020-5/14/2020 in Spokane, WA         Find a seminar in Spokane WA

Wisconsin (Find training in Wisconsin)
3/2/2020-3/5/2020 in Milwaukee, WI         Find a seminar in Milwaukee WI
5/4/2020-5/7/2020 in Milwaukee, WI         Find a seminar in Milwaukee WI