3rd-Party Interface Testing mit Cucumber – Teil I

Das altbekannte Problem In einer Software muss ein 3rd Party Service über eine definierte Schnittstelle eingebunden werden. Das Verhalten der Schnittstelle muss vorab getestet und verifiziert werden. Solche Tests sind Behaviour Driven, sprich das Verhalten der Schnittstelle wird vor der Integration in das … Weiterlesen

TYPO3 Updates – Versicherung oder überschätztes Sicherheitsbedürfnis?

Ein wenig provozierend der Titel dieses Blogposts – natürlich mit Absicht so gewählt. Die Antwort auf die obige Frage muss lauten: Abwägen!

Pauschal kann man nicht sagen, dass jedes erschienene Update auch zwingend die eigene TYPO3 Website betrifft und eingespielt werden sollte.  Leider ist es in der Praxis häufig so, dass die Kosten und Mühen für ein Update „gespart“ oder verdrängt werden und lieber abgewartet wird. Aber warten auf was?

Das ist dann in etwa so, wie wenn man mit seinem Internetauftritt „Russisch Roulette“ spielt. Gerade bei einer Firmenwebsite ist eine solche Entscheidung aus Sicherheitsüberlegungen nicht zu empfehlen.

Bezieht man sich auf die Sicherheit eines Systems, dann lassen sich Updates in die folgenden priorisierten Kategorien einteilen:

  • Prio 1: Security Issues -> Sicherheitslücken welche entdeckt wurden
  • Prio 2: Bugfixes -> Behebung von Fehlern in der Software
  • Prio 3: Improvements -> Funktionserweiterungen

Dabei kann natürlich ein Update auch Verbesserungen in allen 3 Bereichen beinhalten. Weiterhin gilt es zu unterscheiden, ob ein Update das TYPO3 Basissystem betrifft (den sogenannten CORE) oder sich auf Erweiterungen bezieht.  Genau hier kommt der Effekt zu tragen, dass nicht jedes Security Issue die eigene Website betreffen muss, da ja auch nicht überall dieselben Erweiterungen und Versionen eingesetzt werden.

Wie geht man also am besten als IT-Verantwortlicher mit dem Thema TYPO3-Updates um?

(mehr …)

Shopping. Commerce.

In-store Augmented Reality mit neuer IBM App. Ja, es geht nicht um E-Commerce, Multi- oder Omni-Channel oder sonstwie um Schlagwörter, sondern um Shopping und Commerce, Einkaufen und Verkaufen. Und das Erlebnis dazu. Es wird Zeit ohne Grenzen von On- und … Weiterlesen

Eine Tour durch die Testpyramide

Stellen sie sich vor der Compiler ihrer Programmiersprache würde nicht nur Typfehler, sondern auch einen Großteil der Verhaltensfehler in der Applikation finden können. Welche Auswirkung würde das wohl auf die Qualität ihrer Software haben? Gerade Praktiken der agilen Softwareentwicklung wie die schnelle, häufige Veröffentlichung oder sogar die kontinuierliche Veröffentlichung (Continuous Delivery) sind ohne ein schnelles und umfassendes Feedback über die Softwarequalität nicht denkbar. Automatische Tests können genau dieses Feedback geben – und dennoch werden sie von sehr wenigen Projekten genutzt.

Leider ist die Erstellung von effektiven automatischen Tests eine Fähigkeit, die bei der Ausbildung von Softwareentwicklern oft zu kurz kommt. Viele naive Ansätze der Testautomatisierung, wie etwa mit Tools, die wenig Aufwand durch Aufnahme und Wiedergabe von UI-Interaktionen versprechen, können schnell dazu führen, dass ein Team von dem Vorhaben frustriert ist und den Wert der automatischen Tests in Frage stellt. Das kann etwa dann der Fall sein, wenn kleine Änderungen an dem User Interface dazu führen, dass eine ganze Reihe an Tests fehlschlagen und Entwickler vor der Frage stehen, ob es sich tatsächlich um eine Regression handelt oder um eine falsche Fehlermeldung.

Im Extremfall führt dieser Missstand dazu, dass Änderungen am User Interface nur widerwillig von den Entwicklern vorgenommen werden. Es ist eine paradoxe Situation, da doch gerade durch die Tests auch bei tiefgreifenden Änderungen mehr Sicherheit und damit eine deutlich erhöhte Flexibilität der Software erreicht werden sollte. Die richtige Herangehensweise an Testautomatisierung ist deshalb der Schlüssel für eine frustfreie und wirtschaftliche automatisierung von Testfällen und Grundlage für rapide und häufige Lieferung von Software.

(mehr …)

Automatisierte Integrationstests für Webservices

