Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Bi testing media_factory_0.10

704 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Bi testing media_factory_0.10

  1. 1. „Stimmen meine Zahlen?“ Automatisiertes Testen von BI-Applikationen mit dem Open Source Framework „Fitnesse“ 20.01.2012Stefan Kirnerinovex GmbHSenior Consultant BI Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
  2. 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. 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. 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. 5. Besonderheiten von BI Projektenund 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. 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. 7. Wie erstellt man definierte Zuständeinnerhalb 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. 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. 9. Was ist FitNesse?s. u. http://fitnesse.org 9
  10. 10. Projektbeispiel: Einstiegsseite
  11. 11. Projektbeispiel: Definition eines Tests als Wiki-Seite 11
  12. 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)
  13. 13. Projektbeispiel: Testergebnis
  14. 14. Projektbeispiel: Überblick Regressionstests
  15. 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. 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
  17. 17. Projektbeispiel: Ergebnis der TestSuite
  18. 18. Gibt es Fragen? Bildquelle:Stefan Baudy:-bast-@flickr.com
  19. 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)

×