Necessity is not Sufficiency Theorem 1 from the last post works due to the fact that simpler models are usually sufficient to explain causal relationships as opposed to more complicated models. Judea Pearl uses the term minimal causal structures for such simpler models. Further, such simpler models directly represent the use of the problem-solving principle called […]
How can one be effective at fault localization and testing? While it is true that it is difficult to know the complete set of states of any software system or even to know the current (complete) state transition of a particular SUT at a given time, it is not true that we can never isolate any […]
The Underlying Problem of Fault Localization The underlying problem for fault localization is a phenomenon called confounding (also called confounding bias). Therefore, we must first understand what confounding bias means. In simplest terms, confounding is an unknown causal quantity that is not directly measurable from observed data In other words, an effect is confounded when its cause […]
Testing and Fault Localization One of the goals of software testing is to produce evidence that a piece of software works as intended. That evidence might be in the form of hard, deterministic data or even stochastic results that statistically show the correctness of the software system to some degree, among others. However, with modern software […]
In this last installment of reachability graphs, I show yet another example of how bugs can be successfully documented (and easily recreated) by reachability graphs. Review the reachability graph below and try it out.
This reachability graph nicely reports an infinite amount of bugs found when using the Google Chrome PDF viewer to search PDFs containing LaTex environments. Try it out!
It’s time for another reachability graph that shows how easy bug reporting can be with them! Follow the graph below and let me know what you find. Enjoy!