Requirements he wants to address
- Use case centered
- Hight level
Acceptance Testing for Plone with Funittest
- Write test first
- Guarantie the quality of your Plone sites
- Run in-browser acceptance tests: Selenium Remote Control (or Real TestBrowser).
- Extensive library of reusable scripts, verbs, scenario, and tests
Development with Funittest
- Documentation driven development
- Start with the Use Cases
- Write new use case scenarios or extensions
- Write high-level, domain specific, vocabulary for each new user action
- Functional tests reusing the scenarios
- Prepare a site for tests. Define users, etc…
- Custom presets
Data Providers (Test fixtures)
- Collection of example data for the tests (an example exists for a standard Plone site)
- Simple dictionary of dictionaries
- Manual tests are acceptable. What’s important is to test !
- Tests depend on the whole functional stack. You are testing that whole stack.
- Catch state before
- Change expected state
- Execute verb
- Compare expected state and real state
Other details about writing tests
- Scenarios, scenarios steps
- Extension Points. Extend scenarios.
- Scenarios can be used from Python code (interactively, can be useful to try scenarios/steps when coding)
- Physical Model: The low-level part. The way you attack Selenium Remote Control.
- Funittest is in the Collective
- There is sprint planned at the end of the conference
- Article on the subject by Andrea Jennitta: Brushing Up On Functional Test Effectivenes.
- Book by Alistair Cockburn: Writing Effective Use Cases.