SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
„Stimmen meine Zahlen?“
          Automatisiertes Testen von BI-Applikationen
          mit dem Open Source Framework „Fitnesse“




                                                                                             20.01.2012

Stefan Kirner
inovex GmbH
Senior Consultant BI



            Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
Kurzvorstellung inovex GmbH



• IT-Dienstleister in Pforzheim, München und Köln
• 1999 gegründet, heute 80 Mitarbeiter
• Portfolio:
  • IT Consulting
  • Business Intelligence,
  • Application Development,
  • Systems Operations
  • Training
• Positionierung: Qualität, Technologiekompetenz, Kundenzufriedenheit
• Kunden: Marktführer aus DAX 100 und gehobenem Mittelstand,
  z. B. 1&1, Bosch, buch.de, Daimler, DB Schenker, Ehrmann, EnBW,
  GMX, Mahle, maxdome, Porsche, web.de
• mehr unter www.inovex.de
Warum automatisiert testen in BI Projekten?
oder „was BI von Softwareentwicklung lernen kann“


                   • Agiles Arbeiten auch im DWH Bereich
                       Ständige iterative Weiterentwicklung
                       Transparenz notwendig
                       Schnelles Feedback vom Kunden
                       Viele Änderungswünsche
                       Definition of Done
                       Sicherstellung hohe Qualität
                       Continuous Integration
                       Automatisierbare Tests
                   • Single Source of Truth
                       Vertrauen muss aufgebaut werden
                   • Wechselnde Team Members
                       Tests müssen reproduzierbar sein

                                                        Bildquelle: roomiccube@flickr.com; ;
Wer soll wann testen?



                   • Entwickler
                   • Fachabteilung
                   • Operatoren
                   • Prozesse
                    Testen im Team



                  • Vor und nach der Entwicklung
                  • Vor dem Deployment auf das System,
                    auf dem alles „done“ ist
                  • Nach dem Deployment auf dem Zielsystem
                  • Regelmäßig unbeaufsichtigte Ausführung
                   Automatisierung erforderlich


                                             Bildquelle: wanderlinse@flickr.com. kheelcenter@flickr.com
Besonderheiten von BI Projekten
und Konsequenzen für das Testing


         Rahmenbedingungen               Konsequenz für Testing
• BI Projekte sind data-driven     •   Focus auf Datentests, weil
• 80 % Entwicklungsaufwand im          höchste Prio
  Bereich ETL                      •   Persistenz: Tests auf Layer mit
• Persistenz in relationalem DWH       konsistentem Stand
• Hohe Datenvolumina               •   Volumen: Testen einer
• Erfassung von Metadaten              Teilmenge der Daten mit
                                       Mustern
             Zu testen             •   Inhalt: Testen von Kennzahlen
• Daten fachlicher Natur               & Dimensionsdaten
• Technische Constraints           •   Laufzeitfehler: Auswertung der
• Performance                          Metadaten!
• Security
• Code
Welche Daten als Quelle nehmen?



                  • Daten direkt aus Quellsystemen?
                      + Immer auf aktuellem Stand des DBMS
                      + Keine Anpassung der Ladestrecken für Tests
                      − Keine definierten Zustände der Daten
                      − Existenz hängt von Quellsystem ab

                  • Daten auf separater TestDB der Quelle?
                      + Definierte Zustände möglich
                      + Kontrolle über Existenz der zu testenden Daten
                      − Doppelter Aufwand bei DBMS Changes
                      − Anpassung Ladestrecken für Tests

                  • Spezielle Test Daten innerhalb der Quellsysteme?
                      + Alle obigen Vorteile
                      − Darf dem Quell- und abhängigen Systemen
                       keine Probleme machen
                                                         Bildquelle: avlxyz@flickr.com
