Automated acceptance testing is a key agile practice. This clinic provides some intense hands-on experience with the FitNesse.NET automated testing environment. I will provide an overview of automated functional testing and the FitNesse.NET environment. I will guide participants, working in pairs, to develop test and production code for a bowling scoring system.
Participants should be experienced C# developers with an interest in automated functional testing. Experience with FitNesse is helpful but not mandatory. Participants should bring a laptop with a C# IDE. A setup CD for FitNesse.NET will be provided.
Session 1: (90 minutes)
(10 min) Introductions: Presenter introduces the session. Participants rate their skill level in automated testing and name the biggest challenge they are currently facing.
(5 min) Testing as a core agile practise: Motivation for automated testing and test-first. Quality, early validation, safety net, productivity, objective measurement of progress, collaboration and communication.
(5 min) The TDD and STDD Cycles: Red-green-refactor and describe-demonstrate-develop. Unit tests vs story tests vs coverage tests vs exploratory tests. Code right and right code.
(5 min) The FitNesse.NET environment part 1: The wiki, the test and suite pages, the test runners, fixture code and the system under test.
(5 min) Fixture Roadmap part 1: A brief overview of some common fixtures and what they do.
(5 min) FitNesse.NET Set-up: Participants will set up FitNesse.NET on their laptops. We’ll provide the software on CD.
(50 minutes) Hands-on: The remainder of the session will work through a set of exercises using the classic bowling game domain, with a few additional features. For each exercise, we will describe the requirement and discuss some FitNesse features that we can use to develop story tests. Participants will form working groups (pairs or whatever they wish) and work on the exercise. Presenter will circulate to provide advice to groups that are stuck. We will conclude each exercise by showing a possible solution.
(5 min) Wrap-up: Participants talk about what they’ve learned, what they’re still puzzled about, where they’d like to see tools go.
Session 2: (90 minutes)
(10 min) Introductions: Presenter re-introduces the session. New participants rate their skill level in automated testing and name the biggest challenge they are currently facing. Presenter summarizes highlights of 1st session.
(5 min) Introduction to test styles: Declarative vs procedural. Specifying behavior. Given-When-Then.
(5 min) The FitNesse.NET environment part 2: More about the wiki, the test and suite pages, the test runners, fixture code and the system under test.
(5 min) Fixture Roadmap part 2: A brief overview of some more fixtures and what they do.
(5 min) FitNesse.NET Set-up: Participants will set up FitNesse.NET on their laptops. We’ll provide the software on CD.
(5 min) Recap of exercises from session 1. The CD will provide sample solutions for session 1 so new participants can continue from there.
(50 minutes) Hands-on: The remainder of the session will work through a set of exercises using the classic bowling game domain, with a few additional features. For each exercise, we will describe the requirement and discuss some FitNesse features that we can use to develop story tests. Participants will form working groups (pairs or whatever they wish) and work on the exercise. Presenter will circulate to provide advice to groups that are stuck. We will conclude each exercise by showing a possible solution.
(5 min) Wrap-up: Participants talk about what they’ve learned, what they’re still puzzled about, where they’d like to see tools go.
Exercises will be:
Session 1
Session 2
We’ll have some additional exercises available, if time permits: