Earlier this year, I did some migration testing from XUL fennec to Native fennec in regards to sync.
I simplified what states I had to test, and tested each of the conditions that way. Basically a bug occurs because the app will end up getting to a certain state, and then the bug occurs. Knowing how you get to that state determines the reproducibility of the bug. Rebooting/reseting the device helps out a lot. Anyways,… here’s the example of the diagram I came out with to help test the varying conditions: