Место QA в SDLC и STLC
Мы уже разобрались, что такое QA, QC и тестирование. Теперь посмотрим, как эти процессы встраиваются в создание программного обеспечения. Это поможет вам увидеть общую картину и понять свою роль в команде.
Жизненный цикл разработки ПО (SDLC)
SDLC (Software Development Life Cycle) — это дорожная карта, по которой команда создаёт, запускает и поддерживает программу.
Вот основные этапы SDLC:
- Планирование (Planning): Определяем цели, требования, ресурсы и сроки проекта. Решаем, что нужно сделать.
- Анализ требований (Requirements Analysis): Детально изучаем и документируем, что нужно пользователям и бизнесу. Отвечаем на вопрос: Как это должно работать?
- Проектирование (Design): Разрабатываем архитектуру системы, интерфейс, базы данных. Создаём "чертежи" будущего продукта.
- Разработка (Development/Implementation): Пишем код по проектной документации.
- Тестирование (Testing): Проверяем программу на соответствие требованиям, ищем дефекты. Здесь активно включается QA-инженер.
- Развёртывание (Deployment): Выпускаем программу для пользователей (например, устанавливаем на сервер или публикуем в магазине приложений).
- Поддержка и сопровождение (Maintenance): Устраняем ошибки, обновляем и улучшаем программу после запуска.
Важно: SDLC не всегда идёт строго по порядку. В современных подходах, таких как Agile, этапы могут переплетаться и повторяться в коротких циклах.
Жизненный цикл тестирования ПО (STLC)
STLC (Software Testing Life Cycle) — это часть SDLC, которая полностью посвящена тестированию. Это шаги, которые QA-инженер выполняет, чтобы обеспечить качество продукта.
Основные этапы STLC:
- Анализ требований к тестированию (Requirements Analysis for Testing): Изучаем требования к программе с точки зрения тестирования. Что именно нужно тестировать? Какие критерии успеха?
- Пример: Если требование: "Пользователь должен входить в систему по логину и паролю", QA-инженер анализирует, какие сценарии входа проверить (успешный, неверный логин, неверный пароль, пустые поля и т.д.).
- Планирование тестирования (Test Planning): Разрабатываем стратегию тестирования, определяем объём работ, ресурсы, сроки и инструменты. Создаём план тестирования.
- Разработка тест-кейсов (Test Case Development): Пишем подробные инструкции (тест-кейсы) для проверки функций и создаём чек-листы.
- Пример: Для входа в систему создаём тест-кейсы: "Вход с корректными данными", "Вход с неверным паролем", "Вход с пустым логином".
- Настройка тестового окружения (Test Environment Setup): Готовим оборудование и софт для тестирования.
- Пример: Устанавливаем нужную версию браузера, настраиваем доступ к тестовому серверу.
- Выполнение тестирования (Test Execution): Запускаем тест-кейсы и чек-листы, фиксируем результаты и найденные дефекты (баги).
- Закрытие цикла тестирования (Test Cycle Closure): Анализируем результаты, готовим отчёты, оцениваем эффективность и делаем выводы для будущих проектов.
Совет: Понимая SDLC и STLC, вы не только лучше выполняете свою работу, но и эффективнее общаетесь с командой — разработчиками, аналитиками, менеджерами. Вы будете говорить на одном языке и понимать, на каком этапе находится проект.
Место QA в SDLC и STLC
QA-инженер активно участвует в SDLC, особенно на этапе тестирования. Но благодаря проактивному подходу, QA-деятельность начинается гораздо раньше и продолжается на протяжении всего жизненного цикла продукта:
- На этапе планирования и анализа требований (SDLC): QA-инженер проверяет требования, выявляя потенциальные проблемы и неясности, которые могут привести к дефектам. Это часть QA (Quality Assurance).
- На этапе проектирования (SDLC): QA анализирует проектную документацию, предлагая улучшения для тестируемости и предотвращения дефектов.
- На этапе разработки (SDLC): Разработчики проводят модульное тестирование, а QA-инженеры готовят тестовую документацию.
- На этапе тестирования (SDLC): Это основной этап, где QA-инженер выполняет все шаги STLC, активно ища дефекты и проверяя качество продукта. Это QC (Quality Control) и Тестирование.
- На этапе развёртывания и поддержки (SDLC): QA участвует в приёмочном тестировании перед выпуском, а также в проверке исправлений и новых функций в рамках поддержки.
Таким образом, QA-инженер не просто "ищет баги" в конце, а является неотъемлемой частью всего процесса создания качественного продукта, начиная с самых ранних этапов.
Теперь, когда мы понимаем, как QA вписывается в общий процесс разработки, давайте углубимся в то, как современные методологии, такие как Agile, влияют на работу QA-инженера.