SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Dr. Dominik Benz | Inovex GmbH
Bug bites Elephant?
Testgetriebene QS in der Big-Data-Entwicklung
2 / 23
Class A
extends
Mapper…
ROI, $$,
…
apt-get
install…
F
I
T
N
E
S
S
E
Definition Akzeptanztests
QS-Plattform!
Wer spricht Elefant-isch?
3 / 23
QS in Big
Data Entw.
FitNesse &
der Elefant
Test-Daten-
Definition
Job & Workflow
Kontrolle
Inspektion
Ergebnisse
Der Weg zur Big Data QS
4 / 23
Big Qualität?
Anwendungs-
entwicklung
Funktionalität
Ende zu Ende,
abgeschlossen
eher homogen
standalone,
scale up
Big Data
Datenmengen,
-vielfalt
Datenflüsse,
viele Quellen
divers
verteilt, scale
out
Test-Schwerpunkt
Test-Paradigma
Beteiligte
Umgebung, Ablauf
QS & Big Data
5 / 23
Bestehende Ansätze
testet Nachteile
JUnit / MRUnit Isolierte Funktionen keine Integrationstests,
(Java-) Syntax
iTest (Apache
BigTop)
z.B. ganze Hadoop-Jobs Test-Spezifikation in
Java / Groovy
Scripts, CLI Workflow-Steuerung,
händische Inspektion der
Ergebnisse
„komplexe“ Syntax,
schwer automatisierbar
FitNesse passende Ergänzung / Lösung!
QS & Big Data
6 / 23
QS in Big
Data Entw.
FitNesse &
der Elefant
Test-Daten-
Definition
Job & Workflow
Kontrolle
Inspektion
Ergebnisse
Der Weg zur Big Data QS
Fit for Testing!
„fully integrated
standalone wiki and
acceptance testing
framework”
• (automatisch)
„ausführbare“ Wiki-
Seiten
• (fast) natürlich-
sprachliche Testfall-
formulierung
• Anbindung an SUT
via (Java-)“Fixtures“
FitNesse
8 / 23
Architektur
FitNesse
check |
view count |
customerA |
productB |
7
Browser
FitNesse
Server
public int
viewCount
(cust, prod) { …
}
System under Test
Fixtures
Java-„Methodenaufrufe“
direkt aus dem Wiki!
9 / 23
Test-Ausführung
FitNesse
• Farbe enkodiert PASS / FAIL
• Integriert (REST) in Jenkins, CLI, Eclipse, …
10 / 23
Dazugehörige Fixture
FitNesse
public 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 / 23
Best Practice: Infrastruktur
FitNesse
Fitnesse Master
TestEnvironments
ProjA ProjB
TestConfigurations
ProjA ProjB
dev qs live dev qs live
Import / edit
tests remotely
QS
ProjA Slave
Dev
ProjA Slave
Live
ProjA SlaveProjA
QS
ProjA Slave
Dev
ProjA Slave
Live
ProjA Slave
Import / edit
config remotely
dev qs live
12 / 23
QS in Big
Data Entw.
FitNesse &
der Elefant
Test-Daten-
Definition
Job & Workflow
Kontrolle
Inspektion
Ergebnisse
Der Weg zur Big Data QS
13 / 23
CSV-Files
Test-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 / 23
• Big Data: effizienter (binärer) Daten-
austausch, heterogenes Umfeld
• Interface-Beschreibungssprache (IDL)
• Compiler für
viele Sprachen
Thrift-Files
Test-Daten
15 / 23
• (random / biased) Sampling (z.B.
Tages-Basis für kleinere Test-Cluster)
• Feedback Loop für manuelle
Datenerzeugung (Regressionstest)
Graduelle Erhöhung der Testabdeckung &
Software-Qualität
Reale Daten
Test-Daten
16 / 23
QS in Big
Data Entw.
FitNesse &
der Elefant
Test-Daten-
Definition
Job & Workflow
Kontrolle
Inspektion
Ergebnisse
Der Weg zur Big Data QS
17 / 23
FTP / HDFS Zugriff
Jobs
18 / 23
Hadoop-Jobs
Jobs
• Zugriff über CLI
• CLI-Output wird mit Testergebnis
gespeichert
19 / 23
QS in Big
Data Entw.
FitNesse &
der Elefant
Test-Daten-
Definition
Job & Workflow
Kontrolle
Result
Inspection
Der Weg zur Big Data QS
20 / 23
Pig
Ergebnisse
21 / 23
Hive
Ergebnisse
22 / 23
Demo Time!
• Hadoop-VM basierend auf CDH 4.2
• FitNesse Server einrichten
• CSV-Logfile erzeugen
• Auswertung via Hadoop-Job (count
viewed items)
• Prüfen der Ergebnisse mit Hive
23 / 23
QS: divers,
intuitiv
FitNesse:
Test-Wiki,
Fixtures
Test-Daten:
CSV, Thrift
Jobs: HDFS,
HadoopResults:
Pig, Hive
Vielen Dank!
dominik.benz@inovex.de

