Testing abstract behavioral specifications