Sensor networks and pervasive computing systems intimately combine computation, communication and interactions with the physical world, thus increasing the complexity of the development effort, violating communication protocol layering, and making traditional network diagnostics and debugging less effective at catching problems. Tighter coupling between communication, computation, and interaction with the physical world is likely to be an increasing trend in emerging edge networks and pervasive systems. This paper reviews recent tools developed by the authors to understand the root causes of complex interaction bugs in edge network systems that combine computation, communication and sensing. We concern ourselves with automated failure diagnosis in the face of non-reproducible behavior, high interactive complexity, and resource constraints. Several examples are given to finding bugs in real sensor network code using the tools developed, demonstrating the efficacy of the approach.