software testing traps