Автоматизация тестирования рефакторингов для 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

Technologies

Continuous Integration