software engineer in test job description