GTAC 2014: Präsentationen

Alle GTAC-Videoaufzeichnungen und -Folien 2014 sind öffentlich verfügbar. Sie können sie sich in der YouTube-Playlist „GTAC 2014“ oder in den folgenden Vorträgen ansehen:

Eröffnungsbemerkungen

Sonal Shah (Google)

Eröffnungsrede – Schnell vorankommen

Ankit Mehta (Google)

Links: Video, Präsentationen

Automatisierung für ein besseres Web

James Graham (Mozilla)

Das Web ist die beliebteste App-Plattform. Eine schlechte Browser-Interoperabilität ist bei Webentwicklern jedoch eine weit verbreitete Ursache für Bestürzung und Frustration. Das W3C hat es sich zur Aufgabe gemacht, die Community dabei zu unterstützen, kontinuierlich aktualisierte, browserübergreifende Testsuiten für das offene Web zu entwickeln, die Webplattformtests durchführen. In diesem Vortrag stellt James Web-Plattformtests vor und beschreibt die Tools, die wir zur Automatisierung der Tests in verschiedenen Desktop-Browsern und auf Mobilgeräten mit Firefox OS entwickelt haben. Er zeigt, wie diese Software entwickelt wurde, um die Herausforderungen der Ausführung eines extern bereitgestellten, häufig aktualisierten Testsuites für Hunderte von Commits pro Tag im Continuous Integration-System von Mozilla zu erfüllen.

Links: Video, Präsentationen

Chrome zum besten mobilen Browser machen

Karin Lundberg (Google)

Einer der Gründe für den Erfolg von Chrome sind die Grundprinzipien zu Geschwindigkeit, Stabilität, Nutzerfreundlichkeit und Sicherheit (die vier S). Als wir Chrome für Android und iOS auf den Markt brachten, nutzten wir nicht nur die vier Aspekte für den Browser selbst, sondern auch für die Durchführung automatischer Tests und die Art der durchgeführten Tests:

  • Die Geschwindigkeit ist für Leistungstests und schnelle Tests gedacht.
  • Stabilität ist für Stabilitätstests und stabile Tests vorgesehen.
  • Mit dem Test lässt sich ganz einfach testen, ob die Nutzung von Chrome nutzerfreundlich ist und ob Tests problemlos hinzugefügt und ausgeführt werden können.
  • Sicherheit ist für Sicherheitstests gedacht.

Links: Video, Präsentationen

Eine Testautomatisierungssprache für Verhaltensmodelle

Nan Li (Medidata-Lösungen)

Modellbasierte Tester entwerfen abstrakte Tests in Bezug auf Modelle, z. B. Pfade in Diagrammen. Anschließend müssen die abstrakten Tests in konkrete Tests umgewandelt werden. Die Transformation von abstrakten zu konkreten Tests muss automatisiert werden. Vorhandene modellbasierte Testverfahren für Verhaltensmodelle verwenden viele zusätzliche Diagramme wie Klassendiagramme und Anwendungsfalldiagramme für die Transformation und Generierung von Tests. In der Praxis sind sie sehr kompliziert, da die Tester alle ähnlichen Diagramme immer konsistent machen müssen, auch wenn die Anforderungen häufig geändert werden.

In diesem Vortrag wird eine Testautomatisierungssprache eingeführt, mit der Tester anhand eines einzigen Verhaltensmodells (z. B. eines Zustandsmaschinendiagramms) Tests durchführen können. Es werden drei Probleme behandelt: (1) Zuordnungen von Modellen zu ausführbarem Testcode erstellen und Testwerte generieren, (2) Diagramme transformieren und Abdeckungskriterien zum Generieren von Testpfaden verwenden und (3) Einschränkungen lösen und konkrete Tests generieren.

Links: Video, Präsentationen

Testabdeckung bei Google

Andrei Chirila (Google)

