Ответ
Тестирование программного обеспечения — это систематический процесс проверки соответствия программного продукта установленным требованиям, а также выявления дефектов с целью оценки и улучшения его качества.
Ключевые цели тестирования:
- Обнаружение дефектов: Найти как можно больше ошибок (багов) до того, как продукт попадет к конечному пользователю.
- Повышение уверенности в качестве: Обеспечить уверенность заказчика и команды в том, что продукт работает корректно и соответствует ожиданиям.
- Предотвращение рисков: Снизить риски, связанные с выходом некачественного ПО (финансовые потери, репутационные риски).
- Предоставление информации: Снабдить стейкхолдеров (менеджмент, разработчиков) объективной информацией о текущем уровне качества продукта для принятия решений о выпуске.
Важное уточнение: Тестирование демонстрирует наличие дефектов, но не может доказать их полное отсутствие.
Пример базового теста, иллюстрирующий цель проверки функциональности:
# Тестируемая функция — аутентификация пользователя
def authenticate(username: str, password: str) -> bool:
# ... логика проверки в БД ...
return is_valid
# Unit-тест с использованием pytest
def test_authentication_with_correct_credentials():
"""Цель: убедиться, что система пропускает пользователя с верными данными."""
result = authenticate("john_doe", "secure_password_123")
assert result is True, "Пользователь с корректными данными должен быть аутентифицирован."
def test_authentication_with_incorrect_password():
"""Цель: выявить дефект, если система принимает неверный пароль."""
result = authenticate("john_doe", "wrong_password")
assert result is False, "Аутентификация с неверным паролем должна завершиться неудачей."