© OPITZ CONSULTING GmbH 2015 Seite 1Big Data Testmanagement
Tobias Bürger,
Teamleiter Personalization & Big Data
ehem. Payback GmbH
Jochen Wilms, Innovation Manager BI
OPITZ CONSULTING Deutschland GmbH
Agile Entwicklungs- und Testprozesse auf Big
Data Projekte übertragen
München, 23. Juni 2015
Enterprise Big Data Testmanagement
T4P-1
© OPITZ CONSULTING GmbH 2015 Seite 2Big Data Testmanagement
Mission
Wir entwickeln gemeinsam mit allen
Branchen Lösungen, die dazu führen, dass
sich diese Organisationen besser entwickeln
als ihr Wettbewerb.
Unsere Dienstleistung erfolgt
partnerschaftlich und ist auf eine langjährige
Zusammenarbeit angelegt.
Leistungsangebot
Application Lifecycle Management
IT-Beratung
Business-Lösungen
Managed Services
Training und Coaching
IT-Trends
Märkte
Branchenübergreifend
Über 600 Kunden
29%
Industrie / Versorger /
Telekommunikation
29%
Handel / Logistik /
Dienstleistungen
42%
Öffentliche Auftraggeber / Banken und
Versicherungen / Vereine und Verbände
Eckdaten
Gründung 1990
400 Mitarbeiter
9 Standorte
© OPITZ CONSULTING GmbH 2015 Seite 3Big Data Testmanagement
Adaption von Big Data im
Application Lifecylce Management BIGDATA
ADAPTION
OPITZ CONSULTING bietet ein ganzheitliches
Application-Lifecycle-Management ALM zur
Sicherung des Wertbeitrags der
Anwendungssysteme im
gesamten Lebenszyklus.
BIGDATA
ADAPTION
- Big Data
Strategie
- Werkzeug-
Portfolio (hadoop
& Friend vs.
bestehend)
- Aufbau CC
- Systemarchitkt.
- Vorgehens-
modell
- Demand-
Mgmnt.
- License
Mgmnt.
- Entwicklung/
Installation/
Konfiguration/
Implementierung/
Coding
- Testmanagement
- Projektmgmnt.
- Produkt- &
Release-
management
- Monitoring/
Performance
ALM wird
aktuell vom
CC Big Data
& Customer
Intelligence
um Big Data
Best
Practices
erweitert.
© OPITZ CONSULTING GmbH 2015 Seite 4Big Data Testmanagement
Herausforderung für einen produktiven Big Data
Einsatz
Wartung/
Betrieb
Planung/
Design
Implemen-
tierung
Management Demand Org. Delivery Org. Operations
Scoping Skills & Anforderungen
Kapazitätsplanung
Sicherheitskonzept Integration
Teststrategien
Einrichtung einer Big
Data Landschaft
Produktauswahl
Betrieb des Clusters
Daten- & Prozess-
integration
Release Management
© OPITZ CONSULTING GmbH 2015 Seite 5Big Data Testmanagement
Agenda
1. Big Data Systemlandschaft
2. Big Data Testmanagement
3. Schritte zur erfolgreichen Big Data Teststrategie
4. Implementierung eigener Testframeworks- und –methoden
5. Lessons Learned
© OPITZ CONSULTING GmbH 2015 Seite 6Big Data Testmanagement
11 Big Data Systemlandschaft
© OPITZ CONSULTING GmbH 2015 Seite 7Big Data Testmanagement
Big Data / DWH Integrationsarchitekturen
Active Archive Analytics Lab
Preprocessing Stage Parallel Warehouse / Streaming
© OPITZ CONSULTING GmbH 2015 Seite 8Big Data Testmanagement
Big Data als Preprocessing Stage
© OPITZ CONSULTING GmbH 2015 Seite 9Big Data Testmanagement
Eine Big Data Systemarchitektur
 Hadoop als Preprocessing Umgebung
 Anbindung nicht relational, tabellarischen Datenquellen (3 Quellen im PoC)
 Durchführung Aufwändiger Transformations-, Anreicherungs-, Zuordnungs-
und Aggregationsoperationen in Hadoop
 Bidirektionale Kommunikation mit der Bestands-DWH-Architektur
