На каком этапе жизненного цикла задачи обычно начинается тестирование?

«На каком этапе жизненного цикла задачи обычно начинается тестирование?» — вопрос из категории Софт-скиллы, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

В современной практике (Agile, DevOps) тестирование начинается не на отдельном этапе, а непрерывно и параллельно с разработкой. Это реализуется через принцип Shift-Left Testing.

Конкретные точки начала тестирования:

Этап задачи Деятельность по тестированию
Анализ требований Статическое тестирование: ревью спецификаций, User Stories, Acceptance Criteria. Создание тестового чек-листа на основе требований.
Дизайн и разработка Написание юнит-тестов разработчиками (Test-Driven Development). Параллельное создание QA-специалистом интеграционных и API-тестов. Подготовка тестовых данных и среды.
Завершение разработки Начало выполнения функциональных тестов (по готовности фичи в тестовой среде), регрессионное тестирование.

Пример параллельной работы: Пока разработчик пишет код функции, QA инженер уже готовит для нее интеграционный тест.

Код функции (разработчик):

def calculate_total(items, tax_rate):
    """Рассчитывает итоговую сумму с налогом."""
    subtotal = sum(item['price'] for item in items)
    tax = subtotal * tax_rate
    return subtotal + tax

Интеграционный тест (QA/SDET):

import pytest

def test_calculate_total():
    test_items = [{'price': 100}, {'price': 200}]
    expected_total = (100 + 200) * 1.1  # Налог 10%

    result = calculate_total(test_items, 0.1)

    assert result == expected_total, f"Expected {expected_total}, got {result}"
    # Также важно проверить граничные случаи:
    assert calculate_total([], 0.1) == 0  # Пустой список

Вывод: Тестирование — это не этап после разработки, а непрерывная активность, интегрированная в процесс создания продукта.