Тестирование в BI проектах

2,646 views

Published on

SQA Days 11. День 1. Секция А
Дмитрий Романов
Itera Consulting Ukraine
Украина

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,646
On SlideShare
0
From Embeds
0
Number of Embeds
215
Actions
Shares
0
Downloads
41
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Тестирование в BI проектах

  1. 1. Тестированиев Business Intelligence проектах Дмитрий Романов. Itera Consulting dmitriy.romanov@gmail.com
  2. 2. Тестирование в BI проектах. Содержание.Часть 1. Что такое Business IntelligenceMicrosoft Business Intelligence Technology Stack - Extraction-Transformation-Load - Analytical Services - Reporting ServicesТестирование в BI проектах - Задачи - Особенности - Сложности тестированияОсновные вызовы стоящие перед QA в BIЧасть 2. Пример построения Framework для юниттестированияЗаключение
  3. 3. Тестирование в BI проектахЧасть 1. Что такое Business IntelligenceMicrosoft Business Intelligence Technology Stack - Extraction-Transformation-Load - Analytical Services - Reporting ServicesТестирование в BI проектах - Задачи - Особенности - Сложности тестированияОсновные вызовы стоящие перед QA в BIЧасть 2. Пример построения Framework для юниттестированияЗаключение
  4. 4. Что такое Business IntelligenceBusiness intelligence (BI) это широкая категорияприложений и технологий для сбора, хранения, анализаи предоставления доступа к даннымData Warehouse (DWH) – централизованныйрепозиторий который содержит данные с различныхисточников и транформирует их в общепринятую,многомерную модель данных для эффективного анализаETL (от англ. Extract, Transform, Load) — один изосновных процессов в управлении DWH, который включает всебя:- извлечение данных из внешних источников;- их трансформация и очистка- загрузка их в хранилище данных
  5. 5. Что такое Business Intelligence
  6. 6. 2012 Gartner Magic Quadrant for BI Platforms
  7. 7. Тестирование в BI проектахЧасть 1. Что такое Business IntelligenceMicrosoft Business Intelligence Technology Stack - Extraction-Transformation-Load - Analytical Services - Reporting ServicesТестирование в BI проектах - Задачи - Особенности - Сложности тестированияОсновные вызовы стоящие перед QA в BIЧасть 2. Пример построения Framework для юниттестированияЗаключение
  8. 8. Тестирование в BI проектахЧасть 1. Что такое Business IntelligenceMicrosoft Business Intelligence Technology Stack - Extraction-Transformation-Load - Analytical Services - Reporting ServicesТестирование в BI проектах - Задачи - Особенности - Сложности тестированияОсновные вызовы стоящие перед QA в BIЧасть 2. Пример построения Framework для юниттестированияЗаключение
  9. 9. Что такое Business Intelligence Microsoft BI Database Reporting Engine Services Integration Services Analytical Services
  10. 10. Что такое Business Intelligence Analysis SSIS Database Reporting
  11. 11. Database Services. Особенности Как ведется разработка ? DB Что тестировать ? Какой существует тест-инструментарий ? Development: - Performed in T-SQL - Results stored in Database What to test: - Stored procedures - DB constrains - Deployment routineTest tools: - Integrity & System tests- DB related frameworks* - Performance*DBUnit, DBTestUnit, …
  12. 12. Reporting Services. Особенности Как ведется разработка ? SSRS Что тестировать ? Какой существует тест-инструментарий ? Development: - Performed in VS Designer - Displayed in browser What to test: - Page layout - PerformanceTest tools: - Report values ?- Web testing tools**Selenium, QTP, TestComplete,…
  13. 13. Integration Services. Особенности Как ведется разработка ? SSIS Что тестировать ? Какой существует тест-инструментарий ?Development:- Performed in SSIS Designer- Results stored in database
  14. 14. Integration Services SSISExtractИзвлечение данных из источников данныхTransformationМожет включать в себя очистку, фильтрацию,валидацию, применение бизнес логикиLoadЗагрузку уже подготовленных данных вwarehouse.
  15. 15. Integration Services Source ETL Data Warehouse
  16. 16. Integration Services Development: Drag-&-Drop programming SSIS .Net language scripts support SQL scripts support
  17. 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 - Performancevendors - …
  18. 18. Analytical Services. Особенности Как ведется разработка ? Что тестировать ? SSAS Какой существует тест-инструментарий ?Development:- Multi Dimensional Query (MDX) language- Results stored in SSAS database
  19. 19. Analytical Processing
  20. 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 validationvendors
  21. 21. Тестирование в BI проектахЧасть 1. Что такое Business IntelligenceMicrosoft Business Intelligence Technology Stack - Extraction-Transformation-Load - Analytical Services - Reporting ServicesТестирование в BI проектах - Задачи - Особенности - Сложности тестированияОсновные вызовы стоящие перед QA в BIЧасть 2. Пример построения Framework для юниттестированияЗаключение
  22. 22. Тестирование в BI проектахЧасть 1. Что такое Business IntelligenceMicrosoft Business Intelligence Technology Stack - Extraction-Transformation-Load - Analytical Services - Reporting ServicesТестирование в BI проектах - Задачи - Особенности - Сложности тестированияОсновные вызовы стоящие перед QA в BIЧасть 2. Пример построения Framework для юниттестированияЗаключение
  23. 23. Тестирование в BI проектахОсобенности- Загрузка данных в несколько этапов- Часто видимый результат только в конце- Поэтапное тестирование для раннего и точногообнаружения- Автоматизация тестирования – необходима- Часто тестирование проводится самими разработчиками- До 60% тестирования призодится на ETL
  24. 24. Тестирование в BI проектахЧасть 1. Что такое Business IntelligenceMicrosoft Business Intelligence Technology Stack - Extraction-Transformation-Load - Analytical Services - Reporting ServicesТестирование в BI проектах - Задачи - Особенности - Сложности тестированияОсновные вызовы стоящие перед QA в BIЧасть 2. Пример построения Framework для юниттестированияЗаключение
  25. 25. Тестирование в BI проектахЧасть 1. Что такое Business IntelligenceMicrosoft Business Intelligence Technology Stack - Extraction-Transformation-Load - Analytical Services - Reporting ServicesТестирование в BI проектах - Задачи - Особенности - Сложности тестированияОсновные вызовы стоящие перед QA в BIЧасть 2. Пример построения Framework для юниттестированияЗаключение
  26. 26. Основные вызовы которые стоят перед QAТехнические:1. Большой объем данных.В среде BI введен термин – «Big Data».2. Не устоявшиеся стандарты разработки.У BI нет своего «SQL-92» стандарта3. Отсутствие инcтрументов тестирования, аиспользование существующих не всегдапродуктивно Организационные: 1. Недостаток ресурсов. Как человеческих так и технических. 2. Недостаток четкости требований в ходе разработки
  27. 27. Тестирование в BI проектахЧасть 1. Что такое Business IntelligenceMicrosoft Business Intelligence Technology Stack - Extraction-Transformation-Load - Analytical Services - Reporting ServicesТестирование в BI проектах - Задачи - Особенности - Сложности тестированияОсновные вызовы стоящие перед QA в BIЧасть 2. Пример построения Framework для юниттестированияЗаключение
  28. 28. Тестирование в BI проектахЧасть 1. Что такое Business IntelligenceMicrosoft Business Intelligence Technology Stack - Extraction-Transformation-Load - Analytical Services - Reporting ServicesТестирование в BI проектах - Задачи - Особенности - Сложности тестированияОсновные вызовы стоящие перед QA в BIЧасть 2. Пример построения Framework-а для тестирования вBI проектахЗаключение
  29. 29. Business Intelligence Project Пример построенияфреймворка для тестирования в BI проекте
  30. 30. Reports MSSQL 2KCRM Database IBM DB2 Database Olap AnalysisERP “Old” DWHOPS Data Mining CRM
  31. 31. Business Intelligence Project
  32. 32. Business Intelligence ProjectInitial 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, solutionvendors, lack of documentation - Time-shared test environments => time limitations for QA stage. - Migration should be “transparent” for running businesses
  33. 33. General Data Flow FileSource DWHsystem 1:1 copyUSB Mapping & report logic ETL ETL ETL Data- Report STG1 STG2 Cube DataWarehouse mart Mapping & 1:1 copy report logicProLink Report
  34. 34. Error Sources FileSource DWHsystemUSB 1:1 kopi Mapping & report logic ETL ETL ETL Data- Report STG1 STG2 Cube DataWarehouse mart Mapping &Pro 1:1 kopi report logicLink SourceOfErrorIII Staging 2 Report SourceOfErrorII SourceOfErrorIV SourceOfErrorVI SourceOfErrorVII Staging 1 ETL DWH ETL Datamart ETL Cube SourceOfErrorVIIISourceOfErrorI Repots/ FileSourceSystem SourceOfErrorV DWH
  35. 35. Test Level approach Unit test Integration Non-functional System test/ Unit test Design test test test Acceptance Source system DWH (E2E) (E2E) test PerformanceBusiness design: Data completeness • Initial load• Design requirements • Format • Incremental load• Business terms • All rows • Load of data with failure• Targets (Number, • All fields intensityCurrency, Amount,Percentage) Data transformation Interruption with load• Periods, Format, • Business rulesTestdata • 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. 36. Where ETL Test Automation starts Unit test Integration Non-functional System test/ Unit testDesign 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
  37. 37. Error Sources FileSource DWHsystemUSB 1:1 kopi Mapping & report logic ETL ETL ETL Data- Report STG1 STG2 Cube DataWarehouse mart Mapping &Pro 1:1 kopi report logicLink SourceOfErrorIII Staging 2 Report SourceOfErrorII SourceOfErrorIV SourceOfErrorVI SourceOfErrorVII Staging 1 ETL DWH ETL Datamart ETL Cube SourceOfErrorVIIISourceOfErrorI Repots/ FileSourceSystem SourceOfErrorV DWH
  38. 38. Error Sources from ETL perspective FileSource DWHsystemUSB 1:1 kopi Mapping & report logic ETL ETL ETL Data- Report STG1 STG2 Cube DataWarehouse mart Mapping &Pro 1:1 kopi report logicLink SourceOfErrorIII Staging 2 Report SourceOfErrorII SourceOfErrorIV SourceOfErrorVI Staging 1 ETL DWH ETL Datamart
  39. 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. 40. Test automation framework. Structure Data Quality Test Configuration Logging Core/Test Interface Error Handling Core SSIS SQL based testPackage Test
  41. 41. Test automation framework. Control package Tests Parameters loadingPrepare 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. 42. Four-phase testMain idea:- Prepare initial data- Execute package under test (PUT)- Validate transferred data- Clean up database
  43. 43. Four-phase test. Test scenariosTest Type DescriptionRow Count Ensures that count of tranfered rows are as expectedBoundary values Min & Max values for numeric fields. Min/max length for varchar fieldsNULL value Try NULL values where its possibleOut-Of-Type boundary Misplaced datavalue Four-Phase test case structureBusiness Logic Test Joins, Keys generation, Mapping, CleansingRandom values load Loading randomly generated values test
  44. 44. Row Count test design examplePurpose: Ensures that number of arrived rows is exactly asexpected
  45. 45. Step-by-step test construction. “Setup” phasePurpose: Place test data into source table
  46. 46. “Setup” phase. PRE- execution file exampleDELETE from PG.STG1_TegningGOinsertPG.STG1_Tegning(ENGMENT_NUM,DISTRIBUTOR_KDE,ISIN_NUM,EMISJON_NUM,VPS_KTO_NUM,TREKK_KTO_NUM,UTBYTTE_KTO_NUM,TEGNING_DAT,INVESTERT_KAP_BEL,TEGN_OMKOSTN_PST,STATUS_KDE,SELGER_SGN,SELGER_NVN,SELGER_EMAIL_ADR,SELGER_2_SGN,SELGER_2_NVN,SELGER_2_EMAIL_ADR,PROVISJ_SELSK_NUM,PROVISJ_KJORT_DAT,REG_SGN,REG_TMS,SIST_ENDRET_SGN,SIST_ENDRET_TMS,KOMMENTAR_TXT,SELGER_FNR_NUM,SELGER_2_FNR_NUM,Lastet_dat) values(1111111111111 ,06,NO0010291933,6,091000836907,15942971696,15942971696,Nov 14 200612:00AM,150000.00000000,2.700,2,AEA,„XXXXXXXXXX,null,null,null,null,1,Jan 9 2007 12:00AM,UCJ,Nov 14 20064:53PM,ZRR,Jan 9 2007 8:13AM,null,null,null,Jan 13 2012 11:41AM)insertPG.STG1_Tegning(ENGMENT_NUM,DISTRIBUTOR_KDE,ISIN_NUM,EMISJON_NUM,VPS_KTO_NUM,TREKK_KTO_NUM,UTBYTTE_KTO_NUM,TEGNING_DAT,INVESTERT_KAP_BEL,TEGN_OMKOSTN_PST,STATUS_KDE,SELGER_SGN,SELGER_NVN,SELGER_EMAIL_ADR,SELGER_2_SGN,SELGER_2_NVN,SELGER_2_EMAIL_ADR,PROVISJ_SELSK_NUM,PROVISJ_KJORT_DAT,REG_SGN,REG_TMS,SIST_ENDRET_SGN,SIST_ENDRET_TMS,KOMMENTAR_TXT,SELGER_FNR_NUM,SELGER_2_FNR_NUM,Lastet_dat) values(„1111111111111,06,NO0010291933,6,091000823988,91001854181,91001215421,Nov 15 200612:00AM,150000.00000000,2.700,2,FUS, XXXXXXXXXX ,null,null,null,null,1,Jan 9 2007 12:00AM,EI7,Nov 15 20069:27AM,ZRR,Jan 9 2007 8:13AM,null,null,null,Jan 13 2012 11:41AM)insertPG.STG1_Tegning(ENGMENT_NUM,DISTRIBUTOR_KDE,ISIN_NUM,EMISJON_NUM,VPS_KTO_NUM,TREKK_KTO_NUM,UTBYTTE_KTO_NUM,TEGNING_DAT,INVESTERT_KAP_BEL,TEGN_OMKOSTN_PST,STATUS_KDE,SELGER_SGN,SELGER_NVN,SELGER_EMAIL_ADR,SELGER_2_SGN,SELGER_2_NVN,SELGER_2_EMAIL_ADR,PROVISJ_SELSK_NUM,PROVISJ_KJORT_DAT,REG_SGN,REG_TMS,SIST_ENDRET_SGN,SIST_ENDRET_TMS,KOMMENTAR_TXT,SELGER_FNR_NUM,SELGER_2_FNR_NUM,Lastet_dat) values(1111111111111 ,81,NO0010291933,6,091000836915,10901034414,10901034414,Nov 15 200612:00AM,100000.00000000,2.700,2,FWS, XXXXXXXXXX ,null,null,null,null,1,Jan 9 2007 12:00AM,EI7,Nov 15 20069:33AM,ZRR,Jan 9 2007 9:24AM,selger: helge johansen,null,null,Jan 13 2012 11:41AM)Insert…..GOupdate statistics PG.STG1_TegningGO
  47. 47. Step-by-step test construction. “Exercise” phasePurpose: Perform data transfer by invoking Package UnderTest (PUT)
  48. 48. Step-by-step test construction. “Exercise” phasePackage Under Test (PUT) lunching from test runnerAll we need is correct setup:<test> <name> [STG2_FAK_Beholdning_128.dtsx].[Row count] </name> <description> RowCount ETL unit test </description> <params> <param name=TestType type=String value="unitTest"/> <param name=UnitTestPackage value=UnitTestRunner.dtsx/> <param name=ConnectionManager type=String value=STAGING OleDb/> <param name=schema type=String value=dbo/> <param name=table type=String value=STG2_FAK_Beholdning_128/> <param name=PackageUnderTest type=String value=STG2_FAK_Beholdning_128.dtsx/> <param name=PackagesPath type=String value=’MainETLSSISFinancial InstrumentsEiendomOptimer/> <param name=tag type=String value=staging2/> <param name=dummy/> </params></test>
  49. 49. Step-by-step test construction. “Verify” phasePurpose: Run assertion statement in T-SQL
  50. 50. Step-by-step test construction. “Verify” phase1.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 logicSET @Statement = DECLARE @Test_Result varchar(8000)DECLARE @Test_Severity INTDECLARE @exp_value intDECLARE @act_value intSET @exp_value = 20 --place expected value there
  51. 51. Step-by-step test construction. “Teardown” phasePurpose: Clean tables
  52. 52. Тестирование в BI проектахBusiness Intelligence - интересная область в разработкепрограммного обеспечения.Тестирование здесь особенно критично, т.к. данныепредоставляемые BI напрямую влияют на принятие решенийРаботая в условиях BigData, хороший тестировщик просто обречениспользовать автоматизацию в своей работеНа сегодня готовых фреймворков для помощи в такой работе нетМы рассмотрели пример создания такого фреймворка длятестирования ETL от Microsoft с использованием SSISЧто дальше ? Развитие фреймворка, создание новых тестов, ...Портирование фреймворка под BI системы других производителей
  53. 53. Тестирование в BI проектахЧасть 1. Что такое Business IntelligenceMicrosoft Business Intelligence Technology Stack - Extraction-Transformation-Load - Analytical Services - Reporting ServicesТестирование в BI проектах - Задачи - Особенности - Сложности тестированияОсновные вызовы стоящие перед QA в BIЧасть 2. Пример построения Framework для юниттестирования
  54. 54. Тестирование в BI проектах
  55. 55. Тестированиев Business Intelligence проектах Дмитрий Романов. Itera Consulting dmitriy.romanov@gmail.com

×