software quality assurance engineers and testers job description