Working Together to Perfect the Art of Software
A Place to Learn, Certify and Teach
Home : Executable Requirements with FitNesse
Executable Requirements with FitNesse
Who Should Attend/Prerequisites
Experience with Agile Process such as Scrum. Those attending this
course include Business Analysts, Developers, and Test Specialists.
Attendees are expected to bring a laptop computer to this course.
Class Size Limit: 15
(Minimum 4)
Course Overview
The traditional view of requirements communication allows for a high
degree of ambiguity and error. In this course, we will examine the
commonality between requirements and tests and how a requirement can be
effectively communicated in the form of a test. By placing the emphasis
on the specification of requirements in the form of tests we are at
once both increasing the quality of communication among team members
and ensuring that testing is not an activity that gets tacked onto the
end of a sprint.
Participants will gain hands on experience in new communication
strategies and leave with practical experience using Fit/Fitnesse to
formalize requirements into executable tests. We will show how this
change accelerates development and reduces defects found late in
iteration cycles. Concepts learned in this class will be directly
applicable to the problem of integrating Q/A into short
iterations/sprints.
The class will explore the requirements of a fictitious project and
follow the evolution of those requirements as Fit tests. We will
examine the various Test Styles Fixtures available within Fit and
provide advice surrounding best practices for making tests clear and
easy to read. The team will also learn about the capabilities and
limitations of the wiki based Fitnesse front end to Fit.
Agenda
- Personal Testing Challenges
- Identify student specific testing challenges
- Establish student goals for class
- Agile Refresher
- User Story
- Backlog
- Velocity
- Iteration
- Improving Agility with Executable Requirements
- Achieving Agile balance with acceptance testing
- Communication enhancements
- User Story ambiguity risk mitigation
- Improving accuracy of user story information
- Rationale for acceptance tests earlier in process
- Software Requirements as Tables
- Explore commonality between requirements and tests
- Expressing software and requirements in tables
- Agile domain modeling introduction
- Point of Sales as test application throughout course
- Importance of understanding objects in a Domain
- Objects, Events Transactions
- Establishing a domain specific language in User Stories
- LAB: Point of Sales application Agile Domain Model
- Advanced Fitnesse
- Introduction
- Fitnesse Architecture Overview
- Column Fixture
- Specifying user stories in column fixtures
- Anatomy of a Column Test Table
- Lab: Building User Stories in Column Fixtures
- Implementing the Column Fixture
- Wikis and Sub-Wikis
- Row Fixture
- Specifying user stories in row fixtures
- Anatomy of a Row Test Table
- Lab: Building Set User Stories in Row Tables
- Fitnesse Management
- File Structure and Backup Plan
- Wiki page revision history
- User Access
- Credential Encryption
- Error Handling In Tests
- Setup and Tear Down
- Using Mock Objects
- Testing Date Dependent Objects with a Mock Clock
- Developer Environments and Test Schedules
- Establishing a development environment in Fitnesse
- When to run acceptance tests?
- Symbolic Links
- Do Fixture
- Specifying user stories in Do fixtures
- Anatomy of a Do Test Table
- RowEntry Fixture
- Custom Types
- Lab: Building User Story Workflows in DoTables
- Do Fixture Implementation
- Refactoring To Patterns
- Recognizing Common Smells
- Common Acceptance Test Patterns
- Lab: Look for smells in new user stories and refactor
- Variables in Fitnesse
- Other Fit Fixtures and Test Strategies
- Customizing Fitnesse
- Dynamic: Based on Class Needs
Cost:
1650 per attendee.