Wir leben in einer Zeit, welche geprägt ist von immer schnelleren Entwicklungszyklen. Dieses Problem schließt vor allem die Softwarebranche mit ein. Kunden verlangen nach immer häufigeren Releases, bei steigender Komplexität der Softwarelösungen. Dies führt dazu, dass die Qualität von Softwareprodukten enorm leidet und wir alle täglich mit fehlerhafter Software konfrontiert sind.
Updates der Hersteller bringen zwar oftmals eine Lösung für ein vorhandenes Problem, schließen aber häufig neue Fehler mit ein. Nicht nur die Anzahl an offensichtlichen Programmfehlern nimmt immer mehr zu, auch die für den Anwender verborgenen Sicherheitslücken in Softwareprogrammen werden zu einem maßgeblichen Problem für sowohl Kunden als auch Hersteller. Diese fehlerhaften Softwarelösungen richten jährlich weltweit einen Schaden von rund 1.715.430.778.500 USD (ein Tausend siebenhundertfünfzehn Milliarden US-Dollar) an.
Ein Beispiel wie ein trivialer Softwarefehler nicht nur die Unternehmensexistenz gefährdet, sondern auch Menschen in Gefahr bringen kann, ist anhand des 787 Dreamliners von Boeing ersichtlich. Dort schlich sich ein “Integer Overflow” ein, der die Steuereinheit nach 248 Tagen Dauerbetrieb in den ausfallsicheren Modus schalten ließ. Wenn dieser Fehler im Flug eintritt, verliert der Pilot die Kontrolle über die Maschine und ein Absturz ist die unausweichliche Konsequenz.
Um genau solchen Schäden vorzubeugen, müssen Programme getestet werden. Dies geschieht auf verschiedene Art und Weisen: Zum einen gibt es das manuelle Testen, wo Programme anhand eines Skripts händisch überprüft werden. Diese Skripte müssen jedoch von einem Testmanager erstellt werden, welcher manuell festlegt, welche Schritte ein Tester durchführen muss und wie sich die Software dabei verhalten soll. Danach übernehmen die zuständigen Tester und arbeiten das vorher definierte Skript ab, bevor das Produkt dem Kunden übermittelt wird. Diese Skripte müssen vor jedem Release erneut abgearbeitet werden und stellen somit eine enorme Belastung dar, weil ein manueller Testlauf in größeren Projekten mehrere Personenmonate bzw. Personenjahre in Anspruch nimmt.
Eine grundlegend effizientere Methode, um Software auf Fehler zu überprüfen, ist das automatisierte Testen. Diese Vorgehensweise war richtungsweisend im Bereich des Softwaretestens. Hierbei automatisieren Entwickler die erstellten Skripte, sodass diese nicht länger manuell von einem Tester abgearbeitet werden müssen. Der markanteste Vorteil gegenüber dem manuellen Testen besteht darin, dass diese Tests immer wieder ausgeführt werden können. Dabei entsteht jedoch ein hoher Initialaufwand, und es benötigt Fachkräfte, um diese komplexen Tests zu schreiben. Doch solche Spezialisten sind rar und somit für jedes Unternehmen schwer zu finden.
Automatisierte Softwaretests sind dem manuellen Testen ganz klar überlegen. Beide Methoden haben aber dasselbe Grundproblem: Ein Mensch ist dafür verantwortlich alle relevanten Testfälle zu definieren. Softwarelösungen sind heutzutage einfach viel zu komplex, als dass es einem Menschen möglich ist, alle Eventualitäten zu bedenken. Zusätzlich kann ein Tester nur solche Fehlerarten und Sicherheitslücken finden, die ihm bereits bekannt sind. Neben dem Risiko, dass Fehler übersehen werden, verbrauchen aktuelle Testprozesse enorme zeitliche und somit auch monetäre Ressourcen. In Summe verbringen Entwickler deutlich mehr als 30% ihrer Tätigkeit mit dem Erstellen von Testfällen, und trotzdem gelingt es ihnen nicht Software frei von Fehlern und Sicherheitslücken zu halten.
Wie kann Symflower das Softwaretesten nachhaltig verbessern?
Symflower setzt mit seinem Produkt genau an diesem Punkt an. Mit Hilfe von künstlicher Intelligenz und mathematischen Modellen werden Tests (so genannte Unit-Tests) vollautomatisch generiert und auch ausgeführt. Dies geschieht dabei ohne jeglichen menschlichen Einfluss und Zutun. Diese automatisch erzeugten Unit-Tests basieren auf technologischen Fortschritten, welche nach jahrelanger Grundlagenforschung nun in einem kommerziellen Produkt Anwendung findet. Zusätzlich setzt Symflower auf den Ansatz des Continuous Testing (kontinuierliches Testen). Darunter versteht man, dass für jede einzelne Änderung im Source Code, autonom wieder neue Unit-Tests geschrieben werden. Somit wird absolut jede Änderung überprüft.
Bisher war es beim Testen von Software aus wirtschaftlichen Gründen oftmals nicht möglich für alle Eventualitäten und Änderungen eigene Tests zu schreiben. Mit Hilfe von Symflower wird dieses Problem vollständig gelöst. Sobald ein Entwickler eine Änderung am Programm vornimmt, untersucht Symflower sofort und eigenständig, ob diese Änderung Probleme verursacht. Sollte dies der Fall sein wird der Entwickler darüber informiert. Somit kann Software in einer Qualität an Kunden ausgeliefert werden, welche den berechtigt hohen Ansprüchen auch wirklich entspricht. Softwarefehler wie bei Boeing gehören von nun an der Vergangenheit an.
Aber es wird nicht nur die Qualität massiv verbessert. Gleichzeitig wird auch die Softwareentwicklung schneller und kostengünstiger als dies heute der Fall ist. Durch die signifikante Reduktion des Testaufwands in der Produktentwicklung können sich Entwickler wieder voll und ganz auf ihre eigentliche Tätigkeit fokussieren: Dem Erstellen und Schaffen von neuen Funktionalitäten und großartiger Software.
Es gibt viele Gründe, warum unsere Kunden Symflower lieben, aber letztlich setzen sie die Software hauptsächlich aus folgenden Gründen ein:
Qualität:
Symflower erkennt nicht nur vollautomatisch Fehler in Softwareprogrammen, sondern findet auch autonom Performance- und Sicherheitsprobleme in ihrem Quellcode. Da wir mit Hilfe von KI und mathematischen Modellen Software ohne Menschen testen, finden wir auch Fehler, die Menschen übersehen würden. Durch den Einsatz unserer disruptiven Technologie erreichen sie somit eine noch nie dagewesene Testabdeckung. Als Folge daraus steigt die Qualität ihrer Softwareprodukte signifikant an. Nicht zuletzt führt fehlerfreie Software zu einer Reduktion der Reklamationen und somit zu einem Anstieg ihrer Kundenzufriedenheit.
Kosten:
Unsere Kunden können in der internen Softwareentwicklung Kosteneinsparungen von bis zu 60% erzielen. Ein Fehler, der noch während der Entwicklung ausgebessert wird, verursacht darüber hinaus wesentlich weniger Kosten, als würde man diesen beim Auftraggeber beheben müssen. Dies führt nicht nur zu einer Optimierung des Prozesses, sondern wirkt sich auch positiv auf das EBIT unserer Kunden aus. Zudem wird das unternehmerische Risiko von Hackerattacken, durch die automatische Erkennung von Sicherheitsproblemen drastisch reduziert.
Geschwindigkeit:
Symflower steigert die Effizienz eines Entwicklers um bis zu 40%. Dies ermöglicht eine schnellere Umsetzung von Projekten mit der gleichen Anzahl an Mitarbeitern. Durch diese wesentliche Reduzierung der internen Projektlaufzeit erreichen unsere Kunden eine frühere Rechnungsstellung und können somit ihren eigenen Cashflow optimieren. Zudem können die Kapazitäten schneller für neue Projekte eingesetzt werden.
Unsere Lösung ist als On-Premise und als Cloud-Dienst verfügbar. Die Software muß nur einmal konfiguriert werden und ist in weniger als 60 Minuten im Unternehmen einsatzbereit - unabhängig von der Anzahl ihrer Entwickler. Symflower benötigt keinerlei Einschulung und blockiert somit weder in der Einführungsphase, noch danach Ressourcen auf Kundenseite.
Verpassen Sie nicht die Zukunft des ? Softwaretestens!
Interessiert an einer Demo? Kontaktieren Sie uns. Wir sind gerne für Sie da.
Ihr Kontakt:
Ing. Norbert Presslaber, MBA
Managing Director / Sales and Marketing
mobil: +43-676-849 940 200
email: norbert.presslaber@symflower.com
Symflower GmbH
Coulinstrasse 24
4020 Linz, Austria, EU
www.symflower.com