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

The Testing & Refactoring Workshop

Duration: 3.0 days
ID: TRW301

This workshop is focused on the art of writing and using tests to produce simple, robust code. Participants will learn and practice Test-Driven Development, Storytest-Driven Development, and Test-Driven HTML. There are also exercises on Evolutionary Design and Testing Legacy Code. In the Team-Programming exercise, we even tackle a piece of real code from the participants' domain. The workshop concludes with a dialogue about how to implement these practices in your environment.

Show Condensed View

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
2 hours
30B 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
challenge
Participants will be introduced to a piece of legacy code for which there are no tests.... Read more
2 hours
31A Team-Programming
Whole teams can rapidly learn great programming skills by observing one of our experts pair-programming with a member of your team. As team members observe the programming on a projector, they may comment, ask questions or volunteer to take the place of one of the programming pairs.
standard
We will work on your system as a team, practicing test-driven development, merciless-refactoring... Read more
4 hours
7C 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.
walkthrough
We will review ten practices of evolutionary design that complement Test-Driven Development and... Read more
1 hour
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
1 hour
17B 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
demonstration
We'll demonstrate FIT (http://fit.c2.com), Ward Cunningham's excellent open-source testing tool... Read more
20 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
17C 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
challenge
Participants will be given the challenge of writing FIT tests for a sample program, using the... Read more
4 hours
38A Test-Driven HTML
Test-Driven Development (TDD) is extremely useful in designing Web-based systems that use HTML for their interface. Unit-testing tools and strategies are available for HTML, XML, XSL, JavaScript or JScript, JSPs or ASPs and so forth. Using an effective unit-testing strategy with your Web-based technologies will help you efficiently produce dependable systems.
demonstration
Participants will get a demonstration of ways in which we can unit test the HTML output of Web... Read more
1 hour
38B Test-Driven HTML
Test-Driven Development (TDD) is extremely useful in designing Web-based systems that use HTML for their interface. Unit-testing tools and strategies are available for HTML, XML, XSL, JavaScript or JScript, JSPs or ASPs and so forth. Using an effective unit-testing strategy with your Web-based technologies will help you efficiently produce dependable systems.
challenge
Participants will get their hands dirty by using TDD with a unit-testing tool (JWebUnit, HttpUnit,... Read more
2 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.
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.