Ответ
Пошаговое тестирование кофемашины — это пример системного тестирования физического устройства. Процесс можно разделить на модули.
План тестирования:
-
Внешний осмотр и базовый функционал:
- Целостность корпуса, экрана, кнопок.
- Реакция на включение/выключение (индикаторы, звук).
- Работа дисплея и тактильная отдача кнопок.
-
Тестирование модуля подачи ингредиентов:
- Вода: Заполнение резервуара, срабатывание датчика минимального/максимального уровня, отсутствие протечек.
- Кофе: Загрузка зерен/капсул, работа механизма помола (если есть), датчик отсутствия кофе.
- Молоко/сироп (опционально): Аналогичные проверки для дополнительных резервуаров.
-
Тестирование функционала приготовления:
- Выбор каждого типа напитка (эспрессо, американо, капучино).
- Запуск приготовления, контроль времени цикла.
- Выходные параметры: Температура напитка (должна быть стабильной), объем порции, крепость.
- Очистка/промывка после цикла.
-
Тестирование уведомлений и ошибок:
- Предупреждения о низком уровне воды/кофе.
- Оповещение о необходимости очистки/декальцинации.
- Сообщения об ошибках (замятие, перегрев).
-
Дополнительные проверки:
- Энергопотребление в режиме ожидания и работы.
- Уровень шума.
- Устойчивость интерфейса к быстрым повторным нажатиям.
Пример формализации проверки кнопки в виде теста:
# Псевдокод для иллюстрации логики тестирования
class TestCoffeeMachine:
def test_start_button_initiates_brewing(self, machine):
# Предусловие: машина включена, есть вода и кофе
machine.power_on()
machine.fill_water()
machine.fill_coffee()
# Действие: нажатие кнопки "Эспрессо"
espresso_button = machine.get_button("espresso")
assert espresso_button.is_enabled() == True
espresso_button.press()
# Проверка результата
assert machine.current_state == "BREWING", "Машина не перешла в режим приготовления"
assert machine.get_brewing_time() > 0, "Таймер приготовления не запущен"
# Ожидание завершения цикла и проверка результата
machine.wait_for_brewing_completion()
assert machine.current_state == "READY"
assert machine.last_coffee_volume_ml == 30 # Ожидаемый объем эспрессо