software testing pitfalls