Автоматизация тестирования рефакторингов для PhpStorm Archived
Description
PhpStorm - IDE для разработки на языке PHP с пользовательской базой порядка 700 тысяч пользователей. Одна из областей функциональности IDE - автоматические рефакторинги. Они позволяют преобразовывать код без изменения его функциональности. Хорошо работающие рефакторинги должны учитывать все пограничные случаи, и задача QA – контролировать качество рефакторингов на таких случаях. Эта задача сложна тем, что количество пограничных случаев для каждого рефакторинга может быть очень большим, поэтому мы хотим разработать систему которая будет помогать в этом, работая на CI, а именно:
- Проверка консистентности работы рефакторингов. Нужно будет запоминать состояние проекта до/после рефакторинга и проверять, что оно не изменилось.
- Проверка работы рефакторингов на случайно сгенерированных входных данных
- Контроль производительности рефакторингов
У нас уже есть похожая существующая система для проверки инспекций, написанная на Groovy. Она работает на TeamCity и помогает нам контролировать качество инспекций каждый день, и скорее всего, новое решение удобно будет написать на её базе.
С чем ты познакомишься по ходу стажировки:
- Существующие рефакторинги PhpStorm, принципы их тестирования и какие классы пограничных случаев для них бывают.
- Устройство TeamCity и существующей системой проверки инспекций
- Архитектура платформы IntellIJ
Requirements
Знание основ программирования
Mentors
Kirill Smelov, Maxim Kolmakov
Contact details
internship@jetbrains.com
Location
All locations
Product/Team
PhpStorm