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

Transcript
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