Мы часто сталкиваемся с тем, что к нам приходят клиенты, которые не смогли добиться от прошлого подрядчика грамотной реализации импорта данных на сайт или в программу.
В данной статье мы описали не только как правильно составить техническое задание на разработку, но и обратить внимание на некоторые ключевые аспекты тестирования.
Что такое импорт данных?
1. Механизм импорта представляет собой процесс добавления или обновления новых значений в базу данных.
2. Существуют наиболее распространенные форматы файлов, используемые для импорта:
- импорт CSV;
- импорт Excel;
- импорт XML;
- импорт JSON.
3. Все файлы для импорта представляют собой массив, в котором данные разделены каким-либо символом (разделителем). Например, в CSV часто используется разделитель точка с запятой, то есть данные будут представлены последовательно в строку и разделены знаком «;»
На стадии разработки программисту следует предусмотреть обработку возможных ошибок. Остановимся подробнее на наиболее типичных параметрах, которые следует проверять при тестировании импорта.
Элементы, проверяемые на полноту данных
1. Полнота данных
Рассмотрим пример с неполными данными, когда пользователь при заполнении файла забыл указать один из необходимых пунктов данных В примере ниже мы убрали описание товара:
Программист, исходя из логики импортированного файла, должен предусмотреть, какие данные могут быть пропущены. Если данные являются обязательными для заполнения (не могут быть пустыми), то необходимо выводить ошибку: «Поле “Описание” в строке №58 пустое». Пример того, как это можно визуализировать:
К полноте данных следует отнести наличие в файле нужного количества столбцов. Иногда файлы для импорта успешно добавляются с удаленными столбцами. Поэтому при тестировании данных попробуйте удалить 1 столбец в середине таблицы и в конце таблицы:
2. Корректное округление импортируемых данных
Если импортируемые данные содержат числовые значения, то программисту необходимо определить логику округления данных (до десятых, сотых, тысячных и т.д.).
Вот пример, при котором данные импортировались с некорректным округлением:
3. Обрезание длинных текстов
Если в импортируемых данных есть текст, то следует при тестировании выбрать строку, которая содержит максимальную длину текста, и проверить, вся ли она будет импортирована. В примере ниже представлен случай, когда текст был некорректно обрезан при импортировании из-за установки символа «_»:
4. Валидация данных
Часто в импортируемых данных следует предусматривать валидацию данных, например, сообщать об ошибке, если в числовом поле присутствует текст или если поле должно содержать дату, а содержит неверный формат по маске (вместо 26.01.2018 содержит 26012018).
5. Логика работы системы в зависимости от импортируемых параметров
Если для импортируемых данных в программе предусмотрено присвоение какого-то определенного параметра, то рекомендуется попросить программиста вывести статус напротив импортируемых данных. В примере ниже продемонстрирована простейшая логика: если данные по Ширине и Высоте заполнены, то присваивается значение “Основное оборудование”, если данных нет, то оборудование отмечается как “Дополнительное”:
6. Видимость данных на front-end
Часто в импортируемых файлах предусмотрен параметр, который отвечает за видимость данных во front-end. Поэтому, мы настоятельно рекомендуем проверять не только back-end часть, но и front-end. Если рассматривать импорт в интернет-магазине, то часто тестировщики забывают проверить следующие разделы сайта:
- результат поиска (раздел, где выводится список найденных товаров: если товар был скрыт посредством импорта, то он также должен скрываться в результате поиска);
- обновление цены у товаров в разделе “распродажа” (если каталог товаров на распродаже представлен в отдельной таблице базы данных);
- обновление заголовков title, description и keywords (при массовом импорте html страниц).
7. Логика обновления данных
При разработке импорта необходимо учесть, как будет осуществляться обновление данных, которые уже есть в системе. Если данные будут заменяться новыми (импортируемыми), то не стоит забывать, что в импортируемом файле могут быть значения равные “NULL” (пустые). Если в логике предусмотрена замена данных новыми, то старые данные могут быть удалены (заменены на пустые). Обычно логика обновления данных описывается при составлении технического задания.
Пример описания логики обновления данных при импорте:
Поле в импортируемом файле |
В базе данных |
В импортируемом файле |
Что делать? |
Имя |
Нет значения (NULL) |
Есть значение |
Сохранить импортируемое значение |
Телефон |
Уже есть значение |
Новое значение |
Сохранять Новое значение |
Имя |
Уже есть значение |
Новое значение |
Оставить первичное значение |
8. Логика обновления данных
Если импорт предусматривает массовое обновление данных без возможного удаления, то стоит предусмотреть функционал массовой очистки импортируемых данных. Порой это не так просто реализовать из-за наличия связей между таблицами Баз данных. Поэтому гораздо проще предусмотреть этот момент на этапе разработки.
Рекомендации по оформлению раздела импорта
Прикрепление шаблона для импорта
Очень часто проектировщики интерфейса не предусматривают прикрепление шаблона в разделе Панели управления. Мы рекомендуем конечный шаблон импорта добавлять в интерфейс раздела с краткой инструкцией по заполнению файла:
В зависимости от размера импортируемых данных импорт может быть поточный или пакетный. Отличие заключается в объеме информации, обрабатываемой в процессе импорта: поточный работает со всем массивом сразу, а пакетный - с частью данных (импорт осуществляется с разбиванием на “куски” и последовательным добавлением данных). Для массового импорта рекомендуется использовать пакетную обработку данных.
Визуализация статуса импортируемого файла
Если импорт производится пакетно, то в интерфейсе следует вывести статус импорта. Наиболее распространенные статусы приведены ниже:
- Файл ожидает обработки;
- Файл в обработке;
- Успешно импортирован;
- Имеются ошибки.
Отчет о количестве импортированных данных
При импорте некоторые данные могут быть некорректно загружены. Поэтому важно не производить импорт сразу в базу данных проекта. После загрузки файла необходимо провести анализ данных и формирование предварительного отчета, в котором должны быть отображены ошибки с вариантом выбора: “произвести импорт” или “отменить”.
Отчет должен отображать:
- Количество импортированных строк - для сверки, сколько строк было обработано и сколько было в импортированном файле.
- Количество добавленных строк - для информирования, сколько новых (не обновленных значений) было добавлено в базу данных.
- Количество обновленных данных - для информирования, сколько строк было обновлено.
- Количество ошибок - для акцента, что в импортированном файле имеются ошибки.
Рекомендуется в отчете об импортируемых данных подкрашивать положительный результат зеленым, а отрицательный красным. Например, если в процессе импорта у вас идет связь товаров с конкретной категорией продукции и категория не была найдена, то данную информацию следует отметить красным.