QA-трек
Параллельно с учебным треком стажёр ведёт QA-трек — работу с багами и обратной связью в geotimlab.wiki. Это второй поток Фазы 1, и на гейте он оценивается наравне с кодом проекта защиты.
Цель трека
- Вход в команду через реальный вклад в продукт (баг-репорты).
- Погружение в продукт и предметную область. Тестируя боевой стенд, стажёр быстрее понимает, что такое образцы, выработки, испытания, паспорта — и видит, зачем строит свой проект.
- Инженерная культура. Навык формулировать наблюдения точно, воспроизводимо, без эмоций.
Зона ответственности стажёра (инженерная)
| Что | Где |
|---|---|
| Регистрация багов | vault/bugs/ (write) |
| Обратная связь (предложения, наблюдения) | vault/feedback/ (write) |
| Еженедельные метрики-агрегаты | vault/reports/ (write) |
| Тестирование боевого стенда | Стенд + Swagger |
Что НЕ в зоне стажёра
- Приоритизация багов — за PM.
- Аппрув PR в wiki — за PM.
- Классификация «баг vs недоработка» в спорных случаях — за PM. Стажёр делает первичную классификацию, финальное решение — за PM.
- Продуктовые решения по QA — за PM.
Форма баг-репорта
Каждый баг — отдельная заметка в vault/bugs/. Обязательные поля:
---
title: "Краткое описание проблемы"
type: bug
status: open
severity: <critical|high|medium|low>
context: <ui|api|data|docs|other>
reported_by: Булат
reported_at: 2026-08-11
---
Тело заметки:
# <Краткое описание>
## Шаги воспроизведения
1. Зайти на ...
2. Нажать ...
3. Ввести ...
## Ожидаемое поведение
<Что должно было произойти>
## Фактическое поведение
<Что произошло на самом деле>
## Окружение
- Стенд: staging
- Браузер: <Chrome 120 / Firefox 115 / ...>
- Учетка: <какая роль>
## Вложения
<Скриншоты, ссылки на Swagger-запросы, JSON-ответы>
Классификация по severity
| Severity | Критерий | Пример |
|---|---|---|
critical |
Блокирует ключевую функциональность, нет обхода | Не сохраняется образец, данные теряются |
high |
Серьёзная проблема, но есть обход или проблема не блокирует | Не работает фильтр, но поиск через API жив |
medium |
Заметная проблема, не блокирует работу | Некорректное форматирование даты в отчёте |
low |
Косметика, мелкие UX-проблемы | Опечатка в подписи кнопки |
Если есть сомнения между двумя уровнями — стажёр ставит более высокий и отмечает в комментарии «уточнить severity». Финальное решение — за PM.
Классификация по context
| Context | Что значит |
|---|---|
ui |
Проблема в интерфейсе (Blazor-страницы, компоненты) |
api |
Проблема в REST/OData-эндпоинтах (проверяется через Swagger) |
data |
Проблема с данными (некорректные значения, потери, расхождения) |
docs |
Ошибка в документации или несоответствие доки и продукта |
other |
Не попадает в категории выше |
Еженедельные метрики
Раз в неделю стажёр собирает в vault/reports/ агрегаты по своим баг-репортам. Форма — отдельная заметка:
---
title: "QA-отчёт за неделю 2026-W32"
type: qa-report
report_period: 2026-W32 # год и номер недели ISO
reported_by: Булат
---
Тело:
# QA-отчёт за неделю 2026-W32
## Сводка
- Заведено багов: N
- Из них по severity: critical — N, high — N, medium — N, low — N
- Из них по context: ui — N, api — N, data — N, docs — N, other — N
- Закрыто (подтверждено командой): N
## Ключевые наблюдения
- <Тенденция или повторяющаяся проблема>
## Обратная связь
- <Что показалось непонятным в продукте>
- <Где документация расходится с реальностью>
Цель отчёта — не только цифры, но и наблюдения. Тренды важнее единичных багов: если пять багов в одной области — это сигнал.
Как тестировать без доступа к коду
У стажёра нет доступа к исходникам, но есть:
- Стенд продукта — рабочее приложение. Тестировать как обычный пользователь.
- Swagger/OpenAPI — все эндпоинты API видны. Можно дёргать напрямую и смотреть ответы.
- Примеры JSON-ответов — эталонные структуры данных. Помогают понять, как данные устроены.
Стратегия тестирования:
- Читать
docs/в wiki — понимать, как функциональность должна работать. - Пользоваться стендом как пользователь — проверять сценарии из документации.
- Сверять UI и API — то, что показывает UI, должно сходиться с тем, что возвращает API.
- Проверять граничные случаи — пустые значения, нули, очень большие числа, спецсимволы.
- Фиксировать наблюдения — даже если не уверен, что это баг. Лучше зафиксировать и уточнить у PM, чем пропустить.
Темп
Реалистичный темп при 10–15 ч/нед, с учётом параллельного учебного трека:
- Первый месяц: знакомство с продуктом. 1–3 бага в неделю, любой severity.
- Месяцы 2–3: стабильный поток. 3–5 багов в неделю, постепенный переход к более осмысленным находкам (high/medium).
- Месяцы 4–6: качество важнее количества. Меньше багов, но с лучшей классификацией и анализом.
Темп не самоцель. Один хорошо оформленный баг с воспроизведением ценнее пяти «у меня тут не работает». На гейте оценивается качество репортов и глубина погружения в продукт, а не количество.
Связь с учебным треком
Тестирование боевого продукта помогает в проекте защиты:
- Стажёр видит, как выглядит реальный
ParameterValue, и точнее строит свой домен. - Swagger-ответы дают готовые образцы JSON для тестирования парсера на M1.
- Понимание UX помогает в M4 строить осмысленный Blazor UI, а не абстрактный.
Обратная связь тоже работает: столкнувшись с null-handling в коде парсера (M1), стажёр точнее замечает проблемы с null в баг-репортах.
Дальше
- ⬅️ Проект защиты — ТЗ на основной учебный проект
- ➡️ M0 — старт — первая веха
- 📚 Ресурсы — материалы для самостоятельного изучения
- ✅ Чек-листы — критерии прохождения вех и гейта