Optimization under uncertainty: understanding orders and testing programs with specifications | Synapse