Weitere ähnliche Inhalte

Andere mochten auch

Influencer Marketing POV
Influencer Marketing POV Influencer Marketing POV
Influencer Marketing POV AdManScott
 
10 Pearls of Wisdom for Working With & Leading People
10 Pearls of Wisdom for Working With & Leading People10 Pearls of Wisdom for Working With & Leading People
10 Pearls of Wisdom for Working With & Leading PeopleOgilvy
 
IBM Commerce Insurance Marketing PoV
IBM Commerce Insurance Marketing PoVIBM Commerce Insurance Marketing PoV
IBM Commerce Insurance Marketing PoVLynn Kesterson-Townes
 
Social Media nach dem Hype – Wo stehen wir heute?
Social Media nach dem Hype – Wo stehen wir heute?Social Media nach dem Hype – Wo stehen wir heute?
Social Media nach dem Hype – Wo stehen wir heute?Falk Ebert
 
UDG Somex - Social Media für Unternehmen einfach gemacht
UDG Somex - Social Media für Unternehmen einfach gemachtUDG Somex - Social Media für Unternehmen einfach gemacht
UDG Somex - Social Media für Unternehmen einfach gemachtUDG United Digital Group
 

Andere mochten auch (6)

Influencer Marketing POV
Influencer Marketing POV Influencer Marketing POV
Influencer Marketing POV
 
Geschäftsmodelle 20 share
Geschäftsmodelle 20 shareGeschäftsmodelle 20 share
Geschäftsmodelle 20 share
 
10 Pearls of Wisdom for Working With & Leading People
10 Pearls of Wisdom for Working With & Leading People10 Pearls of Wisdom for Working With & Leading People
10 Pearls of Wisdom for Working With & Leading People
 
IBM Commerce Insurance Marketing PoV
IBM Commerce Insurance Marketing PoVIBM Commerce Insurance Marketing PoV
IBM Commerce Insurance Marketing PoV
 
Social Media nach dem Hype – Wo stehen wir heute?
Social Media nach dem Hype – Wo stehen wir heute?Social Media nach dem Hype – Wo stehen wir heute?
Social Media nach dem Hype – Wo stehen wir heute?
 
UDG Somex - Social Media für Unternehmen einfach gemacht
UDG Somex - Social Media für Unternehmen einfach gemachtUDG Somex - Social Media für Unternehmen einfach gemacht
UDG Somex - Social Media für Unternehmen einfach gemacht
 

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

Feedback-Loops in der ABAP Softwareentwicklung
Feedback-Loops in der ABAP SoftwareentwicklungFeedback-Loops in der ABAP Softwareentwicklung
Feedback-Loops in der ABAP SoftwareentwicklungPascal_Erni
 
Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Nico Orschel
 
LAIK: A Library for Fault Tolerant Distribution of Global Data
LAIK: A Library for Fault Tolerant Distribution of Global DataLAIK: A Library for Fault Tolerant Distribution of Global Data
LAIK: A Library for Fault Tolerant Distribution of Global DataDai Yang
 
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißReal Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißOPITZ CONSULTING Deutschland
 
BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?
BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?
BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?Guido Schmutz
 
