Understanding negative feedback causality and its affects on testing
Negative feedback causality is where A causes B, and B has a counter effect on A. Over time, the two will develop an equilibrium. A testing example of this might be an application server's load distribution mechanism. The more requests a specific server in the cluster gets (event A) the higher it's load profile. The higher your load profile, the less attractive you are to the load distribution algorithm (event B). That means you'll get fewer requests from the load distribution algorithm. Over time, a theoretical balance in load is reached. In practice, the system continues to change, constantly taking into account both A and B as it works to obtain equilibrium.
If I suspect A and B have a negative feedback relationship, than my test cases look very much like they do when I suspect a circular relationship. I'll come up with test cases where I control the starting states of both A and B, I'll need to verify both A and B, and all the problems with measurement still come into play. Again, test setup and observation has to take these problems into account.
For more on this topic, see the section on scientific thinking and precision in the Miniature Guide on Scientific Thinking.
If I suspect A and B have a negative feedback relationship, than my test cases look very much like they do when I suspect a circular relationship. I'll come up with test cases where I control the starting states of both A and B, I'll need to verify both A and B, and all the problems with measurement still come into play. Again, test setup and observation has to take these problems into account.
For more on this topic, see the section on scientific thinking and precision in the Miniature Guide on Scientific Thinking.