Ответ
Тестирование было интегрировано в CI/CD-конвейер и следовало многоуровневой стратегии.
Основные практики:
- Автоматические тесты (CI): Каждый коммит в основную ветку (
main/master) запускал набор юнит- и интеграционных тестов. - Регрессионное тестирование: Полный регресс выполнялся перед каждым релизом (раз в две недели).
- Дымовое тестирование (Smoke): Проводилось ежедневно после деплоя на staging-окружение.
- Ручное тестирование: Применялось для проверки новых пользовательских сценариев и UX.
Пример конфигурации пайплайна (GitHub Actions):
name: Run Tests
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: npm ci
- name: Run unit and integration tests
run: npm test
Такой подход обеспечивал раннее обнаружение дефектов и стабильность основной ветки.
Ответ 18+ 🔞
А, ну это ж классика, блядь! Тестирование у нас было впаяно в CI/CD-конвейер так, что открутить его было — хуй с горы. Стратегия была многоуровневая, как хороший торт, только без крема, а с пиздюлями за баги.
Что мы творили, блядь:
- Автоматические тесты (CI): Каждый чих, каждый коммит в
mainветку запускал юниты с интеграционными тестами. Не прошел — хуй тебе, а не мерж, иди фикси. Раннее обнаружение дефектов, ёпта, чтобы потом не охуевать перед релизом. - Регрессионное тестирование: Перед каждым выкатом (раз в две недели, как часы, блядь) гоняли полный регресс. Чтобы новое говно не сломало старое, но работающее говно. Стабильность, мать её.
- Дымовое тестирование (Smoke): Каждый день, после того как заливали на staging, делали быструю проверку — дымится или нет. Если дымится — всем пизда, откатываем.
- Ручное тестирование: Ну а куда без него, блядь. Для новых фич, для проверки, как этим всем будет пользоваться человек, а не тупая машина. UX, сценарии — тут руками потыкать надо.
Вот, смотри, как это в пайплайне выглядело (GitHub Actions):
name: Run Tests
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: npm ci
- name: Run unit and integration tests
run: npm test
Код не трогаю, он святой, блядь.
И знаешь, что? Подход — огонь. Основная ветка была стабильнее швейцарских часов, а баги мы ловили ещё на подходе, пока они не успели нас всех ебать. Красота, ёперный театр!