Post on 13-Apr-2017
Software quality assurance days18 Международная конференция по вопросам качества ПОsqadays.com
Москва. 27–28 ноября 2015
Юлия КрючковаKaspersky Lab. Москва, Россия
Подход к тестированию хранилища данных на базе MS SQL Server
Подход к тестированию хранилища данных на базе MS SQL Server
IT DepartmentIT DepartmentDWH Development
Подход к тестированию хранилища данных на базе MS SQL Server
• Информационная БД• Содержит данные, поступающие из
различных оперативных бд и внешних источников
• Предназначена для подготовки отчётов и бизнес-анализа
• Данные доступны только для чтения.
Data WareHouse
Подход к тестированию хранилища данных на базе MS SQL Server
Data Flow
Подход к тестированию хранилища данных на базе MS SQL Server
Testing types
Интеграционное тестирование Функциональное тестирование Тестирование производительности Регрессионное тестирование Пользовательское приемочное тестирование
Подход к тестированию хранилища данных на базе MS SQL Server
??? Framework Choice ???
Подход к тестированию хранилища данных на базе MS SQL Server
tSQLt
Изолированный запуск тестов Удобство копирования теста с нуля Удобство анализа результатов Сравнение целых таблиц
Подход к тестированию хранилища данных на базе MS SQL Server
2
3
2
4
=
Подход к тестированию хранилища данных на базе 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 FORSELECT (@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 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
Подход к тестированию хранилища данных на базе 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