Keynote: Reimagining Automation

Let’s face it: test automation is hard. Teams across the industry continue to struggle with the same old problems again and again: flaky tests, poor coverage, and never enough time to develop automation. While many teams have reached success, many others feel left behind.

It’s time to rethink how we approach testing and automation. Instead of building automated test suites that merely repeat hard-coded presuppositions, what if we built autonomous tools that could learn our products dynamically and point out changes during development? Any time we make a change to the code, we could run these tools to find out if the actual changes in behavior meet our expectations or cause bugs

What the future of automation would look like.

Automation? Most think of test automation

The origins of testing

Meyer’s book: the art of software testing, 1979 (1970’s)

marked the separation between debugging (done by devs) and testing (done by testers)

all testing was manual, no coding skills required for testers

The advent of unit testing, 1990’s

OO programming

Kent Beck, SUnit, later with Eric Gamma, JUnit

=> unit tests are automated

unit tests mainly done by devs

Extension into black box automation, 2000’s

testers combined test frameworks with black box tools

coincided with the rise of web development

-> selenium webdriver, jmeter

A new role arose: test automation engineer

some testers feared loosing their job: that didn’t happen 💪

Continuous testing, 2010’s

tests became part of CI

automated tests became more atomic and robust

New role: SDET”s (software development engineer test 🤷)

Better testing experience, early 2020’s

tools focused on making testing easier

-> cypress, playwright

Developers started doing more testing using black box automation

What happened after 2023?

Autonomous tools

Generating tests with LLMs, mid-2020’s

ChatGPT and Copilot can generate tests and test plans.

Initially they were pretty bad, but they got better and fairly decent

Why stop at only generating the code? When bots can just run the tests? => autonomous testing

Bots learn from

  • system behaviours: the applications themselves, what is the behaviour, what could be tested
  • observability data: that is what the users are actually doing with the systems, better insights in what should be tested
  • development artifacts: all the requirements, examples, … feed that to the machine
  • human feedback: very important, there have never be a time where the human was not required

The great decoupling

of automation from assertion

coupled interaction with verification

at the start of automation assertions are hard coded into the automation

Humans need to verify and validate

The rise of replay, late 2020’s

  • dev makes a change
  • automation loads then new version
  • looks for differences and tries them -> explores and records what it finds
  • devs review the recording and marks the changes as good or bad -> still human who verified and decides

How does the tester plays into this?

often devs try to bypass

Closing the gap, 2033

Assertions become recommendation systems. They are becoming very accurate -> less human guidance and intervention is required

To this point we focussed on Test Automation

We do not only need automation, we also need collaboration

Automation is not only for testing …

Agile went back to its roots, early 2030

working software over documentation

  • Scrum is outdated and nearly dead 🤔
  • Kanban is now the most popular process

it is simple and therefore efficient

Discovery -> Formulation -> Automation

Current challenges with automation, 2033

  • biggest challenge with automation is cost, it used to be skills
  • training and tuning the tools can be tricky
  • quality is still human-oriented, machines do not understand quality

We reimagined automation for testing and collaboration

Focus has shifted from writing tests to revealing behaviour