Подход к тестированию хранилища данных на базе ms sql server
TRANSCRIPT
![Page 1: Подход к тестированию хранилища данных на базе MS SQL Server](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/1.jpg)
Software quality assurance days18 Международная конференция по вопросам качества ПОsqadays.com
Москва. 27–28 ноября 2015
Юлия КрючковаKaspersky Lab. Москва, Россия
Подход к тестированию хранилища данных на базе MS SQL Server
![Page 2: Подход к тестированию хранилища данных на базе MS SQL Server](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/2.jpg)
Подход к тестированию хранилища данных на базе MS SQL Server
IT DepartmentIT DepartmentDWH Development
![Page 3: Подход к тестированию хранилища данных на базе MS SQL Server](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/3.jpg)
Подход к тестированию хранилища данных на базе MS SQL Server
• Информационная БД• Содержит данные, поступающие из
различных оперативных бд и внешних источников
• Предназначена для подготовки отчётов и бизнес-анализа
• Данные доступны только для чтения.
Data WareHouse
![Page 4: Подход к тестированию хранилища данных на базе MS SQL Server](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/4.jpg)
Подход к тестированию хранилища данных на базе MS SQL Server
Data Flow
![Page 5: Подход к тестированию хранилища данных на базе MS SQL Server](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/5.jpg)
Подход к тестированию хранилища данных на базе MS SQL Server
Testing types
Интеграционное тестирование Функциональное тестирование Тестирование производительности Регрессионное тестирование Пользовательское приемочное тестирование
![Page 6: Подход к тестированию хранилища данных на базе MS SQL Server](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/6.jpg)
Подход к тестированию хранилища данных на базе MS SQL Server
??? Framework Choice ???
![Page 7: Подход к тестированию хранилища данных на базе MS SQL Server](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/7.jpg)
Подход к тестированию хранилища данных на базе MS SQL Server
tSQLt
Изолированный запуск тестов Удобство копирования теста с нуля Удобство анализа результатов Сравнение целых таблиц
![Page 8: Подход к тестированию хранилища данных на базе MS SQL Server](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/8.jpg)
Подход к тестированию хранилища данных на базе MS SQL Server
2
3
2
4
=
![Page 9: Подход к тестированию хранилища данных на базе MS SQL Server](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/9.jpg)
Подход к тестированию хранилища данных на базе MS SQL Server
tSQLt. Integration Для облегчения создания тестов необходима библиотека, на которую должна быть ссылка в проекте тестов.
![Page 10: Подход к тестированию хранилища данных на базе MS SQL Server](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/10.jpg)
Подход к тестированию хранилища данных на базе 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](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/11.jpg)
Подход к тестированию хранилища данных на базе MS SQL Server
Procedure for a procedure
Хранимая процедура для вычисления определённой сущности нуждается в написании отдельной хранимой процедуры для проверки полученного результата.
![Page 12: Подход к тестированию хранилища данных на базе MS SQL Server](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/12.jpg)
Подход к тестированию хранилища данных на базе 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](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/13.jpg)
Подход к тестированию хранилища данных на базе MS SQL Server
Test Manager
![Page 14: Подход к тестированию хранилища данных на базе MS SQL Server](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/14.jpg)
Подход к тестированию хранилища данных на базе MS SQL Server
Run tests
![Page 15: Подход к тестированию хранилища данных на базе MS SQL Server](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/15.jpg)
Подход к тестированию хранилища данных на базе MS SQL Server
Performance Testing
Определение предмета тестирования Согласование цифр:
интервал времени запуска импорта; скорость импорта данных; объём исторических данных; объём изменяющихся данных.
![Page 16: Подход к тестированию хранилища данных на базе MS SQL Server](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/16.jpg)
Подход к тестированию хранилища данных на базе 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](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/17.jpg)
Подход к тестированию хранилища данных на базе MS SQL Server
Test data via ETL
![Page 18: Подход к тестированию хранилища данных на базе MS SQL Server](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/18.jpg)
Подход к тестированию хранилища данных на базе MS SQL Server
UAT
Заказчик определяет Критерии приемки Заказчик определяет Сущности («разрез» данных)
приемки Заказчик определяет реестр приемлемых
расхождений
![Page 19: Подход к тестированию хранилища данных на базе MS SQL Server](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/19.jpg)
Подход к тестированию хранилища данных на базе 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](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/20.jpg)
Подход к тестированию хранилища данных на базе MS SQL Server
The end …
Фиксация тест-кейсовАвтоматизация основной логики процессаРучные тесты имеют место бытьСогласование UAT в начале проектаОсобое внимание уделить тестированию
производительности
![Page 21: Подход к тестированию хранилища данных на базе MS SQL Server](https://reader036.vdocuments.site/reader036/viewer/2022081517/58ef5a4d1a28abd0748b45c5/html5/thumbnails/21.jpg)
Подход к тестированию хранилища данных на базе MS SQL Server