18-year-old Mirra Andreeva came from a set down to shock Iga Swiatek in the Stuttgart Open quarter-finals.