Stateful URLs: No more Steps to Reproduce

Stateful URLs: No more Steps to Reproduce

what is a Stateful URL:
- a computer program is a state machine
- a state can be stored as a resource
- a URL is used to identify the state

Stateful URLs instead of Steps to Reproduce:
- a defect in a program is a sequence of states, ending in some invalid state
- if a program can produce a URL for its every valid state
then:
a defect can be reproduced simply using a sequence of URLs.
The final invalid state might not be storable, and therefore not representable as a URL.
However if the previous state can be represented, then the invalid state will follow.

problems:
- difficult to implement on a legacy system
- how would this work with distributed systems?  should ALL distributed systems be mocked out ?
- how long does the sequence of states need to be, to reproduce the defect?
- some defects are not representable (e.g. a crash)

Stateful URLs and Test URLs
Statefull URLs are still useful as Test URLs.
A Test URL is a URL with parameters, to direct to a test (mock) data source, so that for a request Req_A there is always a consistent matching response Rsp_A. This enables automated testing, since a Test URL points to a mock resource, that is simpler and easier to control predictably that a concrete resource

Concrete resources are difficult to automatically test, since they are highly configurable and are possibly distributed systems.

Comments