Что такое предусловие в тестировании?

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

Ответ

Предусловие — это начальное состояние системы или набор условий, которые должны быть выполнены до запуска теста, чтобы обеспечить его корректное выполнение и валидность результатов.

Зачем это нужно?

  • Гарантирует, что система находится в ожидаемом, стабильном состоянии.
  • Изолирует тест от внешних факторов, которые могут исказить результат.
  • Повышает предсказуемость и воспроизводимость тестов.

Примеры:

  1. Для теста авторизации: наличие активного пользователя с известными учетными данными в базе данных.
  2. Для теста оплаты: наличие товара на складе и достаточный баланс у тестового аккаунта.

Практическая реализация (на примере pytest):

import pytest

# Фикстура как предусловие — создает пользователя перед тестом
@pytest.fixture
def registered_user():
    user = create_user(username="test_user", password="secret123")
    yield user
    delete_user(user.id)  # Постусловие — очистка после теста

# Тест использует предусловие

def test_successful_login(registered_user):
    response = login(username="test_user", password="secret123")
    assert response.status_code == 200
    assert "auth_token" in response.json()

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