Ответ
Негативное тестирование домофона направлено на проверку его устойчивости к некорректным данным, нештатным ситуациям и злоупотреблениям.
Ключевые области и тест-кейсы:
-
Некорректный ввод данных:
- Ввод букв (
ABC) или спецсимволов (#!@) вместо цифр номера квартиры. - Ввод номера квартиры, выходящего за допустимые пределы (например,
000или9999при 100 квартирах). - Очень быстрый последовательный ввод цифр.
- Долгое удержание кнопки.
- Ввод букв (
-
Нестандартные условия эксплуатации:
- Среда: Работа при экстремальных температурах (мороз/жара), высокой влажности.
- Питание: Имитация скачков напряжения или работы от почти разряженного аккумулятора.
- Физическое воздействие: Нажатие мокрыми/грязными пальцами, одновременное нажатие нескольких кнопок.
-
Некорректные сценарии использования:
- Попытка вызова квартиры во время уже идущего разговора.
- Многократный вызов одной квартиры за короткий промежуток времени (проверка на спам).
- Отключение сети во время вызова/разговора.
Пример формализации теста (если домофон имеет API):
import requests
# Тест на обработку нечислового ввода
def test_alphabetic_input_rejected():
payload = {"apartment_number": "A12"} # Некорректный ввод
response = requests.post("http://domofon/api/call", json=payload)
# Ожидаем статус ошибки и понятное сообщение
assert response.status_code == 400
assert "invalid" in response.json().get("message", "").lower()
# Тест на обработку несуществующей квартиры
def test_nonexistent_apartment_handling():
payload = {"apartment_number": "999"}
response = requests.post("http://domofon/api/call", json=payload)
# Ожидаем корректную обработку: вызов не должен проходить
assert response.status_code == 404 # Или 200 с сообщением "Квартира не найдена"
Цель — выявить потенциальные сбои, которые могут привести к отказу службы, нарушению безопасности или неудобству пользователей.