Зачем нужно
Знание QA-терминологии необходимо каждому разработчику. Ты будешь писать тесты, работать с тестировщиками, разбирать баг-репорты и участвовать в обсуждении качества продукта. Без общего языка — хаос.
Где используется
- Code review — обсуждение качества кода
- Sprint planning — оценка задач с учётом тестирования
- Bug tracking — создание и приоритизация багов
- Собеседования — вопросы по основам QA
- RS School — cross-check и автоматические проверки
Quality Assurance vs Quality Control
Quality Assurance (QA) Quality Control (QC)
───────────────────── ────────────────────
Процесс-ориентирован Продукт-ориентирован
Предотвращает дефекты Находит дефекты
ДО и ВО ВРЕМЯ разработки ПОСЛЕ разработки
Проактивный Реактивный
Пример: Пример:
- Code review - Тестирование
- Стандарты кодирования - Инспекция
- CI/CD - Ревью результатов
Testing — виды тестирования
По уровню
┌──────────────┐
│ E2E Tests │ ← мало, дорого, медленно
├──────────────┤
│ Integration │ ← среднее количество
│ Tests │
├──────────────┤
│ Unit Tests │ ← много, дёшево, быстро
└──────────────┘
Пирамида тестирования
| Тип |
Что тестирует |
Инструменты |
| Unit |
Отдельные функции/модули |
Jest, Vitest |
| Integration |
Взаимодействие модулей |
Jest, Testing Library |
| E2E (End-to-End) |
Полный сценарий пользователя |
Cypress, Playwright |
По подходу
| Тип |
Описание |
| Функциональное |
Проверяет ЧТО делает система |
| Нефункциональное |
Проверяет КАК работает (производительность, безопасность) |
| Ручное |
Тестировщик проверяет вручную |
| Автоматизированное |
Скрипты проверяют автоматически |
| Регрессионное |
Проверка, что новый код не сломал старое |
| Smoke |
Быстрая проверка базового функционала |
| Sanity |
Проверка конкретного исправления |
Verification vs Validation
|
Verification |
Validation |
| Вопрос |
Правильно ли мы делаем продукт? |
Делаем ли мы правильный продукт? |
| Фокус |
Соответствие спецификации |
Соответствие ожиданиям пользователя |
| Метод |
Ревью, инспекция, статический анализ |
Тестирование, демо, UAT |
| Когда |
Во время разработки |
После разработки |
Спецификация: "Кнопка должна быть синей"
Verification: Кнопка синяя? → Да ✓
Validation: Пользователю удобно? Он находит кнопку? → Тестируем
Bug Lifecycle — жизненный цикл бага
┌──────┐ ┌────────┐ ┌──────────┐ ┌───────┐ ┌────────┐
│ New │──▶│ Open │──▶│ In Work │──▶│ Fixed │──▶│Verified│──▶ Closed
└──────┘ └────────┘ └──────────┘ └───────┘ └────────┘
│ │ │
▼ ▼ ▼
Rejected Reopened Reopened
(не баг) (не исправлен)
| Статус |
Описание |
| New |
Баг только что создан |
| Open |
Баг подтверждён, ждёт назначения |
| In Progress |
Разработчик работает над исправлением |
| Fixed |
Разработчик исправил |
| Verified |
QA подтвердил исправление |
| Closed |
Баг закрыт |
| Reopened |
Баг не исправлен или вернулся |
| Rejected |
Это не баг (by design, не воспроизводится) |
Severity vs Priority
Severity (серьёзность) — техническое влияние
| Уровень |
Описание |
Пример |
| Blocker |
Система не работает |
Приложение не запускается |
| Critical |
Основная функция сломана |
Невозможно оплатить заказ |
| Major |
Функция работает неправильно |
Неверный расчёт суммы |
| Minor |
Косметический дефект |
Неправильный отступ |
| Trivial |
Незначительный |
Опечатка в тексте |
Priority (приоритет) — бизнес-важность
| Уровень |
Описание |
Пример |
| P1 (Critical) |
Исправить немедленно |
Лежит production |
| P2 (High) |
Исправить в этом спринте |
Основная фича сломана |
| P3 (Medium) |
Исправить в ближайших спринтах |
Мелкий функционал |
| P4 (Low) |
Когда будет время |
Косметика |
Важно: Severity и Priority не всегда совпадают!
Опечатка в логотипе компании на главной:
Severity: Minor (косметика)
Priority: P1 (бизнес требует немедленного исправления)
Баг в неиспользуемой админ-функции:
Severity: Critical (данные теряются)
Priority: P4 (функцией никто не пользуется)
Баг-репорт — структура
## Заголовок
Кнопка "Купить" не работает на мобильных устройствах
## Окружение
- Browser: Chrome 120, iOS Safari 17
- OS: iOS 17.2, Android 14
- Размер экрана: < 768px
## Шаги воспроизведения
1. Открыть страницу товара на мобильном
2. Прокрутить до описания
3. Нажать кнопку "Купить"
## Ожидаемый результат
Товар добавлен в корзину
## Фактический результат
Ничего не происходит, клик не регистрируется
## Severity: Major
## Priority: P2
## Скриншот / Видео
[прикрепить]
Частые ошибки
| Ошибка |
Проблема |
Решение |
| Путают QA и QC |
Разные подходы |
QA = процесс, QC = проверка продукта |
| Путают Severity и Priority |
Разная шкала |
Severity = техническая, Priority = бизнес |
| Нет шагов воспроизведения |
Баг не воспроизводим |
Всегда описывай точные шаги |
| Пропускают регресс |
Старый код ломается |
Автоматизируй регрессионные тесты |
| Только happy path |
Баги в edge cases |
Тестируй граничные случаи |
Практика
- Напиши баг-репорт для найденного бага на любом сайте
- Определи Severity и Priority для 5 разных багов
- Составь чек-лист для тестирования формы регистрации
- Определи, какие тесты: unit, integration или E2E
- Проведи smoke-тестирование учебного проекта
Связанные темы
Ресурсы