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