Common Software Testing Traps and How to Overcome Them