Files
dev-roadmap-avito-playbook/profiles/qa-skills.md
Alexandr Yang 5ddc67b2a2 Исправил ссылки (#112)
* Исправил битые ссылки после изменения структуры
* Убрал полный путь #97
2025-06-26 11:08:05 +03:00

82 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Профили QA-инженеров
Профили QA-инженеров нужны, чтобы оценивать коллег в соответствии с их уровнем на [performance review](../goal-setting.md#performance-review). Это делает продвижение по карьерной лестнице понятным и прозрачным.
## Карьерная лестница
Карьерная лестница — это возможный путь развития сотрудника в Авито. Он зависит от того, какие задачи решает специалист и какие основные навыки использует в работе.
Сейчас в Авито существуют такие уровни QA-инженеров:
- [Е1](#е1)
- [Е2](#е2)
- [Е3](#е3)
- [Е4](#е4)
- [Е5](#е5)
- [Е6](#е6)
Двигаться ли по карьерной лестнице — это решение самого сотрудника. Многое зависит от его проактивности и желания учиться. Задача менеджера — помочь специалисту в развитии. Например, подключать к новым задачам, давать возможность для участия в кросс-функциональных проектах.
## Как работают профили
- Ожидания каждого следующего уровня добавляются к ожиданиям предыдущих. Например, E4-инженер должен уметь делать всё то же самое, что E1, E2 и E3.
- Сотрудник должен проявить навыки и компетенции своего или следующего профиля на деле. Просто уметь или хотеть делать недостаточно.
- Если менеджер считает, что специалисту в команде не нужен какой-то навык, то его можно не учитывать.
### Е1
- Занимается ручным тестированием, составляет и тестирует по тест-кейсам или делает тестирование ad-hoc .
- Решает задачи с подробным описанием скоупа тестирования.
- Тестирует отдельные задачи.
- Пишет чеклисты и тест-кейсы на основные позитивные и негативные сценарии.
- Перепроверяет закрытые баги и пишет понятные и воспроизводимые багрепорты по ошибкам.
### Е2
- При тестировании задач пишет тест-кейсы и автотесты на них.
- Может составить тест-кейсы для конкретных фичей, реализованных в задаче, с применением основных техник тест-дизайна: например, классы эквивалентности.
- Может всегда быстро предоставить актуальную и правдивую информацию о качестве разрабатываемых фичей - в задачах всегда понятно, что тестировалось руками и автоматически.
- Разбирает отчёты автотестов, перепроверяет ошибки.
- Разрабатывает новые автотесты е2е и/или интеграционного уровня, поддерживает их.
- Знает основные техники тест-дизайна и активно их использует, когда они применимы: оптимизирует проверки, обеспечивает полноту покрытия через техники тест-дизайна. Например покрывает негативные сценарии, граничные значения, проверяет все возможные ветви бизнес-процессов. Разрабатывает тест-кейсы и автотесты на основе техник тест-дизайна.
### Е3
- Обеспечивает качество на всех этапах реализации, следит за метриками после выкатки фичи, юзер-сторей или крупных фичей.
- Составляет тестовые модели для части функциональности команды.
- Самостоятельно решает задачи даже без описания подробного скоупа тестирования.
- Кроме новых автотестов е2е и тестов интеграционного уровня, может разрабатывать тесты компонентного уровня.
- Использует паттерн pageObjects. Разрабатывает недублирующие, оптимальные, стабильные тесты. Улучшает стабильность уже существующих автотестов.
- Составляет тест-кейсы и обсуждает с разработчиками, как будет распределяться автоматизация по пирамиде тестирования. Следит за тем, чтобы команда придерживалась пирамиды тестирования.
- Тестирует не только UI, но и уровни ниже: например, API.
- Владеет и ведёт процессы SPT/ZBP в своей команде, обеспечивает должное SLO по решению проблем пользователей и багов.
- Применяет и владеет процессом ATDD в команде, составляет критерии приёмки вместе с product owner.
- Драйвит достижение baseline по ТММ в QA-секции.
- Может добавить дополнительные Quality Gates в CI/CD команды.
- Использует подход Risk Based Testing в оценке и предотвращении рисков, либо использует другие методологии по работе с рисками, проводит оценку рисков у задач.
### Е4
- Обеспечивает качество всего функционала команды целиком.
- На основе данных по покрытию тестовой модели и непосредственного тестирования, может предоставить полную информацию о проведённом тестировании, качестве и рисках для любого изменения, которое выкатывается в продакшен.
- Актуализирует и владеет тестовой моделью всего функционала разрабатываемого продукта или системы, обеспечивает необходимое и достаточное покрытие тестами всей тестовой модели.
- Координирует кросскомандное тестирование.
- Доносит до команды информацию о состоянии качества и фокусирует команду на его улучшении.
- Умеет разрабатывать тесты на backend и хотя бы на один client-side, чтобы обеспечивать покрытие на всех уровнях системы.
- Прорабатывает вместе с разработчиками юнит-тесты.
- Может проверить качество покрытия юнит-тестами, которые пишут разработчики, через код ревью или с помощью мутационного тестирования.
- Исследует проблемы flaky-тестов и самостоятельно устраняет причины, либо адресует руткозы flaky-тестов на ответственных и добивается их исправлений.
- Если видит проблемы в большом количестве багов от команды, то исследует первопричину и меняет процессы обеспечения качества.
- Является экспертом по QA внутри своей команды: обучает коллег тестировать через менторство, с объяснением теории и применением практики. Организует процессы тестирования, так, чтобы не являться боттл-неком для команды.
- Может настроить автоматическую сборку тестового контура для интеграционного тестирования фичей в юните. Например, прогон специфичных тестов на релизах Инфомодели.
- Проводит исследовательское тестирование с целями, сессиями и итоговыми отчётами.
### Е5
- Для больших проектов проводит оценку рисков, аргументировано объясняет, где и что может пойти не так.
- Занимается улучшением общих инструментов тестирования, осуществляет вклад в общую экосистему тестирования компании: например, самостоятельно добавляет необходимый функционал в Resource Manager.
- Комплексно подходит к обеспечению качества. Проводит сам или привлекает экспертов для проведения нефункционального тестирования - performance-тесты и Security-тесты. Например, комплексно подходит к соблюдению NFR сервисами.
- Владеет метриками качества своей команды/юнита, всегда может показать на объективных метриках, какая ситуация сейчас с качеством.
- Участвует в разборах инцидентов, предотвращает повторные инциденты.
- Является экспертом по QA внутри своего юнита или нескольких команд - обучает коллег тестировать как положено, с теорией и практикой.
- Имеет карту/модель рисков по всему юниту, системно работает над предотвращением рисков в юните.
### Е6
- Создаёт с нуля новые инструменты для обеспечения качества. Например, скрипты сравнения диффов инфомодели или фреймворк для интеграционного тестирования автозагрузки.
- Может провести исследование по оценке качества для пользователей и качества продукта в целом: тестирует гипотезы качества на пользователях, сравнивает свой продукт и конкурентов в плане качества. Например, проводит сравнительное тестирование продуктов, проводит оценку по аспектам качества относительно конкурентов.
- Имеет карту/модель рисков по всему кластеру, системно работает по предотвращению рисков в кластере.
- Координирует общекластерные проекты по тестированию.