Toffee’s creators have been automating functional tests for 15 years. We’ve learned that a narrow focus on automation overlooks the human elements of functional testing, from the testers who step in to do what automation cannot, to the quality auditors who must verify that the tests do what the programmer claims they do. In building Toffee, we set out to orchestrate functional testing across humans and across machines. Our design goals:
Toffee’s humanized, structured scripting language facilitates automation and bridges the semantic distance from requirements to test specification to implementation. If you can write manual test scripts, you can automate them with Toffee. If you can read manual test scripts, you can understand what a Toffee script is doing.
Accept its limits
How can you confirm a screen “looks right” to a human? What if your tests require you to leave the browser to use native applications, or the command line? For those corner cases that automation can’t (easily) reach, Toffee supports integrated human-assisted test steps that are audited and recorded alongside automated steps.
Isolate your data
Good functional tests don’t require complex setup of test data, and they need not be run in a specific order. Toffee’s variables and random value generators allow each test to stand on its own, so that they can run in parallel.
Show your work
Toffee takes the tedium out of coverage tracking, evidence capture, and test reporting. Generate test reports automatically – including screen shots that you take on-demand, or implicitly with every test step.