Midterm support and development of Mobile Applications

screen-shot-2016-12-15-at-16-42-33

Code legacy, project member fluctuation, frequent code changes. Terms which make longterm projects and quality assurance challenging, this also applies to software. Now, with an iPhone app in store where the first line of code was written in Nov. 2013, … 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 …)

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 …)