Ответ
Тестирование (Testing) — это тактическая деятельность, подмножество QA, направленная на выявление дефектов в готовом или частично готовом продукте. Обеспечение качества (QA) — это стратегический процесс, охватывающий всю разработку и направленный на предотвращение дефектов.
Тестирование (Testing)
- Цель: Найти ошибки, баги и несоответствия в программном обеспечении.
- Фокус: Проверка конкретного продукта или его компонента.
- Деятельность: Выполнение тест-кейсов, написание и запуск автоматизированных скриптов, отчетность о дефектах.
- Временные рамки: Чаще начинается после написания кода (хотя смещается левее).
- Ориентация: На продукт.
Пример: Модульный тест — это чистый акт тестирования.
# Цель теста — проверить, что функция add работает корректно.
def test_add():
result = add(2, 3)
assert result == 5 # Если не 5 — тест провален, найден дефект.
Обеспечение качества (Quality Assurance)
- Цель: Гарантировать, что процессы разработки настроены так, чтобы на выходе получался качественный продукт.
- Фокус: Улучшение и контроль процессов (разработки, тестирования, управления).
- Деятельность: Определение стандартов и методологий, проведение аудитов процессов, анализ метрик, обучение команды, внедрение практик (Code Review, CI/CD).
- Временные рамки: Охватывает весь жизненный цикл продукта (SDLC).
- Ориентация: На процесс.
Пример деятельности QA: Внедрение практики Code Review — это не тестирование, а процессуальная мера QA, которая предотвращает попадание ошибок в основную ветку кода.
Ключевая аналогия
- Тестирование — это контроль качества на производственной линии (проверка готовых изделий).
- QA — это управление качеством всего завода (обучение персонала, настройка станков, улучшение технологий), чтобы брак не возникал в принципе.
| Сводка: | Аспект | Тестирование (Testing) | Обеспечение качества (QA) |
|---|---|---|---|
| Подход | Реактивный (находим ошибки) | Проактивный (предотвращаем ошибки) | |
| Цель | Выявление дефектов | Предотвращение дефектов, улучшение процессов | |
| Фокус | Продукт | Процесс | |
| Временной охват | Преимущественно фаза проверки | Весь жизненный цикл разработки (SDLC) | |
| Примеры деятельности | Написание и выполнение тест-кейсов, отчет о багах | Создание тест-стратегии, метрики качества, ревью требований, аудит процессов |