Wie erstellt man definierte Zustände
innerhalb der Daten?


                    • Wiederholbarkeit der Tests ist wichtig
                    • Szenarien hängen ab von:
                            • Änderung der Quelldaten
                            • Zustand der Zieldaten
                            • Abbildung dieser Situationen in ETL Logik
                    •   Möglichst alle Szenarien testen
                    •   Benötigen Methoden für das
                            • Ändern der Testmuster in den Quelldaten /
                               Zieldaten
                            • Modaler Aufbau für Wiederholbarkeit
                    •   Datenänderungen via Stored Procs
                    •   Anstoßen ETL via SQL Server Agent




                                                          Bildquelle: palindrome6996@flickr.com
Wobei hilft uns da FitNesse?



                   • Testdefinition in wiki statt unit tests in Hochsprache
                   • Tests basieren auf Tabellen mit erwarteten Werten
                   • Zugriff auf Datenbanken mit dbfit
                   • Webbasierte Oberfläche
                   • Gruppierung von Tests
                   • Tests werden im xml-Format gespeichert
                   • Simples Setup
                   • Kommandozeilenaufrufe
                   • Erweiterbar durch eigene Fixtures
                   • Open Source & Free




                                                               Bildquelle: http://fitnesse.org/
Was ist FitNesse?
s. u. http://fitnesse.org




                            9
Projektbeispiel: Einstiegsseite
Projektbeispiel: Definition eines Tests als Wiki-Seite




                                                         11
Implementierung des Tests als Stored Procedure


                            Vorteile:
                            • rDBMS ist Homebase der BI Entwickler
                            • Einfache Bereitstellung von Methoden
                              zur Testdatenverwaltung
                            • Inhaltliche Vereinheitlichung Daten von
                              Quelle und Ziel in Views (z. B. Datum,
                              Dezimalstellen)
                            • Unterstützende Methoden in Functions
                            • Kapselung der Testlogik
                            • Rückgabe 0/1 erleichtert Interpretation


                            Tip:
                            • Datenrückgabe in XML erleichtert den
                              Vergleich (alle Daten in einem Feld)
Projektbeispiel: Testergebnis
Projektbeispiel: Überblick Regressionstests
Wie testet man im Team?
Integration in die Entwicklungsumgebung


                  • Daten für Tests in xml  Source Control (SC)
                  • Subfolder Recent Changes und Error Logs
                    nicht in SC
                  • Lokale Runtime für Entwickler
                    (keine Installation, jdk)
                  • Zentrales abgekoppeltes Fitnesse
                    als Windows Service
                          • Automatisierte Tests
                          • Adhoc Tests
                          • Zugriff für Nicht-Entwickler
Wie geht das Ganze „elektrisch“?
Automatisierten Starten von Tests


                   • Kommandozeilentool Testrunner
                   • Steuerung über beliebigen Scheduluer, z.B.
                     • SQL Server Agent
                     • crontab
                   • Ergebnisse in xml/html
                   • Parsing xml für weitere Verarbeitung
                   • optional: Senden via Database Mail




                                                            Bildquelle: rehacare@flickr.com
Projektbeispiel: Ergebnis der TestSuite
Gibt es Fragen?




                  Bildquelle:Stefan Baudy:-bast-@flickr.com
Interessante Informationen



• Fitnesse Acceptance Testing Framework
•    http://fitnesse.org/

• DBFit for Test Driven database development
•   http://gojko.net/fitnesse/dbfit/

• Buchtipp 1: Test Driven .Net Development with Fitnesse von Gojko Adzik
•   amazon.de http://goo.gl/2GuqY

• Buchtipp 2: Agile Datawarehousing von Ralph Hughes
•   amazon.de http://goo.gl/82d4z

• Ansprechpartner bei inovex:
•   Patrick Thoma (patrick.thoma@inovex.de, Tel. 0173/3181009)
•   Stefan Kirner (stefan.kirner@inovex.de, Tel. 0173/3181012)

Weitere ähnliche Inhalte

Andere mochten auch

2013 German Microbiology Testing Market: Opportunities and Strategies for Sup...
2013 German Microbiology Testing Market: Opportunities and Strategies for Sup...2013 German Microbiology Testing Market: Opportunities and Strategies for Sup...
2013 German Microbiology Testing Market: Opportunities and Strategies for Sup...ReportsnReports
 