Haben Sie sich schon einmal gefragt, wie das Testen bei Google aussieht? Welche Tools nutzen wir, um die Testabdeckung zu messen und darauf zu reagieren? Wir werden kurz den Entwicklungsprozess bei Google beschreiben und uns dann darauf konzentrieren, die Abdeckung von Codeabdeckung zu messen. Außerdem gehen wir darauf ein, wie wir die Codeabdeckung verwenden, um die Codequalität und die technische Produktivität zu verbessern. Am Ende stellen wir die große Menge an Abdeckungsdaten vor, die mehr als 100.000 Commits umfassen, die wir gesammelt haben, und einige weiter gefasste zutreffende Schlussfolgerungen.

Links: Video, Präsentationen

CATJS: Anwendungen, die sich selbst testen

Ran Snir (HP) und Lior Reuven (HP)

In den letzten Jahren haben wir viele Anomalien festgestellt, die unsere Sichtweise in der Welt der Datenverarbeitung verändert haben. Es gibt 3D-Drucker, die 3D-Drucker drucken, Roboter, die sich selbst denken, und dann haben wir Catjs.

catjs ist ein Open-Source-Framework, mit dem sich mobile Web-Apps testen lassen. Einfache Annotationen in Ihrem HTML5-Code werden im Lebenszyklus der Anwendung in eingebettete Testskripts übersetzt. Diese Tests für das mobile Web können auf jedem Gerät, in jedem Betriebssystem und in jedem Browser durchgeführt werden. Mit catjs können Sie den Testablauf Ihrer App schnell und einfach durchführen.

Links: Video, Präsentationen

Skalierbare kontinuierliche Integration – Open Source

Vishal Arora (Dropbox)

Es gibt viele Open-Source-Tools für Continuous Integration (CI). Nur wenige davon funktionieren in großem Umfang. Und keine davon ist in einer verteilten Umgebung für die Skalierung ausgelegt. Lernen Sie die Herausforderungen bei der Implementierung von CI in großem Maßstab kennen. Sie erfahren außerdem, wie Sie Open-Source-Komponenten zusammensetzen, um schnell ein eigenes verteiltes, skalierbares CI-System zu erstellen.

Links: Video, Präsentationen

Ich teste nicht oft, aber wenn ich es tue, teste ich die Produktion

Gareth Bowles (Netflix)

Jeden Tag konsumieren Netflix mehr Kunden auf immer mehr Clientgeräten. Außerdem arbeiten wir ständig an Innovationen, um die Nutzererfahrung zu verbessern. Tests in einer solchen sich schnell ändernden Umgebung sind eine große Herausforderung und wir sind zu dem Schluss gekommen, dass das Ausführen von Tests in unserer Produktionsumgebung oft die effizienteste Methode zur Validierung dieser Änderungen ist. In dieser Gesprächsrunde geht es um drei Testmethoden, die in der Produktion eingesetzt werden: Simulationen aller Arten von Ausfällen mit der Simian Army, die Suche nach Regressionen mithilfe von Canarys und die Messung der Testeffektivität mit einer Codeabdeckungsanalyse aus der Produktion.

Links: Video, Präsentationen

Die Bedeutung von automatisierten Tests auf echten und virtuellen Mobilgeräten

Jay Srinivasan (Google) und Manish Lachwani (Google)

Im Vergleich zur Webwelt sind Tests für Mobilgeräte ein entscheidender Faktor. Auf verschiedenen Geräten, Betriebssystemen, Netzwerken und Standorten gibt es eine scheinbar unendliche Anzahl von Variablen, die Entwickler berücksichtigen müssen. In dieser Lerneinheit sprechen wir über einige der besonderen Herausforderungen, die bei der Optimierung der Leistung und Qualität mobiler Apps auftreten können, sowie Strategien zur Bewältigung dieser Probleme, einschließlich des Bedarfs an Automatisierung, echten Geräten und echten Bedingungen.

Links: Video, Präsentationen

Kostenlose Tests sind besser als kostenlose Bananen: Data Mining und maschinelles Lernen zur Automatisierung des Monitorings von Produktionsumgebungen in Echtzeit

