immutable systems testing