Software testing: from theory to practice | Synapse