Keyword-Driven Testing – Ergebnisse aus Erfahrung im Projekteinsatz

Die ITGAIN hat den Ansatz des Keyword-Driven Testing bereits in Kunden-Projekten erfolgreich umgesetzt. Dabei zeigte sich, dass sich der initiale Aufwand über die Zeit auszahlt. Ist der Ansatz des KDT umgesetzt, d.h. im Software Development Prozess integriert, kommen die Vorzüge voll zum Tragen. Vorausgesetzt es wird von allen Beteiligten gelebt.

Durch die Anwendung des Keyword-Driven Testing (KDT) zur Qualitätssicherung kann die Zusammenarbeit der beteiligten Personen optimiert werden. Der KDT-Ansatz stellt ein Vorgehen dar, das sowohl für manuelle als auch automatische Tests angewendet werden kann. Ein wichtiger, jedoch häufig nicht ausreichend stark betrachteter und somit beachteter Bestandteil des Softwareentwicklungsprozesses ist die Qualitätssicherung. Oftmals ist eine nicht optimale Zusammenarbeit von Entwicklern, Fachanwendern und Testern ein Grund für Verzögerungen.

Der Vorteil des KDT ist, dass durch eine einfache Notation keine tiefgehenden technischen Kenntnisse erforderlich sind, um Testfälle zu verstehen und sogar zu definieren. Möglich wird dies, da für jede Aktion der Anwendung ein Keyword definiert und in einer Keyword-Bibliothek abgelegt wird. Dem Tester wird somit durch die Aneinanderreihung von Keywords ermöglicht, Testfälle zu definieren. Die Keywords repräsentieren Aktionen der Anwendung und die mit diesen Aktionen verbundene Logik. Jeder Testschritt lässt sich somit durch ein Keyword darstellen.

Tiefergehende Informationen bieten wir Ihnen im Anhang.

Kennen Sie schon: Künstliche Intelligenz zum Selbermachen?

Verfolgt man aktuelle Nachrichten, so ist um das Thema künstliche Intelligenz (kurz: KI) und dem damit verbundenen Hype kaum herumzukommen.
Ob nun Googles AlphaGo [Link: Googles AlphaGo] die weltbesten GO Spieler besiegt oder Künstliche Intelligenz beim Kampf gegen Hautkrebs [Link: Künstliche Intelligenz beim Kampf gegen Hautkrebs] hilft, jeden Tag finden sich neue Anwendungsgebiete und es scheint nur noch eine Frage der Zeit, bis Maschinen dem Menschen den Rang ablaufen.

Da drängt sich natürlich die eine Frage auf: Kann ich eine KI Zuhause selber machen?

Die Antwort: klar, kein Problem.

Die Algorithmen, die es seit ein paar Jahren so zuverlässig in die Nachrichten schaffen, basieren auf künstlichen, neuronalen Netzen (KNN). Diese Netze sind im Wesentlichen ein sich selbst konfigurierendes Verfahren zur Mustererkennung und begleiten uns bereits seit den 80iger Jahren.

