Особенности тестирования DWH/BI-систем

28 апреля 2018
Дата публикации
Особенности тестирования DWH/BI-систем
  • Тестирование ПО
  • Обеспечение качества
BI – системы - это системы для получения, обработки данных и предоставления их в виде, удобном для анализа. Задача системы Business Intelligence – помочь бизнесу в принятии стратегически важных решений.

Возьмем для примера интернет-магазин.

Пользователь заходит на сайт, переходит по его страницам, кладет товар в корзину. И при этом не осознает, что каждый его шаг фиксируется. Владельцы интернет-магазинов стремятся получить максимум информации о пользователе: откуда он пришел, пол и возраст, какие товары кладет в корзину, а от каких отказывается, сколько тратит на покупки, какие способы оплаты предпочитает и так далее. В систематизированном и упорядоченном виде информация предоставляется бизнес-пользователям (руководству компании, отделу маркетинга, проектным менеджерам), которые на ее основе принимают важные решения.

Как устроены bi-решения?

На рынке существует множество различных BI-технологий. Они отличаются по сложности, функциональности, но все состоят из трех блоков:
  1.  Блок загрузки и трансформации данных;
  2.  Блок хранения данных (DWH);
  3.  Блок создания отчетности и визуализации данных.
Источником данных могут служить JSON-файлы, которые содержат информацию с сервера в текстовом виде. Это очень удобный формат предоставления данных о поведении пользователя на сайте, например. Также входная информация может быть получена от самих сотрудников магазинов: карточки с описанием товаров, розничная цена и т.д. Еще одним источником информации могут быть маркетинговые исследования.

Стадии системного тестирования dwh/bi-

Естественно, что принятие верного решения на основе полученных данных возможно лишь при условии, что полученные данные не содержат ошибок. Убедиться в этом помогут инженеры по тестированию.

Стадия 1: проверка процесса etl


Процесс ETL – процесс извлечения, трансформации и загрузки данных (от англ. Extract, Transform, Load). Одной из задач инженера по тестированию является проверка правильности поступления, отображения и выдача информации.

Чем поможет тестирование?

1. Убедиться, что данные не потерялись.

Потеря данных может происходить на нескольких этапах:
  •  На сайте. Например, пользователь зашел на сайт, совершил покупку, но информации об этом не поступило.
  •  Между сайтом и хранилищем. До поступления в хранилище информация может храниться в необработанном виде облачном хранилище, например, S3 от Amazon.
  •  Внутри DWH при переносе информации между различными уровнями.
2. Проверить соответствие ключа и значения в полученных файлах.

Несоответствие ключа и значения приведет к тому, что данные не смогут быть обработаны системой. Объем потерянных данных может быть очень большим.

3. Проверить правильность фиксации параметров обработки сессии пользователя: начало и конец сессии, длительность сессии, данные о пользователе, данные о его активности в течение сессии.

4. Проверить правильность использования sql-функций.

Например, на одном из проектов встретился такой дефект. Функция DATEDIFF считывала только часы. Так, сессия пользователя длилась 11 минут, а функция округляла время до часа.

5. Проверить правильность расчетов.

В данной таблице в первом столбце содержится сумма активностей пользователя за одну сессию. Далее в столбцах активности разбиты по группам. Естественно, сумма должны быть рассчитана верно. Но это не всегда так. Обнаружить такого рода дефект – задача тестировщика.

6. Исключить дублирование информации.

Дублирование может происходить на каждом этапе работы с хранилищем: от работы с источником до последнего уровня хранилища, когда туда переносится лишняя информация. Например, пользователь купил в магазине один товар, а система создает два файла. Такие сценарии требуется исключить.

Стадия 2: тестирование отчетности


Инженер по тестированию проверит, как данные экспортируются и попадают в отчетность, а также проведет тестирование удобства пользования сгенерированными отчетами. На данном этапе также важно проверить, чтобы даты, время, валюта в отчетах (если таковые данные имеются) соответствовали целевой аудитории.

Стадия 3: тестирование производительности, нагрузочное тестирование


По мере развития компании объемы поступающих данных будут расти. Важно убедиться, что система сможет выдержать этот рост, а также определить пределы ее производительности.

В чем состоит сложность тестирования BI/DWH-систем?

Тема тестирования данных сложна. На сегодняшний день нет не только устоявшейся методологии тестирования, но даже понимания того, что и как тестировать. Каждый проект будет уникальным.
  1.  Сложная бизнес-логика и архитектура BI-систем;
  2.  Большие объемы неоднородных данных;
  3.  Многочисленные источники данных;
  4.  Постоянное увеличение объемов данных;
  5.  Меняющиеся бизнес-требования.

Выбор команды по тестированию

Для эффективного тестирования процесса обработки и хранения данных тестировщик должен:
  •  иметь четкое представление о том, как организован процесс поступления данных и их хранения;
  •  обладать опытом работы с базами данных;
  •  понимать логику процесса ETL;
  •  уметь работать с динамичными требованиями к продукту;
  •  уметь общаться с бизнес-пользователями на их языке.
Кроме того, большим преимуществом будет, если команда сможет принять участие в разработке требований к будущему решению. Это поможет снизить количество доработок на поздних этапах разработки.

Своевременное тестирование хранилища данных и учет особенностей BI-систем профессионалами поможет гарантировать целостность и корректность анализируемых данных, на основе которых вы примете верное и эффективное для вашего бизнеса решение.

Нужна помощь? Закажите бесплатную консультацию специалистов в компании «Точка качества». Наши эксперты более подробно расскажут, что такое системное тестирование и что такое обеспеечние качество в тестировании ПО.