PostgreSQL: Die Freie Datenbankalternative
PostgreSQL: Die Freie DatenbankalternativePostgreSQL: Die Freie Datenbankalternative
PostgreSQL: Die Freie DatenbankalternativePeter Eisentraut
 
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
 
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...Marc Müller
 
Intersys - Integration mit Spirateam (Zurich 2017)
Intersys - Integration mit Spirateam (Zurich 2017)Intersys - Integration mit Spirateam (Zurich 2017)
Intersys - Integration mit Spirateam (Zurich 2017)Adam Sandman
 
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der ZukunftTest-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der ZukunftChristian Drumm
 
Automatisierte GUI-Tests mit Selenium
Automatisierte GUI-Tests mit SeleniumAutomatisierte GUI-Tests mit Selenium
Automatisierte GUI-Tests mit SeleniumBenjamin Schmid
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsGFU Cyrus AG
 
Testautomatisierung mit SAHI Pro
Testautomatisierung mit SAHI ProTestautomatisierung mit SAHI Pro
Testautomatisierung mit SAHI ProJoerg Sievers
 
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...Marc Müller
 
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...NETWAYS
 

Ähnlich wie Bug bites elephant? Testgetriebene QS in der Big-Data-Entwicklung (20)

TDD für Testmuffel
TDD für TestmuffelTDD für Testmuffel
TDD für Testmuffel
 
A/B Testing mit Node.js
A/B Testing mit Node.jsA/B Testing mit Node.js
A/B Testing mit Node.js
 
Feedback-Loops in der ABAP Softwareentwicklung
Feedback-Loops in der ABAP SoftwareentwicklungFeedback-Loops in der ABAP Softwareentwicklung
Feedback-Loops in der ABAP Softwareentwicklung
 
Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013
 
QUANTO Solutions Q-SEC
QUANTO Solutions Q-SECQUANTO Solutions Q-SEC
QUANTO Solutions Q-SEC
 
QUANTO Solutions Q-GO
QUANTO Solutions Q-GOQUANTO Solutions Q-GO
QUANTO Solutions Q-GO
 
LAIK: A Library for Fault Tolerant Distribution of Global Data
LAIK: A Library for Fault Tolerant Distribution of Global DataLAIK: A Library for Fault Tolerant Distribution of Global Data
LAIK: A Library for Fault Tolerant Distribution of Global Data
 
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißReal Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
 
BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?
BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?
BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?
 
PostgreSQL: Die Freie Datenbankalternative
PostgreSQL: Die Freie DatenbankalternativePostgreSQL: Die Freie Datenbankalternative
PostgreSQL: Die Freie Datenbankalternative
 
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
 
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
 
Intersys - Integration mit Spirateam (Zurich 2017)
Intersys - Integration mit Spirateam (Zurich 2017)Intersys - Integration mit Spirateam (Zurich 2017)
Intersys - Integration mit Spirateam (Zurich 2017)
 
Enterprise APEX
Enterprise APEXEnterprise APEX
Enterprise APEX
 
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der ZukunftTest-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
 
Automatisierte GUI-Tests mit Selenium
Automatisierte GUI-Tests mit SeleniumAutomatisierte GUI-Tests mit Selenium
Automatisierte GUI-Tests mit Selenium
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
 
