Developing and carrying out manual or automated software testing is not as easy as it seems. Here are 5 key challenges developers face.