Подход к тестированию хранилища данных на базе MS SQL Server

21
Software quality assurance days 18 Международная конференция по вопросам качества ПО sqadays.com Москва. 27–28 ноября 2015 Юлия Крючкова Kaspersky Lab. Москва, Россия Подход к тестированию хранилища данных на базе MS SQL Server

Transcript of Подход к тестированию хранилища данных на базе MS SQL Server

Page 1: Подход к тестированию хранилища данных на базе MS SQL Server

Software quality assurance days18 Международная конференция по вопросам качества ПОsqadays.com

Москва. 27–28 ноября 2015

Юлия КрючковаKaspersky Lab. Москва, Россия

Подход к тестированию хранилища данных на базе MS SQL Server

Page 2: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

IT DepartmentIT DepartmentDWH Development

Page 3: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

• Информационная БД• Содержит данные, поступающие из

различных оперативных бд и внешних источников

• Предназначена для подготовки отчётов и бизнес-анализа

• Данные доступны только для чтения.

Data WareHouse

Page 4: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

Data Flow

Page 5: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

Testing types

Интеграционное тестирование Функциональное тестирование Тестирование производительности Регрессионное тестирование Пользовательское приемочное тестирование

Page 6: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

??? Framework Choice ???

Page 7: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

tSQLt

Изолированный запуск тестов Удобство копирования теста с нуля Удобство анализа результатов Сравнение целых таблиц

Page 8: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

2

3

2

4

=

Page 9: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

tSQLt. Integration Для облегчения создания тестов необходима библиотека, на которую должна быть ссылка в проекте тестов.

Page 10: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе 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]");

}

Page 11: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

Procedure for a procedure

Хранимая процедура для вычисления определённой сущности нуждается в написании отдельной хранимой процедуры для проверки полученного результата.

Page 12: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

DECLARE @Values TABLE (@Data,@ EXPECTED)

INSERT INTO @Values (@Data,@ EXPECTED) VALUES (тестовые данные, созданные с помощью PICT Tool)

DECLARE date_cursor CURSOR FORSELECT (@Data,@ EXPECTED) FROM @Values

• • •

SELECT @RES = [DWH.Stage].tmp_sales.GetSalesAccountingDate(@Data);

EXEC tSQLt.AssertEquals @expected = @EXPECTED, @Actual = @RES, @message = @MES;

• • •

Procedure example

Page 13: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

Test Manager

Page 14: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

Run tests

Page 15: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

Performance Testing

Определение предмета тестирования Согласование цифр:

интервал времени запуска импорта; скорость импорта данных; объём исторических данных; объём изменяющихся данных.

Page 16: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

Test data via scriptINSERT INTO [dbo].[ProductList]

([ProductID], [ModifiedDate]) SELECT TOP 5000000

ROW_NUMBER() OVER (ORDER BY s1.[object_id]) ,GETUTCDATE()

FROM [sys].all_columns s1 CROSS JOIN [sys].all_columns s2GO

INSERT INTO [dbo].[Sales] ([SalesGUID] ,[ProductID])

SELECT NEWID() ,[ProductID] FROM [dbo].[ProductList]GO

Page 17: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

Test data via ETL

Page 18: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

UAT

Заказчик определяет Критерии приемки Заказчик определяет Сущности («разрез» данных)

приемки Заказчик определяет реестр приемлемых

расхождений

Page 19: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

Problems В тесте возможно запустить пакет только из одного SSIS проекта.

<profiles>

<user name="kryuchkova"

ssis-packages-location = "..\..\..\..\..\Source\Etl\DWH.Etl.Dictionaries\bin\Development\DWH.Etl.Dictionaries.ispac“

ssis-packages-config="E:..\..\..\..\..\Source\Etl\Configurations\Kryuchkova.dtsConfig“

connection="Data Source=testdb.ru;Initial Catalog=DWH;Integrated Security=True;Pooling=False"> </user>

</profiles>

Page 20: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server

The end …

Фиксация тест-кейсовАвтоматизация основной логики процессаРучные тесты имеют место бытьСогласование UAT в начале проектаОсобое внимание уделить тестированию

производительности

Page 21: Подход к тестированию хранилища данных на базе MS SQL Server

Подход к тестированию хранилища данных на базе MS SQL Server