...
Concentrator
Edge
Node
Hadoop Cluster
ETL
DWH
OLTP
Ingress via
Ingress via
Egress via
Orchestration via
© OPITZ CONSULTING GmbH 2015 Seite 10Big Data Testmanagement
22 Big Data Testmanagement
© OPITZ CONSULTING GmbH 2015 Seite 11Big Data Testmanagement
BI – testgetrieben & agil
TDD
Fail
PassRefactor
Product backlog Sprint backlog Sprint Working increment
Die meisten
Herausforderungen
in BI Projekten sind
organisatorischer
und nicht technischer
Natur. Agiles
Projektvorgehen
nimmt einen Teil der
Komplexität aus BI-
Projekten.
Beschreibung von
Strukturen und Abläufen in
Form von Tests
Continous Integration &
Deployment
Inkrementelle
Entwicklung
© OPITZ CONSULTING GmbH 2015 Seite 12Big Data Testmanagement
Test Staging
Unit Tests
Komponenten Tests
System Tests
Integrations Tests
Ext. Integrations Tests
Abnahme Tests
Lokale Umgebung
Build Server
Test
Umgebung
Preprod
Umgeb.
© OPITZ CONSULTING GmbH 2015 Seite 13Big Data Testmanagement
Testarten & -auslöser
Functional
Non-
functional
Sanity
Health
Smoke
Art Unit Int. Sys.Int. UAT
Func. Commit Release
OR Data
structure
change
Release
OR Data
structure
change
Release
Non-func. Deploy
comp. OR
new
comp. OR
upgrade
Deploy
comp. OR
new
comp. OR
upgrade
Sanity Before
end-to-
end
Before
end-to-
end
Smoke Deploy
comp. OR
new
comp.
Health Upgrade Upgrade
© OPITZ CONSULTING GmbH 2015 Seite 14Big Data Testmanagement
Die Big Data Herausforderungen
 Testvorbereitung
 Hohe Anforderungen (Logik und Aufwand) an Testdatengenerierung
 Isolierte Tests schwer durchführbar
 Testausführung
 Laufzeiten sind deutlich höher
 Testen auf lokalen Umgebungen nur teilweise möglich
 Die Infrastruktur ist immer ein potentieller Fehlerfaktor
 Testentwicklung
 Nur wenige, recht experimente Testframeworks vorhanden
 Viele Werkzeuge basierend auf unterschiedlichen Technologien
© OPITZ CONSULTING GmbH 2015 Seite 15Big Data Testmanagement
3 Schritte zur erfolgreichen Big Data
Teststrategie3
© OPITZ CONSULTING GmbH 2015 Seite 16Big Data Testmanagement
Frameworkkomplexität im Vorfelde verringern
...
© OPITZ CONSULTING GmbH 2015 Seite 17Big Data Testmanagement
Testobjekte
Data Stream Tests
l Volume tests
l Completness of data validation
l Resilence tests
Log Ingress Tests
l Volume tests
l Resilence tests
l Data structure validation
DB Ingress Tests
l Volume tests
l Data structure validation
l Stress tests (e.g. invalid formats)
Transformation Tests
l Unit tests
l Business Rule tests
l Stress tests (e.g. invalid formats)
l Performance tests
Egress Tests
l Resilence tests
l Data structure validation
Infrastructure Tests
l Performance tests
l Resilence tests
l Volume tests (e.g. Terasort)
1
2
3
4 5
6
© OPITZ CONSULTING GmbH 2015 Seite 18Big Data Testmanagement
Testchronologie
 Ein Drehbuch für die Ausführung der Testgruppen
 Welche Testobjekte müssen wann getestet werden?
 Auslöser, Stopper und Abhängigkeiten für Tests definieren
 Testabfolgen von bottom up aufziehen, um Störfehler zu reduzieren
Hardware Tests
l RAID controllers
l Disk I/O
l Network
Hadoop Tests
l HDFS benchmark
l MapReduce benchmark
l Ecosystem health
PoC Tests
l Dev
l End-to-end
l Operations
Application Tests
l Dev
l Approval
l Operations
Upgrade Tests
l Migration
l Portability
l Interoperability
© OPITZ CONSULTING GmbH 2015 Seite 19Big Data Testmanagement
Testmatrix
 Gliederung nach 4 Dimensionen
 Test Typ → 5 Ausprägungen
 Test Stage → 6 Ausprägungen
 Komponente → 9 Ausprägungen
 Anwendungsfall → 7 Ausprägungen
 Beschreibung der Testobjekte für relevante Kombinationen
 30 Testobjekte wurden definiert
 Ein paar Beispiele