Celal Ziftci (Google)

Das Interesse an Data-Mining- und Machine-Learning-Techniken für die Analyse, Wartung und das Testen von Softwaresystemen wächst stetig. In diesem Vortrag erörtert Celal, wie wir solche Techniken einsetzen, um Systemabweichungen automatisch abzubauen, sie in Echtzeit zu überwachen und unsere Entwickler innerhalb weniger Minuten auf potenzielle Produktionsprobleme aufmerksam zu machen.

Die Gesprächsrunde besteht aus zwei Tools, die wir intern nutzen, und wie wir sie kombinieren, um die Produktionsüberwachung in Echtzeit für Entwickler kostenlos anzubieten:

  1. Ein Tool, das Systeminvarianten abbaut.
  2. Ein Tool, das Produktionssysteme überwacht und das erste Tool verwendet, um automatisch einen Teil der Logik zu generieren, mit der potenzielle Probleme in Echtzeit erkannt werden.

Links: Video, Präsentationen

Automatisierung mit einer Infrarot-Set-Top-Box testen

Olivier Etienne (Orange)

In diesem Vortrag wird erklärt, was ein TV-App-Kontext ist und welche Probleme wir bei der Automatisierung der Dinge haben können. Olivier sieht sich die Fehler, ihre Herangehensweise und die wichtigsten Punkte für die Entwicklung eines automatischen Testtools an. Wenn es die Zeit zulässt, werden die Details der Implementierung genauer beschrieben.

Hören Sie sich an, wie einige Verkäufer und einige Codezeilen die vielfältigen Webtests einer Set-Top-Box ermöglicht haben.

Links: Video, Präsentationen

Die Herausforderung eines fairen Vergleichs von Cloud-Anbietern und was wir dagegen tun

Anthony Voellm (Google)

In dieser Gesprächsrunde geht es um die Geschichte des Benchmarking von Mainframe bis Cloud. Ziel ist es, eine Grundlage dafür zu schaffen, wo Benchmarks begannen und wie sie dorthin gelangt sind. Darin werden Ideen für die Zukunft des Cloud-Benchmarkings und unserer praktischen Umsetzung erläutert.

Links: Video, Präsentationen

Never Send a Human to do a Machine’s Job: So verwendet Facebook Bots zum Verwalten von Tests

Roy Williams (Facebook)

Facebook hat keine Testorganisation. Die Entwickler sind für alles verantwortlich, vom Schreiben des Codes über das Testen bis hin zum Schaffen von Code in die Produktion. Das bedeutet aber nicht, dass wir keine Tests durchführen. Wir haben diese Skalierung vorgenommen, indem wir den Testlebenszyklus automatisiert haben, um ein hohes und hohes Rauschen zu gewährleisten. Neue Tests gelten als nicht vertrauenswürdig und werden schnell aus der Baumstruktur entfernt. Wir sprechen darüber, was gut funktioniert hat und was nicht, um Vertrauen in Tests zu schaffen.

Links: Video, Präsentationen

Espresso, Löffel, Wiremock, Oh mein! ( oder wie ich gelernt habe, mir keine Sorgen mehr zu machen, und ich liebe Android-Tests)

Michael Bailey (American Express)

Hier erfahren Sie, wie Sie schnelle und zuverlässige automatisierte Android-UI-Tests erstellen und ausführen. Zu den Tools gehören beispielsweise Espresso, Spoon, Wiremock und Jenkins. Grundkenntnisse in Android und Java werden vorausgesetzt.

Links: Video, Präsentationen

Google BigQuery

Brian Vance (Google)

BigQuery ist der interaktive Big-Data-Dienst von Google Cloud. Mit SQL-ähnlichen Abfragen können Nutzer Terabyte an Daten in wenigen Sekunden analysieren. Sie basiert auf Dremel, das die Google-Tester seit Jahren intern nutzen. Wir zeigen Ihnen einige Beispiele und zeigen Ihnen, wie Sie mit BigQuery starten.

