Какое поведение системы при превышении максимального количества элементов в массиве
Что проверяют
Умеете ли вы превратить абстрактный «лимит» в проверяемое требование и граничные тесты. Следом обычно просят набросать кейсы для поля или API с ограничением, например «не больше 10 вложений».
Как отвечать
Начните с того, что правильное поведение задают требования, а не язык программирования. При попытке превысить лимит система должна:
- не дать превысить: кнопка «Добавить» неактивна на 10-м элементе, либо появляется понятное сообщение с числом лимита;
- не терять данные молча: одиннадцатый файл не должен исчезнуть без следа, а список не должен обрезаться без предупреждения;
- отвечать предсказуемо на уровне API: сервер проверяет лимит сам, даже если фронт уже проверил, и возвращает
400или422с внятным текстом, а не500; - оставаться в согласованном состоянии: после отказа уже добавленные элементы на месте, повторная попытка работает.
Затем тесты по граничным значениям: max - 1, max, max + 1, пустой список. И обходные пути, где лимит часто забывают: прямой запрос через Postman или curl мимо интерфейса, одновременное добавление из двух вкладок, массовый импорт из файла.
Полезно показать, что вы понимаете, откуда берутся баги под капотом. В Java у массива фиксированный размер, и выход за него даёт ArrayIndexOutOfBoundsException; ArrayList расширяется сам, поэтому лимит там бизнесовый и проверяется кодом. В C и C++ выход за границу не обязательно падает, а может тихо испортить соседнюю память. В Python и JavaScript списки растут, и ошибка всплывает уже на уровне базы, очереди или размера запроса (413 Payload Too Large).
Где спотыкаются
Отвечают про ArrayIndexOutOfBoundsException и на этом заканчивают. Интервьюеру нужен тестировщик, а не пересказ исключения: где лимит, что видит пользователь, что возвращает сервер.
Проверяют только max + 1 в интерфейсе. Лимит, который держит лишь фронтенд, обходится одним прямым запросом к API, и это отдельный баг.
Не спрашивают, каким должно быть поведение. Если в требованиях лимит не описан, правильный ход: задать вопрос аналитику и зафиксировать ответ, а не придумывать ожидаемый результат самому.