Locating faults through automated predicate switching | Synapse