2. Тестирование в BI проектах. Содержание.
Часть 1. Что такое Business Intelligence
Microsoft Business Intelligence Technology Stack
- Extraction-Transformation-Load
- Analytical Services
- Reporting Services
Тестирование в BI проектах
- Задачи
- Особенности
- Сложности тестирования
Основные вызовы стоящие перед QA в BI
Часть 2. Пример построения Framework для юнит
тестирования
Заключение
3. Тестирование в BI проектах
Часть 1. Что такое Business Intelligence
Microsoft Business Intelligence Technology Stack
- Extraction-Transformation-Load
- Analytical Services
- Reporting Services
Тестирование в BI проектах
- Задачи
- Особенности
- Сложности тестирования
Основные вызовы стоящие перед QA в BI
Часть 2. Пример построения Framework для юнит
тестирования
Заключение
4. Что такое Business Intelligence
Business intelligence (BI) это широкая категория
приложений и технологий для сбора, хранения, анализа
и предоставления доступа к данным
Data Warehouse (DWH) – централизованный
репозиторий который содержит данные с различных
источников и транформирует их в общепринятую,
многомерную модель данных для эффективного анализа
ETL (от англ. Extract, Transform, Load) — один из
основных процессов в управлении DWH, который включает в
себя:
- извлечение данных из внешних источников;
- их трансформация и очистка
- загрузка их в хранилище данных
7. Тестирование в BI проектах
Часть 1. Что такое Business Intelligence
Microsoft Business Intelligence Technology Stack
- Extraction-Transformation-Load
- Analytical Services
- Reporting Services
Тестирование в BI проектах
- Задачи
- Особенности
- Сложности тестирования
Основные вызовы стоящие перед QA в BI
Часть 2. Пример построения Framework для юнит
тестирования
Заключение
8. Тестирование в BI проектах
Часть 1. Что такое Business Intelligence
Microsoft Business Intelligence Technology Stack
- Extraction-Transformation-Load
- Analytical Services
- Reporting Services
Тестирование в BI проектах
- Задачи
- Особенности
- Сложности тестирования
Основные вызовы стоящие перед QA в BI
Часть 2. Пример построения Framework для юнит
тестирования
Заключение
9. Что такое Business Intelligence
Microsoft BI
Database Reporting
Engine Services
Integration
Services
Analytical
Services
11. Database Services. Особенности
Как ведется разработка ?
DB
Что тестировать ?
Какой существует тест-инструментарий ?
Development:
- Performed in T-SQL
- Results stored in Database
What to test:
- Stored procedures
- DB constrains
- Deployment routine
Test tools: - Integrity & System tests
- DB related frameworks* - Performance
*DBUnit, DBTestUnit, …
12. Reporting Services. Особенности
Как ведется разработка ?
SSRS
Что тестировать ?
Какой существует тест-инструментарий ?
Development:
- Performed in VS Designer
- Displayed in browser
What to test:
- Page layout
- Performance
Test tools: - Report values ?
- Web testing tools*
*Selenium, QTP, TestComplete,…
13. Integration Services. Особенности
Как ведется разработка ?
SSIS Что тестировать ?
Какой существует тест-инструментарий ?
Development:
- Performed in SSIS Designer
- Results stored in database
14. Integration Services
SSIS
Extract
Извлечение данных из источников данных
Transformation
Может включать в себя очистку, фильтрацию,
валидацию, применение бизнес логики
Load
Загрузку уже подготовленных данных в
warehouse.
16. Integration Services
Development:
Drag-&-Drop programming
SSIS
.Net language scripts support
SQL scripts support
17. Integration Services. Особенности
Как ведется разработка ?
SSIS Что тестировать ?
Какой существует тест-инструментарий ?
Development:
- Performed in SSIS Designer
- Results stored in database
What to test:
- ETL logic*
Test tools: - Integration testing
- No tools available - System testing
- No compatibility between ETL - Performance
vendors - …
18. Analytical Services. Особенности
Как ведется разработка ?
Что тестировать ?
SSAS Какой существует тест-инструментарий ?
Development:
- Multi Dimensional Query (MDX)
language
- Results stored in SSAS database
20. Analysis Services. Особенности
Как ведется разработка ?
Что тестировать ?
Какой существует тест-инструментарий ?
SSAS
Development:
- Multi Dimensional Query (MDX)
language
- Results stored in SSAS database
What to test:
Test tools: - Facts-to-Dimensional Links
- No tools available - Aggregation rules validation
- No compatibility between ETL - Calculation rules validation
vendors
21. Тестирование в BI проектах
Часть 1. Что такое Business Intelligence
Microsoft Business Intelligence Technology Stack
- Extraction-Transformation-Load
- Analytical Services
- Reporting Services
Тестирование в BI проектах
- Задачи
- Особенности
- Сложности тестирования
Основные вызовы стоящие перед QA в BI
Часть 2. Пример построения Framework для юнит
тестирования
Заключение
22. Тестирование в BI проектах
Часть 1. Что такое Business Intelligence
Microsoft Business Intelligence Technology Stack
- Extraction-Transformation-Load
- Analytical Services
- Reporting Services
Тестирование в BI проектах
- Задачи
- Особенности
- Сложности тестирования
Основные вызовы стоящие перед QA в BI
Часть 2. Пример построения Framework для юнит
тестирования
Заключение
23. Тестирование в BI проектах
Особенности
- Загрузка данных в несколько этапов
- Часто видимый результат только в конце
- Поэтапное тестирование для раннего и точного
обнаружения
- Автоматизация тестирования – необходима
- Часто тестирование проводится самими разработчиками
- До 60% тестирования призодится на ETL
24. Тестирование в BI проектах
Часть 1. Что такое Business Intelligence
Microsoft Business Intelligence Technology Stack
- Extraction-Transformation-Load
- Analytical Services
- Reporting Services
Тестирование в BI проектах
- Задачи
- Особенности
- Сложности тестирования
Основные вызовы стоящие перед QA в BI
Часть 2. Пример построения Framework для юнит
тестирования
Заключение
25. Тестирование в BI проектах
Часть 1. Что такое Business Intelligence
Microsoft Business Intelligence Technology Stack
- Extraction-Transformation-Load
- Analytical Services
- Reporting Services
Тестирование в BI проектах
- Задачи
- Особенности
- Сложности тестирования
Основные вызовы стоящие перед QA в BI
Часть 2. Пример построения Framework для юнит
тестирования
Заключение
26. Основные вызовы которые стоят перед QA
Технические:
1. Большой объем данных.
В среде BI введен термин – «Big Data».
2. Не устоявшиеся стандарты разработки.
У BI нет своего «SQL-92» стандарта
3. Отсутствие инcтрументов тестирования, а
использование существующих не всегда
продуктивно
Организационные:
1. Недостаток ресурсов. Как
человеческих так и технических.
2. Недостаток четкости требований в
ходе разработки
27. Тестирование в BI проектах
Часть 1. Что такое Business Intelligence
Microsoft Business Intelligence Technology Stack
- Extraction-Transformation-Load
- Analytical Services
- Reporting Services
Тестирование в BI проектах
- Задачи
- Особенности
- Сложности тестирования
Основные вызовы стоящие перед QA в BI
Часть 2. Пример построения Framework для юнит
тестирования
Заключение
28. Тестирование в BI проектах
Часть 1. Что такое Business Intelligence
Microsoft Business Intelligence Technology Stack
- Extraction-Transformation-Load
- Analytical Services
- Reporting Services
Тестирование в BI проектах
- Задачи
- Особенности
- Сложности тестирования
Основные вызовы стоящие перед QA в BI
Часть 2. Пример построения Framework-а для тестирования в
BI проектах
Заключение
32. Business Intelligence Project
Initial Project state:
- Lots of running applications and businesses relayed on them
- We are focused on ETL development for enterprise level DWH
- Old systems should be switched off and dataflows should be
switched to enterprise DWH.
Challenges:
- Lots of legacy systems, different product versions, solution
vendors, lack of documentation
- Time-shared test environments => time limitations for QA stage.
- Migration should be “transparent” for running businesses
33. General Data Flow
File
Source DWH
system
1:1 copy
USB Mapping &
report logic
ETL ETL ETL
Data- Report
STG1 STG2 Cube
DataWarehouse mart
Mapping &
1:1 copy report logic
Pro
Link
Report
35. Test Level approach
Unit test Integration Non-functional System test/
Unit test
Design test test test Acceptance
Source system DWH (E2E) (E2E) test
Performance
Business design: Data completeness • Initial load
• Design requirements • Format • Incremental load
• Business terms • All rows • Load of data with failure
• Targets (Number, • All fields intensity
Currency, Amount,
Percentage) Data transformation Interruption with load
• Periods, Format, • Business rules
Testdata • Design spesification Stress (e.g. 5 days load)
Data quality
Data completeness • Reports
• Validation Rules
• Format • interaction between • Cubes
• Errorlogg
• All rows components • Files
• All fields • Ensure data flow • Access Control
Configuration
• Values in all fields through each part of the • Operating procedures incl
Master package system chain • error handling
Data transformation (touchpoints) • logging
• Business rules
• Design spesification
• monitoring
36. Where ETL Test Automation starts
Unit test Integration Non-functional System test/
Unit test
Design test test test Acceptance
Source system DWH (E2E) (E2E) test
Data completeness
• Format
• All rows
• All fields
• Values in all fields
Data transformation
• Business rules
• Design spesification
Data completeness Data quality
• Format • Validation Rules • interaction between
• All rows • Errorlogg components
• All fields • Ensure data flow
• Values in all fields Configuration through each part of the
system chain
Data transformation Master package (touchpoints)
• Business rules
• Design spesification
38. Error Sources from ETL perspective
File
Source DWH
system
USB 1:1 kopi
Mapping &
report logic
ETL ETL ETL
Data- Report
STG1 STG2 Cube
DataWarehouse mart
Mapping &
Pro 1:1 kopi report logic
Link
SourceOfErrorIII
Staging 2 Report
SourceOfErrorII SourceOfErrorIV SourceOfErrorVI
Staging 1 ETL DWH ETL Datamart
39. Test automation framework. Tools selection
- Keep things simple for customer. BI developers would not
learn C# or other programming language
- Reuse existing approaches for configuration, Logging, error
handling
Error
SSIS Development SSIS Unit test
Framework framework
Test automation framework. Tool selection
Log
Config
40. Test automation framework. Structure
Data Quality Test
Configuration
Logging
Core/Test Interface
Error Handling
Core
SSIS SQL based test
Package Test
41. Test automation framework. Control package
Tests
Parameters
loading
Prepare variables with params for Test Cases &
current testcase execution Test params
sets arranging
For each Test
Run UnitTest
case loop
package
container
Test automation framework. Control package
Run “Log Test Connections
Result” package configured via
“Package
Configuration”
42. Four-phase test
Main idea:
- Prepare initial data
- Execute package under test (PUT)
- Validate transferred data
- Clean up database
43. Four-phase test. Test scenarios
Test Type Description
Row Count Ensures that count of tranfered rows are
as expected
Boundary values Min & Max values for numeric fields.
Min/max length for varchar fields
NULL value Try NULL values where its possible
Out-Of-Type boundary Misplaced data
value
Four-Phase test case structure
Business Logic Test Joins, Keys generation, Mapping,
Cleansing
Random values load Loading randomly generated values test
44. Row Count test design example
Purpose: Ensures that number of arrived rows is exactly as
expected
50. Step-by-step test construction. “Verify” phase
1.Put names of schema and table in test parameters.
All we need is correct setup:
<test>
…
<params>
…
<param name='schema' type='String' value='dbo'/>
<param name='table' type='String' value='STG2_FAK_Beholdning_128'/>
…
</params>
</test>
2. Put expected row count in CheckRows template.
-----------
-- Test SQL logic
SET @Statement = '
DECLARE @Test_Result varchar(8000)
DECLARE @Test_Severity INT
DECLARE @exp_value int
DECLARE @act_value int
SET @exp_value = 20 --place expected value there
52. Тестирование в BI проектах
Business Intelligence - интересная область в разработке
программного обеспечения.
Тестирование здесь особенно критично, т.к. данные
предоставляемые BI напрямую влияют на принятие решений
Работая в условиях BigData, хороший тестировщик просто обречен
использовать автоматизацию в своей работе
На сегодня готовых фреймворков для помощи в такой работе нет
Мы рассмотрели пример создания такого фреймворка для
тестирования ETL от Microsoft с использованием SSIS
Что дальше ? Развитие фреймворка, создание новых тестов, ...
Портирование фреймворка под BI системы других производителей
53. Тестирование в BI проектах
Часть 1. Что такое Business Intelligence
Microsoft Business Intelligence Technology Stack
- Extraction-Transformation-Load
- Analytical Services
- Reporting Services
Тестирование в BI проектах
- Задачи
- Особенности
- Сложности тестирования
Основные вызовы стоящие перед QA в BI
Часть 2. Пример построения Framework для юнит
тестирования