Testautomatisierung mit SAHI Pro
Testautomatisierung mit SAHI ProTestautomatisierung mit SAHI Pro
Testautomatisierung mit SAHI Pro
 
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
 
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
 

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
 

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

  • 1. Dr. Dominik Benz | Inovex GmbH Bug bites Elephant? Testgetriebene QS in der Big-Data-Entwicklung
  • 2. 2 / 23 Class A extends Mapper… ROI, $$, … apt-get install… F I T N E S S E Definition Akzeptanztests QS-Plattform! Wer spricht Elefant-isch?
  • 3. 3 / 23 QS in Big Data Entw. FitNesse & der Elefant Test-Daten- Definition Job & Workflow Kontrolle Inspektion Ergebnisse Der Weg zur Big Data QS
  • 4. 4 / 23 Big Qualität? Anwendungs- entwicklung Funktionalität Ende zu Ende, abgeschlossen eher homogen standalone, scale up Big Data Datenmengen, -vielfalt Datenflüsse, viele Quellen divers verteilt, scale out Test-Schwerpunkt Test-Paradigma Beteiligte Umgebung, Ablauf QS & Big Data
  • 5. 5 / 23 Bestehende Ansätze testet Nachteile JUnit / MRUnit Isolierte Funktionen keine Integrationstests, (Java-) Syntax iTest (Apache BigTop) z.B. ganze Hadoop-Jobs Test-Spezifikation in Java / Groovy Scripts, CLI Workflow-Steuerung, händische Inspektion der Ergebnisse „komplexe“ Syntax, schwer automatisierbar FitNesse passende Ergänzung / Lösung! QS & Big Data
  • 6. 6 / 23 QS in Big Data Entw. FitNesse & der Elefant Test-Daten- Definition Job & Workflow Kontrolle Inspektion Ergebnisse Der Weg zur Big Data QS
  • 7. Fit for Testing! „fully integrated standalone wiki and acceptance testing framework” • (automatisch) „ausführbare“ Wiki- Seiten • (fast) natürlich- sprachliche Testfall- formulierung • Anbindung an SUT via (Java-)“Fixtures“ FitNesse
  • 8. 8 / 23 Architektur FitNesse check | view count | customerA | productB | 7 Browser FitNesse Server public int viewCount (cust, prod) { … } System under Test Fixtures Java-„Methodenaufrufe“ direkt aus dem Wiki!
  • 9. 9 / 23 Test-Ausführung FitNesse • Farbe enkodiert PASS / FAIL • Integriert (REST) in Jenkins, CLI, Eclipse, …
  • 10. 10 / 23 Dazugehörige Fixture FitNesse public 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 / 23 Best Practice: Infrastruktur FitNesse Fitnesse Master TestEnvironments ProjA ProjB TestConfigurations ProjA ProjB dev qs live dev qs live Import / edit tests remotely QS ProjA Slave Dev ProjA Slave Live ProjA SlaveProjA QS ProjA Slave Dev ProjA Slave Live ProjA Slave Import / edit config remotely dev qs live
  • 12. 12 / 23 QS in Big Data Entw. FitNesse & der Elefant Test-Daten- Definition Job & Workflow Kontrolle Inspektion Ergebnisse Der Weg zur Big Data QS
  • 13. 13 / 23 CSV-Files Test-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 / 23 • Big Data: effizienter (binärer) Daten- austausch, heterogenes Umfeld • Interface-Beschreibungssprache (IDL) • Compiler für viele Sprachen Thrift-Files Test-Daten
  • 15. 15 / 23 • (random / biased) Sampling (z.B. Tages-Basis für kleinere Test-Cluster) • Feedback Loop für manuelle Datenerzeugung (Regressionstest) Graduelle Erhöhung der Testabdeckung & Software-Qualität Reale Daten Test-Daten
  • 16. 16 / 23 QS in Big Data Entw. FitNesse & der Elefant Test-Daten- Definition Job & Workflow Kontrolle Inspektion Ergebnisse Der Weg zur Big Data QS
  • 17. 17 / 23 FTP / HDFS Zugriff Jobs
  • 18. 18 / 23 Hadoop-Jobs Jobs • Zugriff über CLI • CLI-Output wird mit Testergebnis gespeichert
  • 19. 19 / 23 QS in Big Data Entw. FitNesse & der Elefant Test-Daten- Definition Job & Workflow Kontrolle Result Inspection Der Weg zur Big Data QS
  • 22. 22 / 23 Demo Time! • Hadoop-VM basierend auf CDH 4.2 • FitNesse Server einrichten • CSV-Logfile erzeugen • Auswertung via Hadoop-Job (count viewed items) • Prüfen der Ergebnisse mit Hive
  • 23. 23 / 23 QS: divers, intuitiv FitNesse: Test-Wiki, Fixtures Test-Daten: CSV, Thrift Jobs: HDFS, HadoopResults: Pig, Hive Vielen Dank! dominik.benz@inovex.de