Resettable seems to be the closest thing I can find, but it doesn't feel that good.

I have a list of three characteristics:

  1. Programmatic access to data sources
  2. Exclusive access to testing data when in use
  3. Ability to reset testing data to a known state when finished

The third one is obviously the odd one out. It could be

  1. Resettable to a previously known state

But that doesn't feel right either. Does anyone know of a nice way of saying 'Ability to reset ___ to a known state' that matches the pattern of the first two?

Or am I worrying about something that doesn't matter and the original third item is the best choice?

  • 1
    Maybe 'restorable', but probably not much better
    – Stefan
    Commented Aug 8, 2017 at 15:13
  • Ability to roll back changes to test data when finished? Commented Aug 8, 2017 at 15:26
  • 2
    "There are two hard things in computer science - cache invalidation, naming things, and off-by-one errors".- Leon Bambrick Commented Aug 8, 2017 at 15:35
  • By "ability" are you talking about permissions of a user or features of a system? Your first two cases sound like the former, but could easily be the latter. Knowing which will help me concentrate my mind. Commented Aug 8, 2017 at 17:08
  • 1
    A do-over? A mulligan? (Just kidding.) Commented Aug 10, 2017 at 1:42

2 Answers 2


From your description, it sounds like you are looking for a term that applies to the automated testing of software, using (for example) a tool such as Cucumber or Selenium, or a proprietary system developed within a large enterprise. The term state suggests a design concept based on the Finite State Machine.

A typical approach in this type of testing is to initialize the system under test to a known state, e.g. from a database or configuration files, send it a sequence of inputs, and then compare the output with the expected output that has been previously stored in a file.

When a suite of tests is run, the system is set to the same initial state before each new test. This makes it possible to develop the tests independently and to run them independently on replicas (to reduce the total time of execution).

If this matches what you are looking for, the following terms may be appropriate:

  • The system under test is designed according to a state model. This may be a domain-specific model (e.g. organized around the states of a bank account), or something more complex from Model-Driven Engineering.

  • The overall testing concept is stateless. Each test is independent, and will not be affected by the actions of any prior test.

  • The system (based on your description) can be driven to a specific state by sending it a single input message, as opposed to sending it a sequence of messages that explicitly reverse the actions of previous test messages. If there is a single target state, and this state corresponds to an initial condition, the system is resettable (your original choice). Not the sweetest-sounding term, perhaps, but it's used in practice and everyone will know what you mean.

  • If there are multiple target states, there is no widely-accepted term for what you are describing. You can either use a reasonable term of your own devising, e.g. state settable, or you can use the terminology of your testing system. In either case, your main concern is to help your reader understand what is required of them.

  • If you attain a desired target state by resetting the system under test and feeding it a specific set of inputs, these can be viewed as setting a precondition for the test itself. You could refer to the testing program as having standardized preconditions or reference settings.

In my experience, complex state models are not well received by either managers or test writers. If your system has some of the aspects described above, you might simply describe your approach as model driven, and leave it at that. The details of your test setup will speak for themselves.


The obvious answer to me seems to be revertible.

  • Welcome to ELU! Please take the tour, and add a definition with link. Thanks! Commented Aug 10, 2017 at 4:56
  • +1 This is a really good word. In particular, I could see it applying to the concept of moving back to an initial state by "inverting" the original input sequence, i.e. different from a reset but accomplishing the same thing. Thanks!
    – user205876
    Commented Aug 10, 2017 at 14:07
  • Agree all this answer needs is some explanation, context, or supporting facts that show it's right. What's perfectly obvious to you might not be obvious to future visitors trying to figure out which is the best answer.
    – MetaEd
    Commented Aug 10, 2017 at 15:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.