What is software testing? And why is it so hard? | Synapse