软件测试工程师该具备哪些技能