Es existiert somit eine breite Wissensbasis und eine Auswahl verschiedener Werkzeuge zur Arbeit mit neuronalen Netzen. Als kurze Einführung in das Thema empfehlen wir das Buch 'Deep Learning' [Link: Buch 'Deep Learning].

Neben einem breiten Angebot freier Software zur Arbeit mit KNN haben zudem viele der großen Unternehmen ihre eigenen KNN-Frameworks durch freie Lizenzen der Öffentlichkeit zugänglich gemacht. Für den geneigten Leser haben wir hier eine kurze Auswahl zusammengestellt:

Bis auf geringe Unterschiede in Performance und Dokumentation bieten die Frameworks ähnliche Leistungen. Eine Vielzahl von Anleitungen und Tutorials erleichtern den Einstieg.

Laden Sie sich doch einfach einen der Beispieldatensätze herunter und arbeiten Sie sich durch die Tutorials. Wenn Sie sich mit den Grundlagen hinreichend sicher fühlen, können Sie ihr Wissen und Ihre Fähigkeiten auf Teslas OpenAI Plattform [Link: Teslas OpenAI Plattform ] vertiefen.
OpenAI ist eine offene KI-Test und Trainingsplattform, die eine Sammlung von Problemfeldern und Beispieldaten aus dem Bereich der künstlichen Intelligenz bereitstellt.

Die größte Herausforderung für die Arbeit mit KNN ist das finden einer geeigneten Datenbasis.
Als Faustregel gilt: mit einigen Tausend Datensätzen erzielt man brauchbare Ergebnisse, ab mehreren Millionen Datensätzen kann man mit der menschlichen Konkurrenz mithalten.
Neben der Quantität der Daten spielt auch die Qualität eine zentrale Rolle. Wenn man beispielsweise ein neuronales Netz auf Basis ungefilterter Daten aus dem Internet trainiert, kann es schnell zu unerwünschten Nebeneffekten kommen.

Microsofts Twitter Bot Tay [Link: Microsofts Twitter Bot Tay] stellte dies eindrucksvoll unter Beweis, als sie nach nicht mal 24 Stunden wegen unethischer Tweets abgeschaltet werden musste. Solche Rückschläge mahnen zur Vorsicht. Auch wenn die künstliche Intelligenz den Menschen in Spezialdisziplinen überflügelt hat, so hinkt sie beim Lernen an sich noch weit hinterher.

Die Trends der Digitalisierung und BigData haben in den letzten Jahren dafür gesorgt, dass sich sowohl bei Privatpersonen als auch in Unternehmen ein mehr oder wenig strukturierter, ungenutzter Datenreichtum angehäuft hat. Diese Daten warten nur darauf mit Hilfe von KNN ausgewertet und nutzbar gemacht zu werden. Bei der Kombination der Daten und der Entwicklung von KNN ist Initiative und Experimentierfreude gefragt. Die genannten Beispiele können dabei helfen, mögliche Ansätze zu finden.

Viel Erfolg bei der Entwicklung Ihrer eigenen KI!

Sie haben Fragen oder möchten zu diesem Thema beraten werden? Gerne stehen wir für einen Austausch über die Technologien und die Vorgehensweise zur Verfügung. Kontakt zu ITGAIN. Wir freuen uns auf Ihre Nachricht.

Business Analytics: Passender Methodenmix bringt beste Resultate – ITGAIN Artikel im BI-Spektrum

Im Gespräch mit BI-Spektrum ist sich Per Stricker in drei Dingen ganz sicher: Big Data und Analytics funktionieren ohne kognitive Ansätze nicht, Banken und Versicherungen sind stärker mit Compliance- als mit Big-Data-Themen beschäftigt, und Data Lakes werden das Data Warehouse nicht ablösen.

Das Interview führte Christoph Witte, Chefredakteur BI-Spektrum, das vollständige Interview finden Sie folgend via dem aufgeführten Link.

Wie ITGAIN den Entwicklungsprozess automatisiert hat…

Einführung SCM bei ITGAIN

Während der Hauptfokus der ITGAIN auf dem Beratungsgeschäft liegt, gibt es seit Januar 2016 auch den Bereich "Product Development". Die Kollegen arbeiten hauptsächlich an Pflege und Weiterentwicklung unserer SpeedGain Familie.
Daneben haben sich in den über 15 Jahren ITGAIN einiges an Tools und Hilfsmitteln angesammelt, welche vielleicht mal als kleine Einmann-Projekte gestartet sind und mittlerweile zu ausgereiften Lösungen für den internen Gebrauch herangewachsen sind. Ein Beispiel ist RITA, welche regelbasiert über eine Drools Engine (https://www.drools.org/) unsere zweitägige ITAKADEMIE plant und ein Curriculum für 120 Mitarbeiter, 6+ parallele Tracks und ca. 40 Vorträge und Workshops erstellt.
Um die gesamte Softwareentwicklung innerhalb der ITGAIN flexibler und effizienter zu gestalten, wurde letztes Jahr begonnen, in die Softwareentwicklungsumgebung eine Sammlung von bewährten Open Source Tools zu integrieren und gleichzeitig die Abläufe weitgehend zu automatisieren.
Es kamen zum Zuge:

  • Buildmanager Jenkins (https://jenkins.io/ - steuert Maven und Gradle)
  • Statische Codeanalyse mit SonarQube (https://www.sonarqube.org/)
  • Artifakt Repository Nexus (https://www.sonatype.com/nexus-repository-sonatype)
  • Anforderungsmanagement und Bugtracker Redmine (http://www.redmine.org/)
  • Testmanagement mit Testlink (http://testlink.org/)
  • Testautomation mit Selenium (http://www.seleniumhq.org/)

Das Ganze wurde in vielen einzelnen Docker Containern aufgebaut und miteinander verknüpft; unterstützt von den Versionsverwaltungssystemen SVN und git.
Einige Monaten nach Fertigstellung der ersten Ausbaustufe wurden unserer Entwickler nach Feedback gefragt. Hier ein paar Zitate des zurückgespiegelten Antworten:

  • "[...] meiner Meinung nach ist unser ITGAIN SCM kostbar. Während der Entwicklung von (interner Produktname) konnten wir einige Bugs mit Hilfe von SonarQube identifizieren."
  • "Insbesondere die aus meiner Sicht weitreichende Automatisierung von SCM hat die Arbeit verbessert."
  • "die Ergebnisse der statische Codeanalyse genutzt. Als Resultat habe ich [...] Code überarbeitet bzw. einen Review unterzogen. Die Produktqualität ist hierdurch gestiegen (subjektiv)."

Wir planen unsere Systeme mit zusätzlichen Bausteinen zu ergänzen und die Automatisierung fortzuführen, um unseren Entwicklern noch besser helfen zu können.
Haben Sie Fragen zu diesem Artikel? Sprechen Sie uns an!

Vaadin 8 ist raus und stellt strenge Anforderungen!

In einem aktuellen Projekt wird das Vaadin Framework in die bestehende Anwendungslandschaft integriert. Dort ist momentan die Version 7.7.7 im Einsatz.
Als Hauptvorteile für den Einsatz werden folgende Punkte genannt:

Kürzere Eingewöhnungszeiten für die Programmierer, da man gerne in der Haus- und Hofsprache Java (und nicht JavaScript) programmiert und das komponentenbasierende Programmiermodell, welches nun eine ansehnliche und modernen Weboberfläche zur Verfügung stellt.

Seit Ende Februar steht nach mehreren Monaten Betaphase offiziell die neue Version 8 des Frameworks zur Verfügung, welches mit den folgenden Hauptfeatures wirbt (Link in English: https://vaadin.com/framework/whatsnew )

  • Änderungen an der API in Richtung Java8 mit funktionalen Interfaces, Lambda/Stream Unterstützung und verbesserte Typsicherheit usw.
  • Performanceoptimierung durch bessere Handhabung von Datencontainer bzw. direktes Dataobjekt-Binding
  • Weniger Boilerplate Code durch „schlauere“ Defaults
  • HTML Imports und Support für HTML5 Features wie Pagestack für die einfachere Vor-/Zurück Navigation
  • Verbessertes Einbinden von Vaadin Addons
  • Viele weitere Detailverbesserungen für Entwickler

Allerdings kommt die Version 8 auch mit einigen relativ strengen Forderungen einher, welche besonders in Legacy Systemen zu einigen Diskussionen führen werden:

  • Java8 (oder neuer) ist eine zwingende Voraussetzung
  • Servlet Container 3 (was zum Beispiel den noch eingesetzten WLS 10.3.x ausschließt)
  • Entfernung der Unterstützung von Legacy Browsern (IE <=10)
  • Wegfall der Tabellenkomponente, nur noch Benutzung des Grids für tabellarische Präsentationen

Im Moment ist der aktuelle Stand des Frameworks 8.0.5, wobei die Minor Versionserhöhungen schon genutzt wurde, die Kinderkrankheiten der 8er Version zu beheben und gemeldete Bugs auszumerzen.

Es gibt ein Migrationstool, welches bei der Anhebung von Projekten von 7 auf 8 hilft – aber für einige Teile wird immer noch Handarbeit nötig sein!

Die umfangreiche Sammlung von Beispielen mit Codeansicht und mannigfaltigen Einstellmöglichkeiten findet sich unter: http://demo.vaadin.com/sampler/

Wenn Sie Fragen zu Vaadin oder dem Artikel haben, sprechen Sie uns bitte an!