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: 14
(Minimum 0)
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
Introduction and Logistics
- Personal Testing Challenges
- Identify student specific testing challenges
- Establish student goals for class
- Agile Refresher
- User Story
- Backlog
- Velocity
- Iteration
- Improving Agility with Excutable Requirements
- Achieving Agile balance with acceptance testing
- Communication enhancments
- 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 intriduction
- 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 AgileDomain 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
- Lab: Implement Column User Story Test Fixtures
- 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
- Lab: Row Fixture Implementation
- Lab: Implement Row User Story Test Fixtures
- 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 Fitnesses
- 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
- Lab: Do Fixture Implementation
- Quick Learn: Diagnostic Logging
- Lab: Implement Workflow User Story Do Test Fixtures
- Refactoring To Patterns
- Recognizing Common Smells
- Comon Acceptance Test Patterns
- Lab: Look for smells in new user stories and refactor
- Variables in Fitnesse
- Other Fit Fixtures and Test Strategies
- Customizing Fitnesse
- Applying Fitnesse In Your Domain
- Explore your user stories
- Lab: Prioritize your backlog
- Assess your Testing Strategies
- Developing Acceptance Tests in your Scrums
- Lab: Develop executable requirements
- Dynamic: Based on Class Needs
Cost:
$900 per attendee.