Legilative and institutional trajectories for interfacing the research policy...
Legilative and institutional trajectories for interfacing the research policy...Legilative and institutional trajectories for interfacing the research policy...
Legilative and institutional trajectories for interfacing the research policy...Costy Costantinos
 
Life After Restructuring - Pamela Truitt
Life After Restructuring - Pamela TruittLife After Restructuring - Pamela Truitt
Life After Restructuring - Pamela TruittGPNP
 
Peter smart social v6
Peter smart social v6Peter smart social v6
Peter smart social v6Expion
 
Lgr贝多芬与月亮
Lgr贝多芬与月亮Lgr贝多芬与月亮
Lgr贝多芬与月亮LINWEIYUAN
 

Andere mochten auch (8)

Home Care in Slovakia
Home Care in SlovakiaHome Care in Slovakia
Home Care in Slovakia
 
2013 German Microbiology Testing Market: Opportunities and Strategies for Sup...
2013 German Microbiology Testing Market: Opportunities and Strategies for Sup...2013 German Microbiology Testing Market: Opportunities and Strategies for Sup...
2013 German Microbiology Testing Market: Opportunities and Strategies for Sup...
 
Legilative and institutional trajectories for interfacing the research policy...
Legilative and institutional trajectories for interfacing the research policy...Legilative and institutional trajectories for interfacing the research policy...
Legilative and institutional trajectories for interfacing the research policy...
 
Life After Restructuring - Pamela Truitt
Life After Restructuring - Pamela TruittLife After Restructuring - Pamela Truitt
Life After Restructuring - Pamela Truitt
 
Peter smart social v6
Peter smart social v6Peter smart social v6
Peter smart social v6
 
22 Al27 Defebrero2010
22 Al27 Defebrero201022 Al27 Defebrero2010
22 Al27 Defebrero2010
 
Lgr贝多芬与月亮
Lgr贝多芬与月亮Lgr贝多芬与月亮
Lgr贝多芬与月亮
 
Husky helpers
Husky helpersHusky helpers
Husky helpers
 

Ähnlich wie Bi testing media_factory_0.10

Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Florian Wolters
 
Robustes Testen mit Selenium
Robustes Testen mit SeleniumRobustes Testen mit Selenium
Robustes Testen mit Seleniumx-celerate
 
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.jsTesten von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.jsSebastian Helzle
 
Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro sessionVirttoo org
 
2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und TestsDaniel Fisher
 
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Torsten Kleiber
 
ColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveBokowsky + Laymann GmbH
 
Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014WebcsonsultsEU
 
‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference
‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference
‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human InferenceDataValueTalk
 
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang Rütter
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang RütterOracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang Rütter
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang RütterOPITZ CONSULTING Deutschland
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Andreas Wissel
 
Continous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickelnContinous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickelnMartin Seibert
 
Scrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für ProgrammiererScrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für ProgrammiererTobias Schlüter
 
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdCloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdAOE
 
eCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
eCATT & OpenSource - Automatisierter Test in heterogenen SystemlandschafteneCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
eCATT & OpenSource - Automatisierter Test in heterogenen SystemlandschaftenChristoph Menke
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsThorsten Kamann
 
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...André Krämer
 
Monitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-AnwendungenMonitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-Anwendungengedoplan
 

Ähnlich wie Bi testing media_factory_0.10 (20)

Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
 
Robustes Testen mit Selenium
Robustes Testen mit SeleniumRobustes Testen mit Selenium
Robustes Testen mit Selenium
 
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.jsTesten von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
 
Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro session
 
2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests
 
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
 
ColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep Dive
 
Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014
 
‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference
‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference
‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference
 
Agiles Testen - Überblick
Agiles Testen - ÜberblickAgiles Testen - Überblick
Agiles Testen - Überblick
 
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang Rütter
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang RütterOracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang Rütter
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang Rütter
 
Ant Maven
Ant MavenAnt Maven
Ant Maven
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
 
Continous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickelnContinous Deployment - Schneller entwickeln
Continous Deployment - Schneller entwickeln
 
Scrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für ProgrammiererScrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für Programmierer
 
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdCloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
 
eCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
eCATT & OpenSource - Automatisierter Test in heterogenen SystemlandschafteneCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
eCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
 
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
 
Monitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-AnwendungenMonitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-Anwendungen
 

Mehr von inovex GmbH

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegeninovex GmbH
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIinovex GmbH
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolutioninovex GmbH
 
Network Policies
Network PoliciesNetwork Policies
Network Policiesinovex GmbH
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learninginovex GmbH
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungeninovex GmbH
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeteninovex GmbH
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetesinovex GmbH
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systemsinovex GmbH
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreiheninovex GmbH
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenteninovex GmbH
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?inovex GmbH
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Projectinovex GmbH
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretabilityinovex GmbH
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use caseinovex GmbH
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessinovex GmbH
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumiinovex GmbH
 

Mehr von inovex GmbH (20)

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegen
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AI
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolution
 
WWDC 2019 Recap
WWDC 2019 RecapWWDC 2019 Recap
WWDC 2019 Recap
 
Network Policies
Network PoliciesNetwork Policies
Network Policies
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungen
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeten
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetes
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 
Azure IoT Edge
Azure IoT EdgeAzure IoT Edge
Azure IoT Edge
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreihen
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenten
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?
 
Dev + Ops = Go
Dev + Ops = GoDev + Ops = Go
Dev + Ops = Go
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Project
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretability
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madness
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
 

