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
Подход к тестированию хранилища данных на базе MS SQL Server Run tests
Подход к тестированию хранилища данных на базе MS SQL Server Performance Testing Определение предмета тестирования Согласование цифр: интервал времени запуска импорта; скорость импорта данных; объём исторических данных; объём изменяющихся данных.
Подход к тестированию хранилища данных на базе MS SQL Server Test data via script INSERT 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 s2 GO INSERT INTO [dbo].[Sales] ([SalesGUID] ,[ ProductID ]) SELECT NEWID() ,[ ProductID ] FROM [dbo].[ProductList] GO
Подход к тестированию хранилища данных на базе MS SQL Server Test data via ETL
Подход к тестированию хранилища данных на базе MS SQL Server UAT Заказчик определяет Критерии приемки Заказчик определяет Сущности («разрез» данных) приемки Заказчик определяет реестр приемлемых расхождений
Подход к тестированию хранилища данных на базе 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>
Подход к тестированию хранилища данных на базе MS SQL Server The end … Фиксация тест-кейсов Автоматизация основной логики процесса Ручные тесты имеют место быть Согласование UAT в начале проекта Особое внимание уделить тестированию производительности
Подход к тестированию хранилища данных на базе MS SQL Server