Type Stage Comp. Use Case Description / Example
Non-functional Sys. Int. Flume Ingress Using big files for import and measure required time. Increasing
number of import Jobs on various big files. Check if jobs time out or
cluster does not response anymore. Track Number of concurrent
import jobs.
Functional Unit Pig Transform Unit testing pig scripts using appropriate IDE tools (e.g. PigUnit).
Testing Pig UDF using JUnit or PyUnit.
Smoke Int.+ YARN Infra Committing MapReduce JAR via CLI (e.g. wordcount.jar provided with
default hadoop installation).
© OPITZ CONSULTING GmbH 2015 Seite 20Big Data Testmanagement
Testpriorisierung
 Risikobewertung
 Nutzungsfrequenz
 Kundenanzahl
 Prozessierungsart
 Finanzielle Auswirkung
 Kundenauswirkung
 Komplexitätsbewertung
 Evaluationsaufwand
 Entwicklungsaufwand
 Testaufwand
 Ermittlung der „Low hanging fruits“
Risiko-
tabelle
Komplexitäts-
tabelle
Komplexitäts-
tabelle
Komplexitäts-
tabelle
Komplexitäts-
tabelle
Komplexitäts-
tabelle
Test
Stages
Test-
objekte
Test-
arten
Priorisierung
Selektieren!
© OPITZ CONSULTING GmbH 2015 Seite 21Big Data Testmanagement
4 Implementierung eigener
Testframeworks und -methoden4
© OPITZ CONSULTING GmbH 2015 Seite 22Big Data Testmanagement
Cluster Infrastruktur Validierung
 Zielsetzung
 Validierung der Installation
 Performance-Messung
 Durchführung vor und nach Hadoop Installation
 Pre-Installation Tests
 Cluster Konfiguration
 Hauptspeicher Benchmark
 Netzwerk Benchmark
 Post-Installation Tests
 Check von Ports & Services
 Smoke Tests für alle Hadoop Komponenten
 HDFS und MapReduce Benchmark
© OPITZ CONSULTING GmbH 2015 Seite 23Big Data Testmanagement
Testdatengenerierung
 Besondere Herausforderungen
 Größere Datenmengen erforderlich
 Verschiedene Datenformate erforderlich
 Tests erfordern oftmals das einstreuen von gesteuerten Abweichungen und
Fehlerquoten
 Das Problem mit der Datenmenge
 Verteilte Datenerstellung notwendig → z.B. via Nutzung der Hadoop
Infrastruktur selbst / MapReduce Testgeneratoren
 Beziehungen zwischen Entitäten einzuhalten ist sehr speicher- und
suchintensiv
 Wenige Anbieter von Standardsoftware
 Parallel Data Generation Framework von Bankmark
 Setup aus Datengenierungsbibliotheken für Pig oder Spark
