Software quality assurance days
18 Международная конференция
по вопросам качества ПО
sqadays.com
Москва. 27–28 ноября 2015
Юлия Крючкова
Kaspersky Lab. Москва, Россия
Подход к тестированию хранилища данных на
базе MS SQL Server
Подход к тестированию хранилища данных на базе MS SQL Server
IT Department
IT Department
DWH Development
Подход к тестированию хранилища данных на базе MS SQL Server
•
Информационная БД
•
Содержит данные, поступающие из
различных оперативных бд и внешних
источников
•
Предназначена для подготовки отчётов и
бизнес-анализа
•
Данные доступны только для чтения.
Data WareHouse
Подход к тестированию хранилища данных на базе MS SQL Server
Data Flow
Data
Data
Bases
Bases
Flat
Flat
Files
Files
Stage
Stage
DWH
DWH
Data
Data
Mart
Mart
ETL
ETL
ETL
ETL
Data
Data
sources
sources
Подход к тестированию хранилища данных на базе MS SQL Server
Testing types
Интеграционное тестирование
Функциональное тестирование
Тестирование производительности
Регрессионное тестирование
Пользовательское приемочное тестирование
Подход к тестированию хранилища данных на базе MS SQL Server
???
Framework Choice
???
tSQLt
VS
Подход к тестированию хранилища данных на базе MS SQL Server
tSQLt
Изолированный запуск тестов
Удобство копирования теста с нуля
Удобство анализа результатов
Сравнение целых таблиц
Подход к тестированию хранилища данных на базе MS SQL Server
2
3
2
4
Expected result
Expected result
Test result
Test result
=
?
Подход к тестированию хранилища данных на базе MS SQL Server
tSQLt. Integration
Для облегчения создания тестов необходима библиотека, на которую должна
быть ссылка в проекте тестов.
Подход к тестированию хранилища данных на базе MS SQL Server
tSQLt. Test method
[TestMethod]
public void DWH_Etl_Dictionaries_Test_add()
{
// Добавить новую запись в источник
.
ApplyScript("DWH.Dictionaries.Test.source.add-source.sql");
// Добавить новую запись в ожидаемый набор
ApplyScript("DWH.Dictionaries.Test.expected.add-expected.sql");
// Запустить пакет
ExecSsis(packageName);
// Проверить, что новая запись в DWH появилась.
RunTest("[UnitTests].[Test_Add]");
}
Подход к тестированию хранилища данных на базе MS SQL Server
Procedure for a procedure
Хранимая процедура для вычисления
определённой сущности нуждается в
написании отдельной хранимой процедуры
для проверки полученного результата.
Подход к тестированию хранилища данных на базе MS SQL Server
DECLARE @Values TABLE (@Data,
@ EXPECTED
)
INSERT INTO @Values (@Data,
@ EXPECTED
)VALUES (
тестовые
данные, созданные с помощью PICT Tool
)
DECLARE date_cursor CURSOR FOR
SELECT (@Data,
@ EXPECTED
) FROM @Values
SELECT
@RES = [DWH.Stage].tmp_sales.GetSalesAccountingDate(@Data);
EXEC tSQLt.AssertEquals @expected =
@EXPECTED
, @Actual = @RES,
@message = @MES;
Procedure example
Подход к тестированию хранилища данных на базе MS SQL Server
Test Manager