Links: Video, Präsentationen

Selendroid – Selenium für Android

Dominik Dary (Adobe)

Selendroid ist ein Open-Source-Framework für die Testautomatisierung, das die Benutzeroberfläche nativer und hybrider Android-Anwendungen sowie das mobile Web verdrängt. Tests werden mit der Selenium 2 Client API geschrieben. Zum Testen ist es nicht erforderlich, die zu testende App zu ändern, um sie zu automatisieren.

Diese Präsentation zeigt der Zielgruppe, wie einfach sich Tests für Mobilgeräte testen lassen. Hier erfahren Sie, wie Selendroid native und hybride Android-Apps und das Selenium-Raster für parallele Tests auf mehreren Geräten verwenden kann. Darüber hinaus werden Themen wie die Verlängerung des Selendroid zur Laufzeit und plattformübergreifende Tests behandelt.

Links: Video, Präsentationen

Sanity in einer Hypermedia-Welt pflegen

Amit Easow (Comcast)

Mittlerweile hat sich Comcast von einem Kabelunternehmen zu einem führenden Medien- und Technologieunternehmen entwickelt. Gleichzeitig sind die Entwicklerteams intelligenter geworden. Als Amit 2006 zu Comcast Interactive Media (CIM) stieß, war das Unternehmen ein Shop für manuelle Tests. Nachdem 2007 seine erste Website veröffentlicht wurde, begann er, Prototypen für eine automatisierte UI-Testinfrastruktur zu erstellen. Er kam 2008 bei GTAC in das Selenium und kehrte dann zu Comcast zurück, um eine automatisierte Testinfrastruktur mit Selenium Grid, Hudson und Subversion aufzubauen. Heute arbeitet er an Wochentagen mit API-Tests für die Produktion. Dies wird mit Python, Git, Gerrit und Anthill ermöglicht.

Links: Video, Präsentationen

Schneller feuern mit MSL!

Bryan Robbins (FINRA) und Daniel Koo (FINRA)

Software schneller zu liefern, ohne die Qualität zu beeinträchtigen, ist keine leichte Aufgabe. Wir alle möchten schnell arbeiten, indem wir Tests frühzeitig entwickeln und Tests mit minimalem Wartungsaufwand ausführen. Bei FINRA haben wir MSL (gesprochen „Missile“) entwickelt, damit agile Teams mehrschichtige Architekturen wie MVC nutzen können, um ihren UI-Code schneller und isolierter zu testen.

MSL unterstützt Integrationstests von UI-Code (z. B. JavaScript, HTML, CSS), indem er lokal auf einem Node.js-Server bereitgestellt wird und beispielhafte HTTP-Antworten aus dem Testcode mithilfe eines unserer Clients (Java, JavaScript oder Node.js) konfiguriert werden. In diesem Vortrag werden einige wichtige Funktionen von MSL vorgestellt, die einige Beispiele enthalten.

Links: Video, Präsentationen

Nutzerfreundlichkeit von Tests

Alex Eagle (Google)

Die Produkte von Google werden häufig veröffentlicht und erfordern einen erheblichen automatisierten Test sowie Build-Copping. Wir arbeiten derzeit daran, unsere Testinfrastruktur im Rahmen der Google Cloud Platform anzubieten. In diesem Vortrag sprechen wir über einige unserer Methoden, mit denen wir unsere Builds umweltfreundlich und unsere Produkte fehlerfrei halten, und zeigen, wie wir dies weltweit umsetzen.

Links: Video, Präsentationen

Gesprächsrunde 1 – Plattformübergreifende Tests für Mobilgeräte

Links: Video, Präsentationen

Gesprächsrunde 2 – Abdeckung von Dokumentenautomatisierung

Links: Video, Präsentationen

Auswirkungen der Community-Struktur auf die Leistung von Satellitenlösungen

Zack Newsham (University of Waterloo)

