Surviving the Top Ten Challenges of Software Testing