Society is increasingly dependent on complex computer systems, reflected in current trends such as IoT, and cloud computing. Bugs in these systems impose threats for security and safety and can cause immense financial losses. Even after detecting a bug, it is challenging to understand the interactions of parameters which caused it. Bugs can be due to issues in single components as well as faulty synchronization between components in distributed and networked systems. A particularly challenging class of bugs which fail to manifest or manifest differently during debugging are Heisenbugs. This project proposes automated diagnosis techniques for Heisenbugs in order to provide guidance for bug fixing.