Как проверить функциональность добавления новых адресных узлов
Что проверяют
Умеете ли вы начать с уточнения требований, когда формулировка расплывчата, и видите ли за формой добавления целую иерархию данных. Обычно следом просят назвать самые важные негативные сценарии или объяснить, как проверить результат не только через интерфейс.
Как отвечать
Сначала уточните, что такое узел в этой системе. Чаще всего это элемент адресного дерева: регион, город, улица, дом, и у каждого узла есть родитель. Дальше стройте проверки вокруг этой структуры:
- обязательные поля и формат: название, тип узла, родитель, индекс. Классы эквивалентности и граничные значения для длины названия, допустимые символы: дефис, цифры, буква «ё», точка в сокращениях;
- иерархия: улицу нельзя создать без города, дом нельзя привязать напрямую к региону, если правила этого не позволяют. Допустимые пары «тип узла и тип родителя» удобно свести в таблицу решений;
- уникальность: одноимённая улица в другом городе допустима, а дубль внутри одного родителя нет. Проверьте регистр и пробелы по краям: «Ленина» и « ленина » не должны стать двумя узлами;
- результат: узел появился в дереве, в поиске и автоподсказке, в выпадающих списках других форм. Запрос на создание через API вернул ожидаемый код, а в базе запись связана с правильным родителем;
- повторная отправка: двойной клик по «Сохранить» или медленная сеть не должны создать два одинаковых узла;
- права: пользователь без роли редактора не может добавить узел ни через форму, ни прямым запросом к API.
Регрессию по этим сценариям разумно вынести в автотесты на уровне API, а интерфейс проверять выборочно.
Где спотыкаются
Тестируют только форму: заполнили поля, увидели «Успешно», закрыли задачу. А узел при этом не находится поиском, потому что поисковый индекс или кеш обновляются отдельно.
Не уточняют, что считается дублем, и либо пропускают дубликаты, либо заводят баг на законную одноимённую улицу в другом городе.
Забывают про связи: добавление узла проверили, а то, что к нему можно привязать адрес клиента или дочерний узел, уже нет.