ABT Foundations • Module 3

Actions as First-Class Citizens

Building reusable, composable test components

Module 3 illustration

"Dear Marilyn,

I have 500 test cases and they all start with the same login steps. When login changes, I have to update all 500. There must be a better way.

— Copy-Paste Casualty"

Marilyn Responds:

You've discovered the most common anti-pattern in test automation: duplication. And like all duplication, it seems harmless at first—until it isn't.

In ABT, 'Login' is not a sequence of steps you copy everywhere. It's an Action—a first-class citizen with its own definition, its own parameters, and its own implementation.

When login changes, you update one Action. All 500 tests automatically use the new version.

The Action Hierarchy

Actions exist at multiple levels:

  • Atomic Actions — Single operations (click, type, verify)
  • Composite Actions — Combinations of atomic actions (Login, AddToCart)
  • Business Actions — Complete user journeys (CompleteCheckout, SubmitApplication)

Each level builds on the one below, creating a pyramid of reusability.

Quick Check: Module 3

Question: What makes an Action a 'first-class citizen' in ABT?

a) It runs faster than regular code

b) It has its own definition, parameters, and can be composed with other actions

c) It requires special permissions to execute

d) It can only be written by senior engineers

(Answer: b — First-class citizens can be defined, parameterized, passed around, and composed—just like functions in functional programming.)