TGViewer
Геннадий Чурсов | QA++ Геннадий Чурсов | QA++ @chursovqa · 4.14K subscribers
Post #122 1.1K
💬 Вопрос от QA сообщества:
Может кто-то поделиться своим опытом по рефакторингу тестового фреймворка с использованием шаблонов проектирования или по миграции с одного тестового фреймворка на другой? Как сделать это менее болезненно?


🛠 Кейс: рефакторинг существующего фреймворка

1. Создать POC (proof of concept)
🔹 Проверьте, что изменение работает
🔹 Определите, сколько времени уходит на исправление одного теста/класса/метода

2. Анализ POC
🔹 Оцените необходимость и объем изменений
🔹 Соберите статистику, факты и примеры для согласования изменений с командой, менеджментом, клиентом

3. Разбивка изменений
🔹 Если изменения большие, разбейте их на мелкие подзадачи
🔹 Вносите изменения постепенно

Пример: Переход с TestNG на AssertJ, используя SoftAssertions:
🔸 Покрыт один класс автотестами в рамках POC
🔸 Написана инструкция по использованию AssertJ
🔸 Проведено демо, команда согласилась использовать AssertJ
🔸 Договоренность переписывать автотесты на AssertJ при внесении изменений в тесты или при недостатке данных в отчетах

4. Внесение небольших изменений
🔹 Внесите сразу в рамках одной задачи, чтобы было легко отменить при необходимости

5. Обратная совместимость
🔹 Используйте feature flag для возможности включать/выключать новую фичу
🔹 Откатитесь на предыдущий функционал при необходимости

Пример: Добавление предварительной генерации тестовых данных:
🔸 Создайте переменную isTestDataGenerationEnabled со значением false по умолчанию
🔸 Запустите тесты с false, затем с true и сравните результаты
🔸 При появлении новых падений, связанных с новой функциональностью, верните флаг на false и исправьте фреймворк
🔸 После успешного покрытия всех кейсов, установите флаг на true по умолчанию или уберите его

🏗 Кейс: использование шаблонов проектирования

1. Определение проблемы
🔹 Определите, какие части вашего фреймворка требуют улучшения
🔹 Решите, какой шаблон проектирования подойдет для решения проблемы (например, Factory, Singleton, Strategy)

2. Создание POC
🔹 Реализуйте небольшой пример с использованием выбранного шаблона
🔹 Убедитесь, что новый подход решает проблему и не нарушает существующую функциональность

3. Внедрение шаблона
🔹 Постепенно рефакторьте существующий код, используя новый шаблон
🔹 Обучите команду работе с новым шаблоном, предоставив инструкции и примеры

Пример: Использование шаблона Factory для создания объектов тестовых данных:
🔸 Создайте фабрику, которая будет отвечать за создание и настройку объектов
🔸 Проведите демо для команды, объяснив преимущества и особенности нового подхода
🔸 Постепенно заменяйте старый способ создания объектов на новый, используя фабрику

📅 В следующий раз я напишу про переход с одного фреймворка на другой на примере своего опыта.
  • 👍 4
  • 🔥 4
  • 👏 1
More from @chursovqa
  1. Sep 29, 2026Heisenbug 2026 Autumn: тестирование, практика и живое общение 16–17 октября в Санкт-Петерб…
  2. Sep 23, 2026Собеседование для QA на английском Проведу бесплатную тренировку интервью для тестировщико…
  3. Sep 17, 2026Баг нашли за пару минут. А потом ещё минут десять вспоминаем шаги, открываем Network, соби…
  4. Sep 8, 2026У тестировщиков редко бывает одинаковая работа. 😺 Один меняет IT на стройку и заново соби…
  5. Sep 7, 2026Наконец-то на работе поставили задачу с которой я легко справлюсь! 😁
  6. Sep 1, 2026Как прокачать LinkedIn так, чтобы не только самому искать работу, но и получать хорошие вх…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →