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.
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

732 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.

  • Als Erste(r) kommentieren

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

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

×