|
ID
|
Activity
|
Flavor
|
Duration
|
| 1A |
Unit Testing Tool
Learn the basics of a unit testing tool, including how to write and organize tests, which assert methods may be called, exception
handling within tests, test naming conventions and ways to use the unit testing tool in an integrated development environment
(IDE).
|
introduction All technical participants will take part in this activity in pairs. |
30 mins |
| 2B |
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 |
interactive Participants will get their hands dirty by using TDD to extend the demonstration code in our... Read more |
45 mins |
| 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 |
| 6B |
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 |
small The short version of our Refactoring Challenge gives participants a general feel for the smells in... Read more |
2 hours |
| 16A |
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.
|
simulation The best way we know how to introduce people to Mock Objects is to have them experience a... Read more |
25 mins |
| 16B |
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.
|
demonstration In this demonstration, your workshop coach will walk you through system code and test code that was ... Read more |
45 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 |
30 mins |
| 17A |
Storytest-Driven Development
Storytest-Driven Development involves determining if features of a system work according to a customer's expectations. There
are many ways to implement Storytest-Driven Development, including using XML, Excel or simple languages. A typical challenge
is to empower customers with tools that let them define Storytests (a.k.a. Acceptance Tests) without working with programmers.
Another challenge is ... Read more |
dialogue The workshop coaches will lead a discussion about Storytest-Driven Development, sharing their... Read more |
1 hour |
| 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 |
| 19A |
Code Review
Our coaches give feedback on specific code they've been asked to study. They discuss the code with the programmers, highlight
code smells, suggest specific refactorings and review testing strategies.
|
on-site The coach(es) will meet developers face to face and analyze their code. |
4 hours |
| 18A |
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 |
in-depth An in-depth dialogue is held with the workshop coach. |
2 hours |