Dr. Dominik Benz | Inovex GmbHBug bites Elephant?Testgetriebene QS in der Big-Data-Entwicklung
2 / 23Class AextendsMapper…ROI, $$,…apt-getinstall…FITNESSEDefinition AkzeptanztestsQS-Plattform!Wer spricht Elefant-isch?
3 / 23QS in BigData Entw.FitNesse &der ElefantTest-Daten-DefinitionJob & WorkflowKontrolleInspektionErgebnisseDer Weg zur ...
4 / 23Big Qualität?Anwendungs-entwicklungFunktionalitätEnde zu Ende,abgeschlosseneher homogenstandalone,scale upBig DataDa...
5 / 23Bestehende Ansätzetestet NachteileJUnit / MRUnit Isolierte Funktionen keine Integrationstests,(Java-) SyntaxiTest (A...
6 / 23QS in BigData Entw.FitNesse &der ElefantTest-Daten-DefinitionJob & WorkflowKontrolleInspektionErgebnisseDer Weg zur ...
Fit for Testing!„fully integratedstandalone wiki andacceptance testingframework”• (automatisch)„ausführbare“ Wiki-Seiten• ...
8 / 23ArchitekturFitNessecheck |view count |customerA |productB |7BrowserFitNesseServerpublic intviewCount(cust, prod) { …...
9 / 23Test-AusführungFitNesse• Farbe enkodiert PASS / FAIL• Integriert (REST) in Jenkins, CLI, Eclipse, …
10 / 23Dazugehörige FixtureFitNessepublic class Ftp extends FTPClient {public boolean loadProperties(String propFile) {…}p...
11 / 23Best Practice: InfrastrukturFitNesseFitnesse MasterTestEnvironmentsProjA ProjBTestConfigurationsProjA ProjBdev qs l...
12 / 23QS in BigData Entw.FitNesse &der ElefantTest-Daten-DefinitionJob & WorkflowKontrolleInspektionErgebnisseDer Weg zur...
13 / 23CSV-FilesTest-Daten| Table:Log File || /cust.log.gz | compression=gzip;delimiter=,;encoding=UTF-8 || date | user | ...
14 / 23• Big Data: effizienter (binärer) Daten-austausch, heterogenes Umfeld• Interface-Beschreibungssprache (IDL)• Compil...
15 / 23• (random / biased) Sampling (z.B.Tages-Basis für kleinere Test-Cluster)• Feedback Loop für manuelleDatenerzeugung ...
16 / 23QS in BigData Entw.FitNesse &der ElefantTest-Daten-DefinitionJob & WorkflowKontrolleInspektionErgebnisseDer Weg zur...
17 / 23FTP / HDFS ZugriffJobs
18 / 23Hadoop-JobsJobs• Zugriff über CLI• CLI-Output wird mit Testergebnisgespeichert
19 / 23QS in BigData Entw.FitNesse &der ElefantTest-Daten-DefinitionJob & WorkflowKontrolleResultInspectionDer Weg zur Big...
20 / 23PigErgebnisse
21 / 23HiveErgebnisse
22 / 23Demo Time!• Hadoop-VM basierend auf CDH 4.2• FitNesse Server einrichten• CSV-Logfile erzeugen• Auswertung via Hadoo...
23 / 23QS: divers,intuitivFitNesse:Test-Wiki,FixturesTest-Daten:CSV, ThriftJobs: HDFS,HadoopResults:Pig, HiveVielen Dank!d...
Nächste SlideShare
Wird geladen in …5
×

Bug bites elephant? Testgetriebene QS in der Big-Data-Entwicklung

550 Aufrufe

Veröffentlicht am

In diesem Vortrag werden Best Practices der qualitätsgetriebenen Entwicklung von Hadoop-Anwendungen zur Log-Analyse bei 1&1 (1 Milliarde Events/Tag) vorgestellt. Mit FitNesse als Kernkomponente beziehen wir verschiedene Beteiligte in die Definition von Akzeptanztests ein, parametrisieren das Deployment von Artefakten/Workflows und verwenden Pig zur Inspektion serialisierter Output-Formate.

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

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

Keine Downloads
Aufrufe
Aufrufe insgesamt
550
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
8
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Bug bites elephant? Testgetriebene QS in der Big-Data-Entwicklung

  1. 1. Dr. Dominik Benz | Inovex GmbHBug bites Elephant?Testgetriebene QS in der Big-Data-Entwicklung
  2. 2. 2 / 23Class AextendsMapper…ROI, $$,…apt-getinstall…FITNESSEDefinition AkzeptanztestsQS-Plattform!Wer spricht Elefant-isch?
  3. 3. 3 / 23QS in BigData Entw.FitNesse &der ElefantTest-Daten-DefinitionJob & WorkflowKontrolleInspektionErgebnisseDer Weg zur Big Data QS
  4. 4. 4 / 23Big Qualität?Anwendungs-entwicklungFunktionalitätEnde zu Ende,abgeschlosseneher homogenstandalone,scale upBig DataDatenmengen,-vielfaltDatenflüsse,viele Quellendiversverteilt, scaleoutTest-SchwerpunktTest-ParadigmaBeteiligteUmgebung, AblaufQS & Big Data
  5. 5. 5 / 23Bestehende Ansätzetestet NachteileJUnit / MRUnit Isolierte Funktionen keine Integrationstests,(Java-) SyntaxiTest (ApacheBigTop)z.B. ganze Hadoop-Jobs Test-Spezifikation inJava / GroovyScripts, CLI Workflow-Steuerung,händische Inspektion derErgebnisse„komplexe“ Syntax,schwer automatisierbarFitNesse passende Ergänzung / Lösung!QS & Big Data
  6. 6. 6 / 23QS in BigData Entw.FitNesse &der ElefantTest-Daten-DefinitionJob & WorkflowKontrolleInspektionErgebnisseDer Weg zur Big Data QS
  7. 7. Fit for Testing!„fully integratedstandalone wiki andacceptance testingframework”• (automatisch)„ausführbare“ Wiki-Seiten• (fast) natürlich-sprachliche Testfall-formulierung• Anbindung an SUTvia (Java-)“Fixtures“FitNesse
  8. 8. 8 / 23ArchitekturFitNessecheck |view count |customerA |productB |7BrowserFitNesseServerpublic intviewCount(cust, prod) { …}System under TestFixturesJava-„Methodenaufrufe“direkt aus dem Wiki!
  9. 9. 9 / 23Test-AusführungFitNesse• Farbe enkodiert PASS / FAIL• Integriert (REST) in Jenkins, CLI, Eclipse, …
  10. 10. 10 / 23Dazugehörige FixtureFitNessepublic class Ftp extends FTPClient {public boolean loadProperties(String propFile) {…}public boolean setByProperty(String field,String prop)public boolean connect() {…}public boolean shiftFilesFromDirectory(String dir) {…}}
  11. 11. 11 / 23Best Practice: InfrastrukturFitNesseFitnesse MasterTestEnvironmentsProjA ProjBTestConfigurationsProjA ProjBdev qs live dev qs liveImport / edittests remotelyQSProjA SlaveDevProjA SlaveLiveProjA SlaveProjAQSProjA SlaveDevProjA SlaveLiveProjA SlaveImport / editconfig remotelydev qs live
  12. 12. 12 / 23QS in BigData Entw.FitNesse &der ElefantTest-Daten-DefinitionJob & WorkflowKontrolleInspektionErgebnisseDer Weg zur Big Data QS
  13. 13. 13 / 23CSV-FilesTest-Daten| Table:Log File || /cust.log.gz | compression=gzip;delimiter=,;encoding=UTF-8 || date | user | product | browser | os || 2013-03-12 | john19 | 19 | ff | win || 2013-03-13 | albert | 17 | ie | win || 2013-03-15 | lisa | 3 | ff | mac |
  14. 14. 14 / 23• Big Data: effizienter (binärer) Daten-austausch, heterogenes Umfeld• Interface-Beschreibungssprache (IDL)• Compiler fürviele SprachenThrift-FilesTest-Daten
  15. 15. 15 / 23• (random / biased) Sampling (z.B.Tages-Basis für kleinere Test-Cluster)• Feedback Loop für manuelleDatenerzeugung (Regressionstest)Graduelle Erhöhung der Testabdeckung &Software-QualitätReale DatenTest-Daten
  16. 16. 16 / 23QS in BigData Entw.FitNesse &der ElefantTest-Daten-DefinitionJob & WorkflowKontrolleInspektionErgebnisseDer Weg zur Big Data QS
  17. 17. 17 / 23FTP / HDFS ZugriffJobs
  18. 18. 18 / 23Hadoop-JobsJobs• Zugriff über CLI• CLI-Output wird mit Testergebnisgespeichert
  19. 19. 19 / 23QS in BigData Entw.FitNesse &der ElefantTest-Daten-DefinitionJob & WorkflowKontrolleResultInspectionDer Weg zur Big Data QS
  20. 20. 20 / 23PigErgebnisse
  21. 21. 21 / 23HiveErgebnisse
  22. 22. 22 / 23Demo Time!• Hadoop-VM basierend auf CDH 4.2• FitNesse Server einrichten• CSV-Logfile erzeugen• Auswertung via Hadoop-Job (countviewed items)• Prüfen der Ergebnisse mit Hive
  23. 23. 23 / 23QS: divers,intuitivFitNesse:Test-Wiki,FixturesTest-Daten:CSV, ThriftJobs: HDFS,HadoopResults:Pig, HiveVielen Dank!dominik.benz@inovex.de

×