Каков алгоритм кипячения чайника
Что проверяют
Умеете ли вы превратить бытовой процесс в строгий алгоритм: предусловия, шаги, ветвления, цикл ожидания, условие выхода и обработку ошибок. Для тестировщика это разминка перед главным: следом почти всегда просят придумать проверки для чайника или для самого алгоритма.
Как отвечать
Сначала уточните контекст, это уже плюс: электрический чайник или на плите, сколько воды нужно. Затем изложите алгоритм так, чтобы его выполнил человек, ни разу не видевший чайник:
- подготовка: убедиться, что чайник исправен, стоит на базе, шнур в розетке;
- вода: если уровень ниже отметки
MIN, снять чайник, налить воду не вышеMAX, закрыть крышку и вернуть на базу; - включение: нажать кнопку и убедиться, что загорелся индикатор. Индикатор не горит: проверить розетку, при повторной неудаче завершить с ошибкой;
- ожидание: ждать, пока чайник выключится сам. Если прошло заметно больше обычного, выключить вручную и считать это дефектом;
- завершение: снять чайник с базы и налить воду.
Проговорите вслух, что ожидание это цикл с условием выхода и таймаутом, а проверки воды и индикатора это ветвления. Так видно, что вы мыслите как автор тест-кейсов.
Затем предложите проверки: функциональные (закипает и выключается), граничные (ровно MIN, ровно MAX, выше MAX), негативные (включение без воды, снятие с базы во время нагрева, открытая крышка), безопасность (защита от перегрева, нагрев корпуса), удобство (виден ли уровень воды, не обжигает ли ручка). Бонусом можно заметить, что автоотключение обычно срабатывает от пара, а температура кипения зависит от давления: в горах вода закипает ниже 100 °C.
Где спотыкаются
Пропускают предусловия и начинают сразу с «включить чайник». Проверка наличия воды это ровно то, что потом станет негативным тест-кейсом.
Пишут линейный список без ветвлений и без условия выхода из ожидания. Алгоритм без таймаута может ждать вечно, и это баг.
Уходят в подробности про заварку чая и забывают, что просили именно кипячение. Держите границы задачи и уточняйте их вслух.