Presented by Peter Thomas

Abstract:

Back in 2005, we started development of a replacement to a legacy system. A system that took 3 weeks to regression test. At that time we didn’t know anything about ATDD, BDD, Fitnesse or Executable Specifications but we started to automate and built up a suite of thousands of tests without much thought., we thought we were pretty good.

But then the problems started; the tests were always failing; the developer’s were complaining about the effort needed to refactor; no-one really knew what any particular test did. We started to think that instead of being cutting edge we had falling into a rut, a rut of too many tests, a rut of instability, a tightly coupled and poorly understood set of tests.

Through examples, stories and code this presentation will describe the approach to get these tests under control, to build a ubiquitous language for testing types and to avoid many of the pitfalls that exist along the way.

Format and length:

60 minute presentation

Intended audience and prerequisites:

Developers, testers, business analysts or anyone else interested in the benefits and issues with test automation

Objective(s) of the session:

  • To define the levels of automated testing, and each one’s purpose and drawbacks
  • On the basis of our experience, to propose a model for the ideal spread of tests across the different testing types
  • To reflect on our experience, in particular
    • More tests doesn’t necessarily mean better tests
    • Treat your tests like your code
    • How to expose the intent and purpose of tests so to enable better documentation
  • Also to discuss test implementation issues such as
    • Testing asynchronous systems
    • Long running test cycles
    • Addressing test instability

Benefits for participants and presenter(s):

  • To reflect on the evolution of the test automation approach and understand some of the pitfalls in adopting test automation
  • To gain some practical approaches to address issues in test automation
  • To learn how not to do things so hopefully others don’t make the same mistakes we did