Блог A1QA

О тестировании и качестве ПО

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

Технологии Business Intelligence – системы для получения, обработки данных и предоставления их в виде, удобном для анализа. Задача такого рода систем – помочь бизнесу в принятии стратегически важных решений.

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

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

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

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

  1. Блок загрузки и трансформации данных;
  2. Блок хранения данных (DWH);
  3. Блок создания отчетности и визуализации данных.

Из чего состоят BI-решения

Источником данных могут служить JSON-файлы, которые содержат информацию с сервера в текстовом виде. Это очень удобный формат предоставления данных о поведении пользователя на сайте, например. Также входная информация может быть получена от самих сотрудников магазинов: карточки с описанием товаров, розничная цена и т.д. Еще одним источником информации могут быть маркетинговые исследования.

Стадии тестирования DWH/BI-систем

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

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

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

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

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

Потеря данных может происходить на нескольких этапах:

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

2. Проверить соответствие ключа и значения в полученных файлах.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для эффективного тестирования процесса обработки и хранения данных тестировщик должен:

  • иметь четкое представление о том, как организован процесс поступления данных и их хранения;
  • обладать опытом работы с базами данных;
  • понимать логику процесса ETL;
  • уметь работать с динамичными требованиями к продукту;
  • уметь общаться с бизнес-пользователями на их языке.

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

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

Нужна помощь? Закажите бесплатную консультацию специалистов A1QA.

Поделиться статьей: