Industrial Logic -> Catalogs -> Workshop Catalog -> The Testing & Refactoring Workshop - TRW100

The Testing & Refactoring Workshop

Duration: 1.0 days
ID: TRW100

In this workshop, participants will learn and practice Test-Driven Development, study Code Smells and low-level refactorings, implement Mock Objects, experience Evolutionary Design and discuss how to Unit Test legacy code. The workshop concludes with a dialogue about how to implement these practices in your environment.

Show Condensed View

ID Activity Flavor Duration
2C Test-Driven Development
Test-Driven Development (TDD) is a practice for efficiently evolving useful code. While its name implies that it's mostly about testing, test-driven development is primarily about design: it keeps programmers focused on exactly what they need to build and helps them avoid over-engineering. Using this technique, programmers write a failing test, write code to pass the test, refactor the code and... Read more
challenge
In this challenge, participants will be given the task of writing a program to solve a specific... Read more
90 mins
4A Code Smells
Code smells identify common design problems in object-oriented code. This interactive lecture provides a good overview of code smells defined by Martin Fowler & Kent Beck in their book "Refactoring: Improving the Design of Existing Code." In addition, you'll learn about some new smells that have been categorized by Joshua Kerievsky and his colleagues.
introduction
A workshop coach will lead this technical lecture.
45 mins
6A The Refactoring Challenge
The best way to improve your refactoring skills is to practice cleaning up poorly designed code. And we've got just the thing: code we custom-designed to reek of over 90% of the code smells identified in the refactoring literature. This poorly designed code functions correctly, which you can verify by running a full suite of tests against it. Your challenge is to identify the smells in this code,... Read more
micro
The micro version of the Refactoring Challenge requires that participants obtain and study our... Read more
30 mins
16C Mock Objects
When writing test and production code, it's useful to know when to introduce Mock Objects. This activity will help you understand what Mock Objects are, how they function at runtime, common implementation variations and usage patterns.
challenge
To fully understand mock objects, you need to get your hands dirty. In this challenge, you'll be... Read more
90 mins
7A Evolutionary Design
How does nature evolve organisms and what does that have to do with software development? If you study nature's approach to engineering, you often find that highly sophisticated organisms evolve from simple beginnings. For example, during the earliest growth stages, internal organs are basic but functional and will mature over time.
challenge
After reviewing a description of a sophisticated software system, participants must decide what... Read more
20 mins
5A Refactoring War
What's the fastest way to learn Martin Fowler's classic catalog of 74 foundational refactorings? It's called "Refactoring War," an educational game we invented to help groups rapidly learn a large number of refactorings. The game is played in teams and involves viewing refactoring cards, comparing the usefulness of the cards and deciding on which card is most useful. The team with the most... Read more
standard
A workshop coach will lead this activity.
90 mins
18B Testing & Refactoring Adoption
The workshop coaches engage participants in a dialogue on adopting Testing & Refactoring in their workplace, including the following questions: What technical practices will be most difficult to accomplish at our company? How will we test or refactor specific code? Should we test or refactor our legacy code? What is the best way to transition to these new practices? How will our new practices... Read more
brief
A brief dialogue is held with the workshop coach.
30 mins
30A Unit Testing Legacy Code
To refactor legacy code, you need good unit tests. To write good unit tests, you need to refactor your legacy code. How do you get out of such a mess? First, you isolate what it is you would like to unit test and refactor. Next, you use whatever language is simplest to produce coarse-grained tests for that area of code. Once you've written enough of the coarse-grained tests, you'll be able to... Read more
standard
We'll begin by telling some war stories of how we've unit tested legacy code (for example, C++ COM... Read more
1 hour

 
Industrial Logic, Inc.

Catalogs
· Workshop Catalog
· Experience Catalog
· Activity Catalog

Workshops
· The Extreme Programming
Workshop
· The Testing & Refactoring
Workshop
· The Design Patterns
Workshop

         			Send mail to webmaster[at]industriallogic.com with questions or comments about this web site.
Copyright © 1995-2006 Industrial Logic, Inc. All Rights Reserved.