Moderne CDCL-SAT-Lösungslösungen lösen in der Regel sehr große industrielle SAT-Instanzen in relativ kurzen Zeiträumen. Es ist klar, dass diese Solver die Struktur der realen Instanzen ausnutzen. Bisher gibt es jedoch nur wenige Ergebnisse, die diese Struktur genau charakterisieren. In diesem Artikel weisen wir nach, dass die Community-Struktur echter SAT-Instanzen mit der Laufzeit der CDCL-SAT-Löser korreliert. Es ist bekannt, dass echte SAT-Instanzen, die als Grafiken betrachtet werden, natürliche Gemeinschaften enthalten. Eine Gemeinschaft ist ein Teildiagramm des Diagramms einer SAT-Instanz, sodass dieses Teildiagramm mehr interne Kanten hat als der Rest des Diagramms. Die Community-Struktur einer Grafik wird oft durch einen Qualitätsmesswert namens Q gekennzeichnet. Intuitiv lässt sich ein Diagramm mit einer qualitativ hochwertigen Community-Struktur (hohes Qualitätsniveau) leicht in kleinere Communities unterteilen, das andere nicht. Wir stellen drei Ergebnisse auf der Grundlage empirischer Daten zur Verfügung, aus denen hervorgeht, dass die Community-Struktur von realen industriellen Instanzen ein besserer Indikator für die Laufzeit von CDCL-Löserechnern ist als andere gängige Faktoren wie Variablen und Klauseln. Zunächst besteht ein enger Zusammenhang zwischen dem Messwert „Q“ und dem Messwert „Literalblockabstand“ von Qualitätsklauseln, die in den Klausellöschungsrichtlinien in Glukose-Lösen verwendet werden. Zweitens zeigen wir mithilfe der Regressionsanalyse, dass die Anzahl der Communities und der Q-Wert des Diagramms der realen SAT-Instanzen die Laufzeit der CDCL-Löserechner besser vorhersagen können als traditionelle Messwerte wie die Anzahl der Variablen oder Klauseln. Außerdem zeigen wir, dass zufällig generierte SAT-Instanzen mit 0,05 ≤ Q ≤ 0,13 für CDCL-Löser deutlich schwieriger zu lösen sind als sonst.

Links: Video, Präsentationen

Über die Abdeckung hinaus: Welche Funktionen werden in Testsuiten angeboten?

Patrick Lam (Universität von Waterloo)

Wir alle wollen „bessere“ Testsuiten. Aber was macht eine gute Testsuite aus? Natürlich sollten Sie bei Testsuiten auf eine gute Abdeckung achten, zumindest auf der Ebene der Aussageabdeckung. Damit sie nützlich sind, sollten Testsuiten schnell genug ausgeführt werden, um zeitnahes Feedback zu geben.

In diesem Vortrag wird eine Reihe weiterer Dimensionen untersucht, mit denen Testsuiten bewertet werden können. Der Vortrag besagt, dass bessere Testsuiten einfacher zu verwalten und nutzerfreundlicher sind, z. B. weil sie schneller ausgeführt werden oder weniger Ressourcen verbrauchen. Außerdem haben sie weniger ungerechtfertigte Fehler. In diesem Vortrag werde ich Fakten über 10 Open-Source-Testsuiten (von 8.000 bis 246.000 Codezeilen) präsentieren und synthetisieren und ihre Leistung bewerten.

Links: Video, Präsentationen

Umweltbewusst: toxische mobile Umgebungen bereinigen

Thomas Knych (Google), Stefan Ramsauer (Google), Valera Zakharov (Google) und Vishal Sethia (Google)

Wir stellen Tools und Techniken zum Erstellen schneller, stabiler und hermetischer Testumgebungen für die Ausführung von Android-Tests im interaktiven Entwicklungs- und Integrationsmodus vor. Dies baut auf dem Gespräch auf höherer Ebene auf, das wir bei der letzten GTAC-Konferenz vorgestellt haben.

Links: Video, Präsentationen