Bi testing media_factory_0.10

  • 1. „Stimmen meine Zahlen?“ Automatisiertes Testen von BI-Applikationen mit dem Open Source Framework „Fitnesse“ 20.01.2012 Stefan Kirner inovex GmbH Senior Consultant BI Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
  • 2. Kurzvorstellung inovex GmbH • IT-Dienstleister in Pforzheim, München und Köln • 1999 gegründet, heute 80 Mitarbeiter • Portfolio: • IT Consulting • Business Intelligence, • Application Development, • Systems Operations • Training • Positionierung: Qualität, Technologiekompetenz, Kundenzufriedenheit • Kunden: Marktführer aus DAX 100 und gehobenem Mittelstand, z. B. 1&1, Bosch, buch.de, Daimler, DB Schenker, Ehrmann, EnBW, GMX, Mahle, maxdome, Porsche, web.de • mehr unter www.inovex.de
  • 3. Warum automatisiert testen in BI Projekten? oder „was BI von Softwareentwicklung lernen kann“ • Agiles Arbeiten auch im DWH Bereich  Ständige iterative Weiterentwicklung  Transparenz notwendig  Schnelles Feedback vom Kunden  Viele Änderungswünsche  Definition of Done  Sicherstellung hohe Qualität  Continuous Integration  Automatisierbare Tests • Single Source of Truth  Vertrauen muss aufgebaut werden • Wechselnde Team Members  Tests müssen reproduzierbar sein Bildquelle: roomiccube@flickr.com; ;
  • 4. Wer soll wann testen? • Entwickler • Fachabteilung • Operatoren • Prozesse  Testen im Team • Vor und nach der Entwicklung • Vor dem Deployment auf das System, auf dem alles „done“ ist • Nach dem Deployment auf dem Zielsystem • Regelmäßig unbeaufsichtigte Ausführung  Automatisierung erforderlich Bildquelle: wanderlinse@flickr.com. kheelcenter@flickr.com
  • 5. Besonderheiten von BI Projekten und Konsequenzen für das Testing Rahmenbedingungen Konsequenz für Testing • BI Projekte sind data-driven • Focus auf Datentests, weil • 80 % Entwicklungsaufwand im höchste Prio Bereich ETL • Persistenz: Tests auf Layer mit • Persistenz in relationalem DWH konsistentem Stand • Hohe Datenvolumina • Volumen: Testen einer • Erfassung von Metadaten Teilmenge der Daten mit Mustern Zu testen • Inhalt: Testen von Kennzahlen • Daten fachlicher Natur & Dimensionsdaten • Technische Constraints • Laufzeitfehler: Auswertung der • Performance Metadaten! • Security • Code
  • 6. Welche Daten als Quelle nehmen? • Daten direkt aus Quellsystemen? + Immer auf aktuellem Stand des DBMS + Keine Anpassung der Ladestrecken für Tests − Keine definierten Zustände der Daten − Existenz hängt von Quellsystem ab • Daten auf separater TestDB der Quelle? + Definierte Zustände möglich + Kontrolle über Existenz der zu testenden Daten − Doppelter Aufwand bei DBMS Changes − Anpassung Ladestrecken für Tests • Spezielle Test Daten innerhalb der Quellsysteme? + Alle obigen Vorteile − Darf dem Quell- und abhängigen Systemen keine Probleme machen Bildquelle: avlxyz@flickr.com
  • 7. Wie erstellt man definierte Zustände innerhalb der Daten? • Wiederholbarkeit der Tests ist wichtig • Szenarien hängen ab von: • Änderung der Quelldaten • Zustand der Zieldaten • Abbildung dieser Situationen in ETL Logik • Möglichst alle Szenarien testen • Benötigen Methoden für das • Ändern der Testmuster in den Quelldaten / Zieldaten • Modaler Aufbau für Wiederholbarkeit • Datenänderungen via Stored Procs • Anstoßen ETL via SQL Server Agent Bildquelle: palindrome6996@flickr.com
  • 8. Wobei hilft uns da FitNesse? • Testdefinition in wiki statt unit tests in Hochsprache • Tests basieren auf Tabellen mit erwarteten Werten • Zugriff auf Datenbanken mit dbfit • Webbasierte Oberfläche • Gruppierung von Tests • Tests werden im xml-Format gespeichert • Simples Setup • Kommandozeilenaufrufe • Erweiterbar durch eigene Fixtures • Open Source & Free Bildquelle: http://fitnesse.org/
  • 9. Was ist FitNesse? s. u. http://fitnesse.org 9
  • 11. Projektbeispiel: Definition eines Tests als Wiki-Seite 11
  • 12. Implementierung des Tests als Stored Procedure Vorteile: • rDBMS ist Homebase der BI Entwickler • Einfache Bereitstellung von Methoden zur Testdatenverwaltung • Inhaltliche Vereinheitlichung Daten von Quelle und Ziel in Views (z. B. Datum, Dezimalstellen) • Unterstützende Methoden in Functions • Kapselung der Testlogik • Rückgabe 0/1 erleichtert Interpretation Tip: • Datenrückgabe in XML erleichtert den Vergleich (alle Daten in einem Feld)
  • 15. Wie testet man im Team? Integration in die Entwicklungsumgebung • Daten für Tests in xml  Source Control (SC) • Subfolder Recent Changes und Error Logs nicht in SC • Lokale Runtime für Entwickler (keine Installation, jdk) • Zentrales abgekoppeltes Fitnesse als Windows Service • Automatisierte Tests • Adhoc Tests • Zugriff für Nicht-Entwickler
  • 16. Wie geht das Ganze „elektrisch“? Automatisierten Starten von Tests • Kommandozeilentool Testrunner • Steuerung über beliebigen Scheduluer, z.B. • SQL Server Agent • crontab • Ergebnisse in xml/html • Parsing xml für weitere Verarbeitung • optional: Senden via Database Mail Bildquelle: rehacare@flickr.com
  • 18. Gibt es Fragen? Bildquelle:Stefan Baudy:-bast-@flickr.com
  • 19. Interessante Informationen • Fitnesse Acceptance Testing Framework • http://fitnesse.org/ • DBFit for Test Driven database development • http://gojko.net/fitnesse/dbfit/ • Buchtipp 1: Test Driven .Net Development with Fitnesse von Gojko Adzik • amazon.de http://goo.gl/2GuqY • Buchtipp 2: Agile Datawarehousing von Ralph Hughes • amazon.de http://goo.gl/82d4z • Ansprechpartner bei inovex: • Patrick Thoma (patrick.thoma@inovex.de, Tel. 0173/3181009) • Stefan Kirner (stefan.kirner@inovex.de, Tel. 0173/3181012)