Newsbeitrag
einer unserer Experten
Michael
Michael ist mittlerweile seit über sieben Jahren im Team der GMS Software Manufaktur und im Team der GMS Qualitätssicherung (QS) fest integriert. In seinen Tätigkeitsbereich fällt in erster Linie die Überprüfung der Software für Kassensysteme mittels Testautomatisierung. Die Programme GMS Kasse Zen und deren Mobilversion werden mit durchdachten Tests kontinuierlich von ihm gecheckt.
Mit durchdachten Tests überprüft er strategisch und operativ die Registrierkassensoftware. Er identifiziert Softwarefehler mit dem Ziel, gemeinsam mit den DevOps-Teams eine funktionierende Lösung bereitzustellen. Wenn er einmal nicht weiterweiß, was allerdings selten vorkommt, steht ihm sein Teamleiter und Mentor Kurt zur Seite.
ORF Beitrag "Licht ins Dunkel"
Im Rollstuhl zum Traumjob
Michael „Michi“ kam über die ORF & Ö3 Aktion „Licht ins Dunkel“ zur GMS Software Manufaktur. Damals suchte er eine Lehrstelle als Programmierer. Heinrich und Ulrich Hutter hörten den Ö3-Wecker-Beitrag, nahmen über den ORF Kontakt auf und luden Michael mit seiner Mama ins GMS Office in Salzburg. Seit diesem Zeitpunkt ist Michi fixer Bestandteil des GMS Teams.
Unser GMS Team
Interview mit Michael
Du bist verantwortlich für die Vorbereitung, Durchführung und Auswertung von automatischen Testläufen. Was macht dir besonders Spaß an deinem Job bei GMS?
Er ist sehr abwechslungsreich. Es tauchen immer wieder neue Herausforderungen auf. Software lebt und ist nichts Starres. Vor allem, wenn sie von zahlreichen Anwendern mit unterschiedlichen Anforderungen in den Betrieben genutzt wird, dann tauchen auch vielfältige Themen auf. Und in allen Fällen muss die Software stabil laufen, sonst kommt es zu Komplikationen während des Betriebs und der Kunde ist unzufrieden.
Wie sieht denn dein Arbeitsalltag aus?
Während meiner Arbeitszeit teste ich unsere Gastronomiesoftware. Untertags überlege ich mir den Inhalt der Software-Tests. Am Abend, bevor ich Dienstschluss habe, drücke ich dann aufs „Knopferl“ und die Tests laufen automatisiert durch. Somit wird jede Nacht getestet, um unsere hohen Qualitätsansprüche zu halten. Einerseits überlege ich mir diese Testsaufgrund von Eventualitäten, andererseits tauchen auch spezielle Anforderungen unserer Kunden auf, die dann in diese Tests noch zusätzlich eingebunden werden. Wir testen also nicht nur die Standardversionen, sondern auch die customized Versionen wirklich jeden Tag bzw. jede Nacht.
Wie genau kann man sich den Ablauf bei diesen automatisierten Softwaretests vorstellen?
Ich überlege mir zuerst ganz genau, wie zum ein Test für die GMS Kasse Zen aussehen soll. Was ist das Thema. Was ist das Ziel. Was soll dabei herauskommen, also wie soll das Testergebnis aussehen. Was darf nicht passieren darf oder was soll nicht passieren, muss ich mir ebenso überlegen. Ich muss auch bedenken, welche korrekten Fehlermeldungen kommen müssen, wenn der Nutzer eine falsche Eingabe tätigt. Und so weiter und so fort. Da kommt man vom Hundertsten ins Tausendste. In der Nacht laufen dann diese Tests, wie gesagt, automatisiert durch und am nächsten Tag in der Früh sehe ich die Ergebnisse. Eine grüne Markierung bedeutet, dass alles OK ist. Rote Markierungen heißen, da stimmt etwas nicht. Dann lege ich die Fehler-Reports in unserem entsprechenden Fehler-Management-Tool an, damit die Programmierer Bescheid wissen. Das ist wichtig, denn die direkte Kommunikation mit unseren Entwicklungsteams trägt zur schnellstmöglichen Abklärung von den Software-Fehlern bei.
Das klingt alles sehr komplex. Wie war das damals zu Beginn damals?
Es war spannend und herausfordernd. Seit über sieben Jahren bin ich nun bei der GMS. Damals habe ich eine Stelle als Lehrling gesucht. Aufgrund meiner Beeinträchtigung war das aber nicht so einfach und ich habe viele Absagen bekommen. Meine Mama hat sich dann an den Radiosender Ö3 gewendet und gemeinsam mit dem ORF und der Aktion Licht ins Dunkel wurde ein Aufruf gestartet. Den haben Heinrich und Ulrich im Radio gehört und ich wurde zu einem Vorstellunggespräch im GMS Office in Salzburg eingeladen. Ich weiß noch, ich war sehr nervös. Und wahnsinnig schüchtern. Es war ja auch mein erstes Vorstellungsgespräch. Alles in allem war es also sehr aufregend!
Wolltest du schon immer etwas im IT Bereich machen?
Na ja, ehrlich gesagt, wollte ich immer etwa in Richtung Architektur machen, quasi Architekt werden, und eine HTL besuchen. Ich hatte dann die Chance bei einem großen Salzburger Unternehmen im Bereich Architektur zu schnuppern. Es hat mir aber absolut nicht gefallen. Dann kam die Gelegenheit bei GMS und es macht mir bis heute echt viel Spaß hier zu arbeiten. Ich habe eine Lehre für Informationstechnologie gemacht und bin im Laufe der Jahre auch immer selbstständiger geworden. Mittlerweile schreibt mir mein Teamleiter Kurt nur mehr Tickets, die ich bearbeiten soll, wir besprechen diese kurz und schon leg‘ ich los.
Wenn dich ein Kunde fragen würde, warum deine Arbeit so wichtig ist, was würdest du antworten?
Ganz einfach! Michi grinst. Ich soll die Fehler bzw. die möglichen Fehler ja finden, damit sie beim Kunden gar nicht erst auftauchen. Somit erspare ich dem Kunden jede Menge Nerven und graue Haare! Aber jetzt mal im Ernst. Softwarefehler können schon ganz schön nerven und damit sie erst gar nicht auftauchen, gibt es so Leute wie mich. Und natürlich ist keine Software komplett fehlerfrei. Sie wird ja von Menschen entwickelt und programmiert und jedem Menschen unterlaufen Fehler. Mein Job ist es also, so gut es geht diese Fehler gleich zu Beginn zu finden. Oder, wenn sie doch mal bei einem Kunden auftauchen, diese durch Tests zu evaluieren, damit sie dann beseitigt werden können. Der größte Vorteil bei meiner Arbeit, der Testautomatisierung, ist es, dass unsere Entwicklerinnen und Entwickler so schnell wie möglich Feedback von mir darüber erhalten, ob sich durch ihre Arbeit Fehler in der Anwendung eingeschlichen haben. Damit können wir zeitnah Problemursachen identifizieren und deren Auswirkungen minimieren.
Wie würdest du einem kompletten Laien solche Tests erklären?
Sagen wir mal so: Wir wissen alle, dass 1 plus 1 gleich 2 ist. Und genau das würde bei einem automatisierten Test überprüft werden. Wenn da dann nicht 2 steht, dann ist der Test fehgeschlagen. Bei der Kassensoftware GMS Kasse Zen sieht das, vereinfacht gesagt, so aus: Beim Test wird eine Coca Cola auf einen leeren Tisch boniert und wenn alles gut läuft, also die Programmierung keinen Fehler gemacht hat, dann scheint am Tisch der Preis der Cola bei der Summe auf. Ich überlege mir natürlich wesentlich komplexere Strukturen, die alle Strukturen der Kassensoftware betreffen und gebe diese ein. Gemeinsam mit Kurt haben wir bis jetzt jede Menge an Tests und Subtests entwickelt. Bei den automatisierten Tests, die im Schnitt vier Stunden dauern und ausschließlich in der Nacht durchlaufen, hat es für einen Laien übrigens den Anschein, dass ein „virtueller“ Kellner in der GMS Kasse Zen alles Mögliche eingibt und alle Eventualitäten durchprobiert. Diese Tests werden aufgezeichnet und in unserem internen System registriert. So sehen wir dann, ob sie funktioniert haben. Ich baue übrigens auch absichtlich Fehler ein, damit ich so die Korrektheit überprüfen kann.
Warum sind diese automatisierten Tests so aufwendig?
Man muss sich vorstellen, dass unsere Software ja ständig neue Features erhält. Sie wird von unserer Entwicklungsabteilung ununterbrochen weiterentwickelt. Denen fällt ja immer wieder etwas Neues ein. Und das muss natürlich vorab getestet werden, bevor das neue Feature im nächsten Update an den Kunden geht. Da wird alles nochmals durchprobiert, alle Eventualitäten in Augenschein genommen. So kann es schon passieren, dass bei einem Test schlussendlich aufscheint, dass eine neue/geänderte Programmierung eine Auswirkung ganz woanders im System hat und in weiterer Folge ein Fehler entsteht. Wie gesagt, alles hochkomplex. Und daher testen wir auch rund um die Uhr.
Blogbeitrag
Qualitätssicherung in der Softwareentwicklung. Wichtig?
Qualitätssicherung hat einen besonders hohen Stellenwert in der Softwareentwicklung, um Fehler in der Entwicklung zu finden und zu beheben. Damit die Endprodukte funktionieren, sicher sind und vom User/Kunden positiv bewertet werden, müssen viele Faktoren berücksichtigt werden. Qualitätssicherung sollte also nicht nur auf den Code beschränkt sein, sondern den gesamten Entwicklungsprozess betreffen. In diesem Blog-Post erfahren Sie mehr über Qualitätssicherung und warum sie so wichtig ist.
Was ist Qualitätssicherung?
Qualitätssicherung (QS) ist ein umfassender Prozess, der darauf abzielt, die Qualität von Softwareprodukten zu gewährleisten. Dieser Prozess beinhaltet die Verifizierung und Validierung jedes Aspekts des Entwicklungszyklus. Die QS kann auch als Verifizierung bezeichnet werden, da sie das Ergebnis überprüft und das Produkt gemäß den vorgegebenen Standards validiert. Ein effizientes QS-System muss alle Phasen des Entwicklungszyklus umfassen, einschließlich Design, Entwicklung, Test und Implementierung.
Die Verifizierung
Ein wichtiger Bestandteil der Qualitätssicherung ist die Verifizierung. Der Zweck der Verifizierung besteht darin, eine Gültigkeitsprüfung des Softwareprodukts durchzuführen. Dies erfolgt in verschiedenen Stadien des Entwicklungszyklus. In diesem Stadium wird festgestellt, ob die Software den spezifischen Anforderungen entspricht, die in den Spezifikationen angegeben sind. Alle Tests müssen ordnungsgemäß ausgeführt und dokumentiert werden, damit eine vollständige Validierung erreicht werden kann. Wenn es Unstimmigkeiten gibt, muss das Produkt überarbeitet oder neu entwickelt werden.
Die Validierung
Die Validierung ist der nächste Schritt in der Qualitätssicherung und beinhaltet das Überprüfen der Richtigkeit der Softwareanwendung mit dem primären Ziel, den Anforderungen zu entsprechen. Das Endprodukt muss den technischen Spezifikationen entsprechen und alle Funktionen problemlos ausführen können. Im Rahmen des Validierungsprozesses wird jede Komponente des Produkts getestet. Natürlich sollte auch jede Funktion manuell getestet werden, um sicherzustellen, dass alles richtig funktioniert. Wenn Fehler gefunden werden, muss alles erneut validiert werden.
Nach Abschluss aller Tests und Validierungsprozesse kann das Produkt implementiert und zur endgültigen Qualitätsprüfung übergeben werden. Der letzte Schritt der Qualitätsprüfung besteht darin zu überprüfen, ob alle Komponenten richtig installiert sind und ob alle Funktionen ordnungsgemäß funktionieren. Wenn dies nicht der Fall ist, muss eine Fehlerbehebung erfolgen und die Lösung anhand von Tests verifiziert werden.
Man kann also sagen, dass eine effektive Qualitätssicherung im Entwicklungszyklus unverzichtbar ist, um sicherzustellen, dass Softwareprodukte fehlerfrei funktionieren. Es hilft den Entwicklern effektiver zu arbeiten, indem es Risiken reduziert, Zeit spart und unnötige Kosten vermeidet . Ein gut gestaltetes QS-System kann somit einen bedeutenden Beitrag zum Erfolg eines Projektes bzw. Produktes leisten!
Folgen der Nichtbeachtung von Qualitätssicherungsmaßnahmen
Die Nichtbeachtung von Qualitätssicherungsmaßnahmen kann zu einer Reihe negativer Folgen führen. Zum einen können fehlerhafte Softwareprodukte die Geschäftsabläufe negativ beeinflussen und so dem Unternehmen schaden. Zum anderen kann die Nichtbeachtung von Qualitätsstandards dazu führen, dass die Softwareprodukte nicht den Erwartungen der Nutzer entsprechen. Dies kann sowohl dazu führen, dass die Produkte nicht verwendet werden, als auch dazu, dass sie negativ beurteilt werden. Somit ist es wichtig, dass Qualitätsstandards bei der Entwicklung von Softwareprodukten berücksichtigt werden.
Qualitätssicherungsmaßnahmen nicht zu beachten, kann schwerwiegende Folgen für die Softwareentwicklung haben.
Dazu gehören unter anderem:
- Verzögerte Fertigstellung: Wenn Tests nicht durchgeführt oder Missstände nicht behoben werden, kann es zu unerwarteten Verzögerungen bei der Fertigstellung des Projekts kommen.
- Fehlende Kundenzufriedenheit: Eine schlechte Qualität der Endprodukte führt zu einer mangelnden Zufriedenheit des Kunden. Auch mögliche Reklamationen und Rückerstattungsforderungen können die Folge sein.
- Schwierigkeit bei der Erweiterbarkeit des Produkts: Schlecht geschriebene Codebasis macht die Integration neuer Funktionen und Technologien schwieriger. Dies kann dazu führen, dass das Produkt nicht mehr den aktuellsten Standards entspricht.
- Abnehmende Marktvorteile: Bei Nichteinhaltung von Qualitätsstandards wird es immer schwerer, sich gegenüber Konkurrenten zu behaupten. Bessere Produkte haben höhere Chancen auf dem Markt zu überleben.
- Reputationsschäden: Die mangelnde Beachtung von Qualitätsstandards und Tests kann letztlich dazu führen, dass das Unternehmen einen schlechten Ruf erlangt und sich Kundschaft abwendet.
Es ist also immens wichtig, alle vorhandenen Qualitätssicherungsmaßnahmen zu beachten und sicherzustellen, dass jedes Produkt hinsichtlich der angestrebten Standards getestet wird. Nur so kann sichergestellt werden, dass die Softwareentwicklung reibungslos verläuft und dem Projektziel entsprechende Ergebnisse erzielt werden. Sowohl Entwickler als auch Kunde profitieren hierbei vom Einsatz professioneller Testmethodik und -Prozesse in der Softwareentwicklung.
Wie kann man die Qualität der Softwareprodukte sicherstellen?
Es gibt viele verschiedene Möglichkeiten, dies zu tun. Einige der wichtigsten Methoden sind:
- Unit-Tests: Unit-Tests überprüfen den Code einer einzelnen Funktion oder Methode auf Fehler und stellen sicher, dass er wie erwartet funktioniert. Sie können helfen, potenzielle Probleme zu identifizieren, bevor sie in den Produktionscode gelangen.
- Integrations- und Systemtests: Diese Tests testen die Komponenten des Systems im Zusammenhang miteinander und stellen sicher, dass es so funktioniert, wie es sollte. Sie helfen auch dabei, potenzielle Fehler in komplexeren Systemen zu finden und zu beheben.
- Code-Reviews: Code-Reviews ermöglichen es Entwicklern, ihren Code vor der Produktion zu überprüfen und potenzielle Probleme zu identifizieren und zu beheben. Sie können auch dazu beitragen, die Qualität des Codes zu verbessern, indem sie bestimmte Programmierstandards einhalten oder schlechten Code eliminieren.
- Automatisiertes Testen: Automatisiertes Testen ist eine Technik, die häufig verwendet wird, um die Softwarequalität durch automatisierte Tests der Anwendungsfunktionen sicherzustellen. Diese Tests können helfen, mehrfache Fehler in kürzerer Zeit zu finden und schneller als manuelles Testen auszuführen.
- Benutzertests: Benutzertests bieten eine direkte Rückmeldung von echten Benutzern über ihre Erfahrung mit dem Produkt oder der Anwendung. Diese Tests helfen Entwicklern dabei, die Funktionalität des Produkts anhand realer Szenarien zu validieren und Designfehler sowie Usability-Probleme frühzeitig zu identifizieren und zu beheben.
GMS wendet diese Methoden als Teil der Qualitätsmanagementstrategien an, um so die entwickelten Produkte zu prüfen. Durch den Einsatz dieser Methoden wird die Softwarequalität erheblich verbessert und somit für eine reibungslose Funktionsweise des Produkts gesorgt.
Abschließend kann gesagt werden, dass Qualitätssicherung in der Softwareentwicklung eine wichtige Komponente ist, um sicherzustellen, dass man technisch auf dem neuesten Stand ist. Mit der Einhaltung von Standards und der Implementierung der am besten geeigneten Techniken erstellt GMS hochwertige Produkte, die den Kundenerwartungen entsprechen und die Zufriedenheit der Benutzer steigert. Nicht nur das, es hilft auch, Probleme zu identifizieren und zu lösen, bevor sie zu einem größeren Problem werden. Doch auch hier gilt: Software ist nichts Starres. Software ist nicht fehlerfrei. Software wird von Menschen programmiert.