Ответ
Testing (Тестирование) — это тактическая деятельность по проверке готового продукта или его компонентов на наличие дефектов. Это подмножество QA.
QA (Quality Assurance, Обеспечение качества) — это стратегический процесс, охватывающий всю разработку и направленный на предотвращение дефектов через улучшение процессов.
| Аспект | Testing | QA |
|---|---|---|
| Цель | Найти баги и проверить соответствие требованиям. | Предотвратить появление багов, улучшить процессы. |
| Фокус | Продукт (что сделано). | Процесс (как делается). |
| Подход | Реактивный (исправление после обнаружения). | Проактивный (предупреждение на этапе создания). |
| Вовлечённость | Чаще на этапах проверки (тест-дизайн, выполнение тестов). | На всех этапах жизненного цикла (планирование, разработка, тестирование, релиз). |
| Методы | Написание и выполнение тест-кейсов, автотесты, нагрузочное тестирование. | Внедрение стандартов кодирования, code review, CI/CD, метрики качества, ретроспективы. |
Практический пример в разработке:
-
QA-деятельность: Внедрение практики Code Review для проверки кода до слияния в основную ветку.
# Пример плохой практики, которую выявит code review (часть QA) def calculate_price(quantity, price): return quantty * price # Опечатка -> потенциальный баг -
Testing-деятельность: Написание автоматического unit-теста для проверки функции.
# Пример теста (часть Testing) def test_calculate_price(): result = calculate_price(5, 10) assert result == 50, f'Expected 50, got {result}'
Вывод: QA создаёт среду для производства качественного кода, а Testing проверяет результат этой работы.