© OPITZ CONSULTING GmbH 2015 Seite 24Big Data Testmanagement
Pig Unit-Testing mit Zero-Coding
data = LOAD 'input' AS (query:CHARARRAY);
queries_group = GROUP data BY query;
queries_count = FOREACH queries_group
GENERATE group AS query, COUNT(data) AS total;
queries_ordered = ORDER queries_count
BY total DESC, query;
queries_limit = LIMIT queries_ordered $n;
STORE queries_limit INTO 'output';
Pig ist ein Hadoop Skriptsprache
Doch wie testet man diese Skripte?
Pig basierte Unit Tests sind
möglich, erfordern jedoch
Java-Programmiererfahrung.
@Test
public void testPigScript() throws Exception {
PigTestConf conf = new PigTestConf(testFile);
PigTest test = createPigTest(pigFile, conf.getArgsAsArray());
InputMocker inputMocker = new InputMocker(test);
for (String inputKey : conf.getInput().keySet())
inputMocker.mock(inputKey, conf.getInput().get(inputKey));
...
© OPITZ CONSULTING GmbH 2015 Seite 25Big Data Testmanagement
Pig Unit-Testing mit Zero-Coding
<test>
<args>
<arg name="INPUT">DUMMY</arg>
<arg name="OUTPUT">DUMMY</arg>
<arg name="ENVIRONMENT">src/test/resources/pig/test1</arg>
</args>
<input>
<data name="a">
<elem>{"requestTimestamp":"2014-07-11T11:...</elem>
</data>
</input>
<output>
<data name="f">
<elem>(20140711,41944004,5,,,2,1)</elem>
<elem>(20140711,41944009,5,,,1,1)</elem>
...
</data>
</output>
</test>
XML
pig-tester.jar
Surefire
Test
Reports
© OPITZ CONSULTING GmbH 2015 Seite 26Big Data Testmanagement
Big Data Testing mit Continous Integration
Projekt
Repository
pig-tester.jar
.pig
.xml
.pig
.xml
.pig
.xml
.pig
.xml
Ziel ist eine Integration in
bestehende CI Architekturen
Jenkins Nexus
Testsystem
Hadoop
Logstash,
Kibana,
Splunk,
...
© OPITZ CONSULTING GmbH 2015 Seite 27Big Data Testmanagement
5 Lessons Learned5
© OPITZ CONSULTING GmbH 2015 Seite 28Big Data Testmanagement
Lessons Learned
 Werkzeugvielfalt minimieren
 Hadoop = Infrastruktur → DevOps wird immer wichtiger
 Umgebungen für no-coding Implementierung und Testen sind
realisierbar
 Deutlich mehr Testobjekte → Testpriorisierung wird wichtiger
 CI & CD wird durch Werkzeugkomplexität aufwändiger
 Nicht für alles gibt es bereits fertige Lösungen → Viele
Integration und unterstützende Werkzeuge entstehen in
Eigenentwicklung
© OPITZ CONSULTING GmbH 2015 Seite 29Big Data Testmanagement
Fragen und Antworten
© OPITZ CONSULTING GmbH 2015 Seite 30Big Data Testmanagement
Kontakt
Jochen Wilms, Innovation Manager BI
OPITZ CONSULTING GmbH
jochen.wilms@opitz-consulting.com
Telefon +49 2261 6001 1734
Mobil +49 173 727 9026
Dr. Tobias Bürger,
Teamleiter Personalization & Big Data
ehem. PAYBACK GmbH
tobias@tobiasbuerger.com
© OPITZ CONSULTING GmbH 2015 Seite 31Big Data Testmanagement
Vielen Dank für Ihre
Aufmerksamkeit!
Besuchen Sie uns am Stand 44!

Agiles Enterprise Big Data Testmanagement

  • 1.
    © OPITZ CONSULTINGGmbH 2015 Seite 1Big Data Testmanagement Tobias Bürger, Teamleiter Personalization & Big Data ehem. Payback GmbH Jochen Wilms, Innovation Manager BI OPITZ CONSULTING Deutschland GmbH Agile Entwicklungs- und Testprozesse auf Big Data Projekte übertragen München, 23. Juni 2015 Enterprise Big Data Testmanagement T4P-1
  • 2.
    © OPITZ CONSULTINGGmbH 2015 Seite 2Big Data Testmanagement Mission Wir entwickeln gemeinsam mit allen Branchen Lösungen, die dazu führen, dass sich diese Organisationen besser entwickeln als ihr Wettbewerb. Unsere Dienstleistung erfolgt partnerschaftlich und ist auf eine langjährige Zusammenarbeit angelegt. Leistungsangebot Application Lifecycle Management IT-Beratung Business-Lösungen Managed Services Training und Coaching IT-Trends Märkte Branchenübergreifend Über 600 Kunden 29% Industrie / Versorger / Telekommunikation 29% Handel / Logistik / Dienstleistungen 42% Öffentliche Auftraggeber / Banken und Versicherungen / Vereine und Verbände Eckdaten Gründung 1990 400 Mitarbeiter 9 Standorte
  • 3.
    © OPITZ CONSULTINGGmbH 2015 Seite 3Big Data Testmanagement Adaption von Big Data im Application Lifecylce Management BIGDATA ADAPTION OPITZ CONSULTING bietet ein ganzheitliches Application-Lifecycle-Management ALM zur Sicherung des Wertbeitrags der Anwendungssysteme im gesamten Lebenszyklus. BIGDATA ADAPTION - Big Data Strategie - Werkzeug- Portfolio (hadoop & Friend vs. bestehend) - Aufbau CC - Systemarchitkt. - Vorgehens- modell - Demand- Mgmnt. - License Mgmnt. - Entwicklung/ Installation/ Konfiguration/ Implementierung/ Coding - Testmanagement - Projektmgmnt. - Produkt- & Release- management - Monitoring/ Performance ALM wird aktuell vom CC Big Data & Customer Intelligence um Big Data Best Practices erweitert.
  • 4.
    © OPITZ CONSULTINGGmbH 2015 Seite 4Big Data Testmanagement Herausforderung für einen produktiven Big Data Einsatz Wartung/ Betrieb Planung/ Design Implemen- tierung Management Demand Org. Delivery Org. Operations Scoping Skills & Anforderungen Kapazitätsplanung Sicherheitskonzept Integration Teststrategien Einrichtung einer Big Data Landschaft Produktauswahl Betrieb des Clusters Daten- & Prozess- integration Release Management
  • 5.
    © OPITZ CONSULTINGGmbH 2015 Seite 5Big Data Testmanagement Agenda 1. Big Data Systemlandschaft 2. Big Data Testmanagement 3. Schritte zur erfolgreichen Big Data Teststrategie 4. Implementierung eigener Testframeworks- und –methoden 5. Lessons Learned
  • 6.
    © OPITZ CONSULTINGGmbH 2015 Seite 6Big Data Testmanagement 11 Big Data Systemlandschaft
  • 7.
    © OPITZ CONSULTINGGmbH 2015 Seite 7Big Data Testmanagement Big Data / DWH Integrationsarchitekturen Active Archive Analytics Lab Preprocessing Stage Parallel Warehouse / Streaming
  • 8.
    © OPITZ CONSULTINGGmbH 2015 Seite 8Big Data Testmanagement Big Data als Preprocessing Stage
  • 9.
    © OPITZ CONSULTINGGmbH 2015 Seite 9Big Data Testmanagement Eine Big Data Systemarchitektur  Hadoop als Preprocessing Umgebung  Anbindung nicht relational, tabellarischen Datenquellen (3 Quellen im PoC)  Durchführung Aufwändiger Transformations-, Anreicherungs-, Zuordnungs- und Aggregationsoperationen in Hadoop  Bidirektionale Kommunikation mit der Bestands-DWH-Architektur ... Concentrator Edge Node Hadoop Cluster ETL DWH OLTP Ingress via Ingress via Egress via Orchestration via
  • 10.
    © OPITZ CONSULTINGGmbH 2015 Seite 10Big Data Testmanagement 22 Big Data Testmanagement
  • 11.
    © OPITZ CONSULTINGGmbH 2015 Seite 11Big Data Testmanagement BI – testgetrieben & agil TDD Fail PassRefactor Product backlog Sprint backlog Sprint Working increment Die meisten Herausforderungen in BI Projekten sind organisatorischer und nicht technischer Natur. Agiles Projektvorgehen nimmt einen Teil der Komplexität aus BI- Projekten. Beschreibung von Strukturen und Abläufen in Form von Tests Continous Integration & Deployment Inkrementelle Entwicklung
  • 12.
    © OPITZ CONSULTINGGmbH 2015 Seite 12Big Data Testmanagement Test Staging Unit Tests Komponenten Tests System Tests Integrations Tests Ext. Integrations Tests Abnahme Tests Lokale Umgebung Build Server Test Umgebung Preprod Umgeb.
  • 13.
    © OPITZ CONSULTINGGmbH 2015 Seite 13Big Data Testmanagement Testarten & -auslöser Functional Non- functional Sanity Health Smoke Art Unit Int. Sys.Int. UAT Func. Commit Release OR Data structure change Release OR Data structure change Release Non-func. Deploy comp. OR new comp. OR upgrade Deploy comp. OR new comp. OR upgrade Sanity Before end-to- end Before end-to- end Smoke Deploy comp. OR new comp. Health Upgrade Upgrade
  • 14.
    © OPITZ CONSULTINGGmbH 2015 Seite 14Big Data Testmanagement Die Big Data Herausforderungen  Testvorbereitung  Hohe Anforderungen (Logik und Aufwand) an Testdatengenerierung  Isolierte Tests schwer durchführbar  Testausführung  Laufzeiten sind deutlich höher  Testen auf lokalen Umgebungen nur teilweise möglich  Die Infrastruktur ist immer ein potentieller Fehlerfaktor  Testentwicklung  Nur wenige, recht experimente Testframeworks vorhanden  Viele Werkzeuge basierend auf unterschiedlichen Technologien
  • 15.
    © OPITZ CONSULTINGGmbH 2015 Seite 15Big Data Testmanagement 3 Schritte zur erfolgreichen Big Data Teststrategie3
  • 16.
    © OPITZ CONSULTINGGmbH 2015 Seite 16Big Data Testmanagement Frameworkkomplexität im Vorfelde verringern ...
  • 17.
    © OPITZ CONSULTINGGmbH 2015 Seite 17Big Data Testmanagement Testobjekte Data Stream Tests l Volume tests l Completness of data validation l Resilence tests Log Ingress Tests l Volume tests l Resilence tests l Data structure validation DB Ingress Tests l Volume tests l Data structure validation l Stress tests (e.g. invalid formats) Transformation Tests l Unit tests l Business Rule tests l Stress tests (e.g. invalid formats) l Performance tests Egress Tests l Resilence tests l Data structure validation Infrastructure Tests l Performance tests l Resilence tests l Volume tests (e.g. Terasort) 1 2 3 4 5 6
  • 18.
    © OPITZ CONSULTINGGmbH 2015 Seite 18Big Data Testmanagement Testchronologie  Ein Drehbuch für die Ausführung der Testgruppen  Welche Testobjekte müssen wann getestet werden?  Auslöser, Stopper und Abhängigkeiten für Tests definieren  Testabfolgen von bottom up aufziehen, um Störfehler zu reduzieren Hardware Tests l RAID controllers l Disk I/O l Network Hadoop Tests l HDFS benchmark l MapReduce benchmark l Ecosystem health PoC Tests l Dev l End-to-end l Operations Application Tests l Dev l Approval l Operations Upgrade Tests l Migration l Portability l Interoperability
  • 19.
    © OPITZ CONSULTINGGmbH 2015 Seite 19Big Data Testmanagement Testmatrix  Gliederung nach 4 Dimensionen  Test Typ → 5 Ausprägungen  Test Stage → 6 Ausprägungen  Komponente → 9 Ausprägungen  Anwendungsfall → 7 Ausprägungen  Beschreibung der Testobjekte für relevante Kombinationen  30 Testobjekte wurden definiert  Ein paar Beispiele Type Stage Comp. Use Case Description / Example Non-functional Sys. Int. Flume Ingress Using big files for import and measure required time. Increasing number of import Jobs on various big files. Check if jobs time out or cluster does not response anymore. Track Number of concurrent import jobs. Functional Unit Pig Transform Unit testing pig scripts using appropriate IDE tools (e.g. PigUnit). Testing Pig UDF using JUnit or PyUnit. Smoke Int.+ YARN Infra Committing MapReduce JAR via CLI (e.g. wordcount.jar provided with default hadoop installation).
  • 20.
    © OPITZ CONSULTINGGmbH 2015 Seite 20Big Data Testmanagement Testpriorisierung  Risikobewertung  Nutzungsfrequenz  Kundenanzahl  Prozessierungsart  Finanzielle Auswirkung  Kundenauswirkung  Komplexitätsbewertung  Evaluationsaufwand  Entwicklungsaufwand  Testaufwand  Ermittlung der „Low hanging fruits“ Risiko- tabelle Komplexitäts- tabelle Komplexitäts- tabelle Komplexitäts- tabelle Komplexitäts- tabelle Komplexitäts- tabelle Test Stages Test- objekte Test- arten Priorisierung Selektieren!
  • 21.
    © OPITZ CONSULTINGGmbH 2015 Seite 21Big Data Testmanagement 4 Implementierung eigener Testframeworks und -methoden4
  • 22.
    © OPITZ CONSULTINGGmbH 2015 Seite 22Big Data Testmanagement Cluster Infrastruktur Validierung  Zielsetzung  Validierung der Installation  Performance-Messung  Durchführung vor und nach Hadoop Installation  Pre-Installation Tests  Cluster Konfiguration  Hauptspeicher Benchmark  Netzwerk Benchmark  Post-Installation Tests  Check von Ports & Services  Smoke Tests für alle Hadoop Komponenten  HDFS und MapReduce Benchmark
  • 23.
    © OPITZ CONSULTINGGmbH 2015 Seite 23Big Data Testmanagement Testdatengenerierung  Besondere Herausforderungen  Größere Datenmengen erforderlich  Verschiedene Datenformate erforderlich  Tests erfordern oftmals das einstreuen von gesteuerten Abweichungen und Fehlerquoten  Das Problem mit der Datenmenge  Verteilte Datenerstellung notwendig → z.B. via Nutzung der Hadoop Infrastruktur selbst / MapReduce Testgeneratoren  Beziehungen zwischen Entitäten einzuhalten ist sehr speicher- und suchintensiv  Wenige Anbieter von Standardsoftware  Parallel Data Generation Framework von Bankmark  Setup aus Datengenierungsbibliotheken für Pig oder Spark
  • 24.
    © OPITZ CONSULTINGGmbH 2015 Seite 24Big Data Testmanagement Pig Unit-Testing mit Zero-Coding data = LOAD 'input' AS (query:CHARARRAY); queries_group = GROUP data BY query; queries_count = FOREACH queries_group GENERATE group AS query, COUNT(data) AS total; queries_ordered = ORDER queries_count BY total DESC, query; queries_limit = LIMIT queries_ordered $n; STORE queries_limit INTO 'output'; Pig ist ein Hadoop Skriptsprache Doch wie testet man diese Skripte? Pig basierte Unit Tests sind möglich, erfordern jedoch Java-Programmiererfahrung. @Test public void testPigScript() throws Exception { PigTestConf conf = new PigTestConf(testFile); PigTest test = createPigTest(pigFile, conf.getArgsAsArray()); InputMocker inputMocker = new InputMocker(test); for (String inputKey : conf.getInput().keySet()) inputMocker.mock(inputKey, conf.getInput().get(inputKey)); ...
  • 25.
    © OPITZ CONSULTINGGmbH 2015 Seite 25Big Data Testmanagement Pig Unit-Testing mit Zero-Coding <test> <args> <arg name="INPUT">DUMMY</arg> <arg name="OUTPUT">DUMMY</arg> <arg name="ENVIRONMENT">src/test/resources/pig/test1</arg> </args> <input> <data name="a"> <elem>{"requestTimestamp":"2014-07-11T11:...</elem> </data> </input> <output> <data name="f"> <elem>(20140711,41944004,5,,,2,1)</elem> <elem>(20140711,41944009,5,,,1,1)</elem> ... </data> </output> </test> XML pig-tester.jar Surefire Test Reports
  • 26.
    © OPITZ CONSULTINGGmbH 2015 Seite 26Big Data Testmanagement Big Data Testing mit Continous Integration Projekt Repository pig-tester.jar .pig .xml .pig .xml .pig .xml .pig .xml Ziel ist eine Integration in bestehende CI Architekturen Jenkins Nexus Testsystem Hadoop Logstash, Kibana, Splunk, ...
  • 27.
    © OPITZ CONSULTINGGmbH 2015 Seite 27Big Data Testmanagement 5 Lessons Learned5
  • 28.
    © OPITZ CONSULTINGGmbH 2015 Seite 28Big Data Testmanagement Lessons Learned  Werkzeugvielfalt minimieren  Hadoop = Infrastruktur → DevOps wird immer wichtiger  Umgebungen für no-coding Implementierung und Testen sind realisierbar  Deutlich mehr Testobjekte → Testpriorisierung wird wichtiger  CI & CD wird durch Werkzeugkomplexität aufwändiger  Nicht für alles gibt es bereits fertige Lösungen → Viele Integration und unterstützende Werkzeuge entstehen in Eigenentwicklung
  • 29.
    © OPITZ CONSULTINGGmbH 2015 Seite 29Big Data Testmanagement Fragen und Antworten
  • 30.
    © OPITZ CONSULTINGGmbH 2015 Seite 30Big Data Testmanagement Kontakt Jochen Wilms, Innovation Manager BI OPITZ CONSULTING GmbH jochen.wilms@opitz-consulting.com Telefon +49 2261 6001 1734 Mobil +49 173 727 9026 Dr. Tobias Bürger, Teamleiter Personalization & Big Data ehem. PAYBACK GmbH tobias@tobiasbuerger.com
  • 31.
    © OPITZ CONSULTINGGmbH 2015 Seite 31Big Data Testmanagement Vielen Dank für Ihre Aufmerksamkeit! Besuchen Sie uns am Stand 44!