Einen Webservice im Integrationstest anzusprechen hat vieles mit dem berüchtigten Schuss auf ein bewegtes Ziel gemeinsam: der Webservice ist aus Sicht des Tests schwer berechenbar und flüchtig. Netzwerkprobleme, eine Änderungen an der Datenbasis (z.B. durch vergessene „Aufräumarbeiten“ nach einem Test) oder die Änderung der Schnittstelle können zum ungewollten Scheitern der Integrationstests führen. Vor allem wenn sich die Daten des Webservices oft ändern, wie es bei Information Retrieval- oder PIM Systemen der Fall ist, kann der Aufwand der betrieben werden muss um die Tests laufend anzupassen bald die durch eine Automatisierung erhoffte Zeitersparnis übersteigen.

Aber selbst wenn der Webservice recht statisch ist, ist die Zeit für einen HTTP Round-Trip, der vielleicht auch noch eine Datenbankquery anstößt, ein unliebsamer Flaschenhals, der die Testausführung ausbremst. Mit den richtigen Techniken und Tools kann man jedoch auch flüchtige Webservices zähmen und so den Aufwand automatisierter Tests auf ein Minimum beschränken.

(mehr …)

Mehr Umsatz im E-Commerce durch Performance Management!

Geringe Ladezeit, keine Wartezeit, hohe Geschwindigkeit. In den letzten Jahren wird immer häufiger über den erfolgskritischen Faktor für e-Commerce Plattformen gesprochen. Google hat die Webseiten-Ladezeit im Jahr 2006 öffentlich thematisiert (siehe Grafik) und mit der Integration in Google Analytics und … Weiterlesen

Saubere Software

Bereits in den späten siebziger Jahren haben Studien festgestellt, dass ein Großteil der Kosten für ein Softwareprojekt in die Wartung und Weiterentwicklung fließen. Viele Unternehmen standen und stehen deshalb vor der schwierigen Situation ihre alten und zunehmend teueren „Legacy“ Systeme durch neue zu ersetzen. Wie kommt es eigentlich dazu und weshalb ist die Wartung und Weiterentwicklung von Software eigentlich so teuer?

(mehr …)

Terrific – a Frontend Development Framework goes Open Source

terrifically.org

Der Frontend Entwicklungsprozess wird durch die rasante Technologie- und Browserentwicklung immer komplexer. Die stetig steigende Vielzahl von Zielgeräten und Auflösungen, Animationen, CSS3, HTML5 etc. tun ihr Bestes, um die Aufwände und die Komplexität schon während der Konzeptionsphase zu erhöhen. Die unendlichen … Weiterlesen

Mobiler Preisvergleich – selbstbewusste App

Frankreich ist nicht gerade bekannt als Schnäppchenparadies. Jedoch bewirbt die Supermarktkette E.Leclerc in Paris intensiv eine App, welche einen Preisvorteil im Vergleich mit anderen Lebensmittelhändlern und Discountern (!) des Landes anpreist. Auf der Seite quiestlemoinscher.fr wird dargestellt, dass E.Leclerc in … Weiterlesen

HTML5 Verbreitung in der Schweiz im März 2012 bei 5,4%

Im Juni 2011 suchte ich im Rahmen eines Vortrags über HTML5 die Verbreitung des entsprechenden Doctypes in der Schweiz und fand die Antwort dank Urban Müller von search.ch. Und so sah das Bild im Juni 2011 aus.

Grundlage der Zahlen ist der Crawl der Volltextsuche von search.ch. Gezählt wird der Doctype der Base Pages der erste halbeMillion aller indexierten Domänen. Am letzten Freitag rasselte das Skript nochmals und mit dem folgenden Ergebnis.

Die Verbreitung von HTML5 hat sich in den acht Monaten ziemlich genau verdoppelt (+107%). Wahrscheinlich geht das Wachstum zu Lasten von HTML4 (-17%) und HTML 4.01 (-13%) der Rest bleibt im einstelligen Prozentbereich stabil. Spannend auch, dass HTML 1.0 es nur noch um 1,5% zunahm. Lässt das die Aussage zu, dass bei der Ablösung alter Systeme fast immer HTML5 gewählt wird? Hier noch die absluten Zahlen der der Top 7 Doctypes die 98% aller berücksichtigten Sites ausmachen.

Juni 11 März 12 Diff Diff in %
 xhtml 1.0 transitional 549207 557532 8325 1.5%
 html 4.01 transitional 184832 161260 -23572 -12.8%
 xhtml 1.0 strict 116231 116128 -103 -0.1%
 html 4.0 transitional 73877 61351 -12526 -17.0%
 html 26032 53894 27862 107.0%
 xhtml 1.1 16667 16451 -216 -1.3%
 html 4.01 12621 12570 -51 -0.4%