Cookie

Software Tests

Wie können Entwicklerteams bei der Programmierung, im App-Design oder bei der IT-Architektur dazu beitragen, dass die Anwender*innen mit der Qualität einer Software zufrieden sein werden? In den letzten Jahren zeigt sich immer deutlicher, dass heutige Anwender*innen sehr hohe Qualitätsansprüche an Software stellen und Fehler, ungenügende Performance und schlechte Usability oder Systemabstürze nicht mehr tolerieren. Entwicklerteams benötigen daher tiefe Einblicke in den Zustand des Systems, um Schwachstellen von Software bereits im Vorfeld zu identifizieren.


  • Fast jedes Unternehmen bietet heute digitale Services an – sowohl für die Kundschaft als auch für die eigenen Mitarbeiter*innen. Sei es z. B. Online-Shopping oder Tickets buchen, Pizza via Smartphone bestellen, eine Krankschreibung per App einreichen, Anträge online bearbeiten oder die interne Vertriebs-App zur Nachverfolgung von Kundenanfragen nutzen. Eine hohe Qualität all dieser Anwendungen steht im Vordergrund, damit sie optimal genutzt werden können. Hierfür müssen Fehlerquellen frühzeitig im Entwicklungsprozess erkannt und behoben werden. Damit tragen Softwaretests sowohl zur Zuverlässigkeit von Software als auch zu einer höheren Kundenzufriedenheit bei.

Noch bevor eine Software auf den Markt kommt, setzen Entwicklerteams auf manuelles oder automatisiertes Software Testing, bei dem sie durch verschiedene Testverfahren prüfen, ob die Software alle Anforderungen in Bezug auf Funktionalität, mobile Nutzbarkeit, Sicherheit und Nutzerfreundlichkeit erfüllt. Darüber hinaus macht eine permanente Optimierung von Software durch regelmäßige Funktions- oder Sicherheits-Updates auch kontinuierliche Tests notwendig.

 



Wie kann ich Softwarequalität bei immer häufigeren Releases sicherstellen?

Immer kürzere Release-Zyklen wirken sich bei gleichzeitigen Zeit- und Kostenbeschränkungen in der Regel negativ auf die Softwarequalität aus. Hier kommen manuelle Testverfahren an ihre Grenzen. Für eine höhere Softwarequalität braucht es eine höhere Testqualität. Eine effiziente Lösung für Regressionstests (wiederholbare Tests) stellt die Testautomatisierung dar, die automatisiert das Monitoring der Softwarequalität übernehmen kann.

 

  • Automatisierte Tools können über Nacht laufen und die festgelegten Softwarequalitätskriterien prüfen. Zudem weisen sie eine höhere Testabdeckung auf als manuelle Tests und helfen sicherzustellen, dass Codeänderungen keine neuen Fehler einführen und dass bestehende Funktionen nicht beschädigt werden. Die meisten Softwareentwicklungsunternehmen verwenden ein kontinuierliches Integrationssystem, um die Durchführung von Tests zu automatisieren.
  • Kontinuierliche Integrationssysteme überprüfen jedes Mal, wenn ein Entwickler einen neuen Code eincheckt, ob dieser geändert wurde. Wenn Änderungen gefunden werden, werden die Tests automatisch ausgeführt und die Ergebnisse den Entwicklern mitgeteilt. Dieses Feedback hilft den Entwicklern, Probleme schnell zu erkennen und zu beheben, so dass die Qualität der Software gewährleistet ist.
  • Mit dem Ansatz der digitalen Barrierefreiheit kommt ein weiteres Argument für eine gute Usability hinzu. Software und Anwendungen sollten für alle Nutzer*innen zugänglich sein. Das gilt auch für Menschen mit Einschränkungen. Softwaretests können dabei helfen, potenzielle Hindernisse zu erkennen, auf die Menschen bei der Nutzung einer Software stoßen könnten.

Welche Qualitätskriterien nach ISO/IEC 25010 muss ein digitales Produkt erfüllen?

Die ISO/IEC 25010 ist eine Norm, welche die relevanten Richtlinien zur Softwarequalität im Detail beschreibt. Folgende der in der Norm festgehaltenen Qualitätskriterien, können durch Software Testing unterstützt werden:

Funktionalität

Jede Anpassung einer Software birgt das Risiko unerwünschter Nebeneffekte, die durch automatisiertes Testing frühzeitig erkannt werden können. Mit Testautomatisierung kann die Funktionalität von Applikationen, Webanwendungen, Services, usw. getestet werden.

Zuverlässigkeit

Ob eine Software über eine ausgereifte, verlässliche Softwarequalität verfügt, lässt sich durch automatisierte Tests überwachen. Im Gegensatz zu manuellen Testverfahren bietet die Automatisierung eine höhere Test Coverage (Testabdeckung) an.

Sicherheit

In puncto Security unterstützen automatisierte Security-Tests dabei, beispielsweise die Zuverlässigkeit einer sicheren Administration oder von geschützten Benutzer-Accounts zu gewährleisten. Die Tests erkennen Sicherheitslücken frühzeitig.

Kompatibilität

Testfälle für Schnittstellentests sind nahezu vollständig automatisiert. Beliebte Automatisierungs-Testwerkzeuge für Schnittstellen sind beispielsweise SoapUI, Postman oder JMeter.

Performance

Last- und Performancetests prüfen die Belastbarkeit von Software-Systemen anhand der drei Qualitätsmerkmale: Antwortzeitverhalten, Ressourcennutzung und Kapazität. Ein paralleles KI-basiertes Application Monitoring erlaubt es, die Ursachen für Performance-Engpässe im System aufzudecken. So lassen sich u.a. folgende Fragestellungen beantworten: Ist ein System einer bestimmten Arbeitslast gewachsen? Wie schnell reagiert es bei dieser Last? Bleibt die Anwendung stabil, wenn eine große Menge von Usern mit ihr arbeiten oder eine große Menge an Daten gleichzeitig verarbeitet werden muss? Für Lasttests kommen Werkzeuge wie JMeter, NeoLoad, Microfocus Loadrunner oder Dynatrace zum Einsatz.

Portierbarkeit

Auch die Plattformunabhängigkeit von Software, die Portierbarkeit, ist ein Qualitätskriterium nach ISO/IEC 25010. Ob ein digitales Produkt auf diversen Plattformen wie z. B. verschiedenen Betriebssystemen oder unterschiedlichen mobilen Geräten ausgeführt werden kann, lässt sich mit Testautomatisierung und flexiblen Testplattformen wie z.B. die Mobile Device Cloud für Mobile Endgeräte oder die Test Automation Platform für Webanwendungen zuverlässig testen.

  • Usability

    In der Vergangenheit wurde die Usability/Benutzerfreundlichkeit oft zugunsten der Funktionalität vernachlässigt. Heute hat die Bedeutung der Usability deutlich zugenommen und Software, die einfach zu bedienen ist, wird mit höherer Wahrscheinlichkeit erfolgreich sein.
  • Usability-Tests sind ein Verfahren, mit dem die Usability von Software bewertet werden kann. Dabei werden die Benutzer bei der Verwendung der Software beobachtet und ihre Leistung bei bestimmten Aufgaben gemessen. Software mit guter Benutzerfreundlichkeit schneidet in der Regel auch bei Usability-Tests gut ab. Infolgedessen ist die Benutzerfreundlichkeit zu einem wichtigen Qualitätsmerkmal für Software und Websites geworden.
  • Automatisierte Barrierefreiheitstest bieten die Möglichkeit, die Interoperabilität zwischen System und Assistenztechnologie zu überprüfen, erreichen eine hohe Testabdeckung und ermöglichen die nachhaltige Verankerung der Barrierefreiheit im Entwicklungsprozess. Sie haben großes Potenzial als Annahmetest vor (aufwändigeren) manuellen Prüfungen und als Monitoring während der Entwicklung und im Betrieb beispielsweise für redaktionierte Inhalte. Außerdem ermöglichen sie eine genauere Bedarfsabschätzungen für die Optimierung der Barrierefreiheit.

Verschiedene Arten von Software Tests

 

  • Software Testing ist ein Prozess in der Softwareentwicklung, bei dem wertvolle Informationen zum Zustand eines Systems zusammengetragen werden. In der Regel prüft man bei einem Softwaretest die Funktionalität der Software sowie ihre Zuverlässigkeit, Sicherheit und Leistungsfähigkeit. Erfüllt eine Software die spezifischen Anforderungen (noch) nicht, können jene Schwachstellen im Test identifiziert und bewertet werden. Schwachstellen, die optimiert werden sollen, werden bei agilen Verfahren in Form neuer Aufgaben für die Entwickler in den nächsten Sprint aufgenommen.

Manuelle und automatisierte Software Tests

Je nach Wiederholbarkeit der Testfälle sowie deren Häufigkeit können Software-Tests manuell oder automatisiert durchgeführt werden:

Manuelle Testverfahren

Die Testfälle können oder sollten nicht automatisiert werden, wenn sie beispielsweise unvorhergesehene Ergebnisse produzieren oder einmalig auftreten. Auch lassen sich Features wie CAPTCHAs, die aus Sicherheitsgründen z. B. häufig bei Loginmasken eingesetzt werden, nicht automatisieren. Andere Features sind instabil und verlangen so lange ein manuelles Testing, bis ein stabiler Zustand in der Entwicklung erreicht ist. Erst dann lohnt sich eine Investition in automatisierte Testverfahren. Darüber hinaus werden manuelle Testverfahren häufig für das Testen dynamischer Inhalte, bei Technologie-Kombinationen, bei unerwarteten Popups oder komplexen Workflows eingesetzt, da diese schwieriger zu automatisieren sind. 

Automatisierte Testverfahren

Die Testfälle werden mithilfe von Tools, Software und Skripten automatisiert getestet. Sie eignen sich vor allem für das Testen von Software mit stabilen Features, Regressionstests, Risikofeatures, datengetriebenen Tests, Smoke Tests, Lasttests sowie Cross-Browser-Tests und Cross-Device-Tests.

Funktionstests und nicht-funktionale Tests

  • Noch eine weitere Unterscheidung von Testverfahren kann getroffen werden: Funktionstests und nicht-funktionale Tests. Diese Tests können grundsätzlich sowohl manuell als auch automatisiert erfolgen, allerdings bietet sich in bestimmten Bereichen wie z. B. für Last- und Performancetests, bei großen Testfallmengen und regelmäßigen Software-Anpassungen ein Umstieg auf automatisierte Testverfahren an.

    Grundsätzlich sind beide Tests gute Methoden zur Qualitäts- sicherung, da sie die Kriterien gemäß ISO/IEC 25010 prüfen.

 

Funktionstests

Überprüfen die beabsichtigte Funktionalität einer Software:

Komponententests

Mit Komponententests werden einzelne Module einer Software isoliert von anderen Modulen getestet. Hierfür werden Test-Frameworks genutzt, welche die Tests während der Testdurchführung protokollieren.

Integrationstests

Durch Integrationstests werden eine aufeinander abgestimmte Reihe von Einzeltests geprüft, um das Zusammenspiel der voneinander abhängigen Komponenten zu testen. Im Idealfall sind dem Integrationstest Komponententests vorgelagert, die sicherstellen, dass die einzelnen Module isoliert von den anderen Komponenten fehlerfrei funktionieren.

Schnittstellentests

Vor allem bei der Interaktion mit anderen angebunden Systemen wie z. B. bei einem Shopsystem mit dem angebundenen CRM-/ERP-System, prüfen Schnittstellentests die Schnittstellen, damit eine korrekte Installation der Einheiten sowie der Funktionsfähigkeit sichergestellt werden können.

Regressionstests

Mit diesen Softwaretests lässt sich herausfinden, ob Anpassungen in der Software zu Fehlern bzw. unbeabsichtigten Nebeneffekten geführt haben. Eine kontinuierliche Ausführung stellt eine kurze Feedbackschleife zu den Entwicklern sicher. Wichtig ist auch eine ständige Erweiterung des Regressionstests an neu integrierte Funktionen/Features der Entwickler, sodass der Regressionstests stets die vollständige Funktionalität abdeckt und damit zuverlässig Rückmeldung an die Entwicklung geben kann.

Nicht-funktionale Tests

Nicht-funktionale Tests überprüfen im Gegensatz zu den Funktionstests beispielsweise auch die Performance sowie die Usability einer Software. Folgende Testverfahren zählen zu den nicht-funktionalen Tests:

Installationstests

Die Installation auf dem Endgerät wird mit dem Installationstests bzw. Implementierungstest geprüft. Die Installation aller erforderlicher Daten ist einer der wichtigsten Tests, damit die Anwendung ordnungsgemäß funktioniert.

Usability-Tests

Mit Usability-Tests wird die Gebrauchstauglichkeit einer Anwendung geprüft. Die Tests konzentrieren sich dabei auf die Qualität von Interaktionsprozessen zwischen Mensch und User Interface.

Last- und Performancetests

Durch das Testen auf einer Vielzahl von Plattformen stellen Entwicklerteams sicher, dass ihre Anwendungen auf allen Geräten gut funktionieren. Indem sie sicherstellen, dass die Systeme leistungsfähig und zuverlässig sind, können die Entwickler den Benutzern auf allen Geräten die bestmögliche Erfahrung bieten.

Mit automatisierten Last- und Performancetests wird das für den Endnutzer akzeptable Qualitätsniveau unter realitätsnahen Lastbedingungen ermittelt. So lassen sich auch problematische Stellen und potentielle Ausfallrisiken ermitteln.

Durch die Kombination von Lasttests und begleitendem KI-basierten Application Monitoring lassen sich Flaschenhälse in der Applikation schnell und zielgenau identifizieren.

Barrierefreiheitstests

In Barrierefreiheitstests werden Websites, Apps, Software oder digitale Dokumente auf deren Nutzbarkeit für Menschen mit Beeinträchtigung überprüft. Im Zentrum der Betrachtung stehen sowohl die Maximierung der Zugänglichkeit als auch der Nachweis der Barrierefreiheit für die Erfüllung gesetzlicher Anforderungen.

Sicherheitstests

Das Ziel von Sicherheitstests ist das Aufspüren von Sicherheitslücken. Mit einem Penetrationstest wird überprüft, ob die Infrastruktur einem Angriff durch Hacker gewachsen ist. Dieses ist ein realitätsnahes Angriffsszenario mit hohem manuellen Testanteil. Das Ergebnis eines Penetrationstestes liefert eine Dokumentation über gefundene Sicherheitsrisiken.


Erfolgsfaktoren im Software Testing

Zu den Erfolgsfaktoren im Software Testing zählen neben der Auswahl der richtigen Tools vor allem ein passendes Mindset und Know-How der Beteiligten sowie die Bereitschaft im Entwicklerteam sich auf veränderte Testprozesse einzulassen inklusive entsprechender Testsysteme und Testdaten. Die Prozesse rund ums Software Testings werden durch Agilität bestimmt und müssen korrekt definiert werden.


 


Vorteile und Grenzen von Testautomatisierung

Automatisierte Softwaretests mit Tools wie beispielsweise mit Selenium, Testerra (Selenium-basiert), UFT, SoapUI bringen verschiedene Vor- und Nachteile mit sich:

Vorteile automatisierter Softwaretests:

  • Effektive Nutzung der Ressourcen: Software, Tools und Skripte übernehmen die Aufgaben von manuellen Tester*innen, wodurch deren kostenintensive Arbeitszeit gespart wird.
    Geringer Zeitaufwand: Automatisierte Testverfahren liefern schnelle Ergebnisse ohne zusätzlichen manuellen (Mehr)Aufwand.
    Konsistente Ergebnisse: Testautomatisierung reduziert die Fehleranfälligkeit deutlich.
    Flexibilität: automatisierte Tests sind nicht an Arbeitszeiten gebunden. Sie können jederzeit gestartet werden.
    Hohe Testabdeckung: die bessere Test Coverage führt zu umfassenderen Ergebnissen.

Grenzen automatisierter Softwaretests:

  • Fehlalarme und Fehlermeldungen: False Positives sind möglich.
    Hohe Initialkosten: Der zeitliche Aufwand ist mit Initialkosten verbunden. Hierein fallen auch Tool- und Wartungskosten.
    Kein Wegfall aller manueller Tests: Tests der Usability, Einschätzungen von Features aus Nutzersicht oder AdHoc Tests müssen weiterhin manuell durchgeführt werden.


Kunden-Case: Software Testing für eine Gesundheitsapp

Infektionsketten besser und schneller zu erkennen – dieses Ziel hat eine Gesundheitsapp für iOS und Android, die insgesamt ca. 44 Millionen Downloads verzeichnet (Stand: März 2022). Damit beispielsweise Weiterentwicklungen neuer Features optimal auf jedem Device laufen und die Datensicherheit sowie ein effizienter Betrieb gewährleistet werden können, wird die App mit Mobile Device Testing in der Cloud überwacht.

"Über unsere Mobile Device Cloud wird die App im Dauerbetrieb getestet, um Fehler sowie Inkompatibilitäten bei verschiedenen Geräten bzw. Software-Versionen aufzudecken. So gewährleisten wir eine permanente Verbesserung und Weiterentwicklung der App."

André Hirsch, Leiter Mobile Test (T-Systems MMS)


Phasen von Softwaretests

Das Testen von Software ist ein Prozess, der geplant und kontrolliert werden sollte, um sicherzustellen, dass die Software die Anforderungen erfüllt und wie erwartet funktioniert. Die Testumgebung sollte sorgfältig entworfen werden, um die Bedingungen nachzubilden, unter denen die Software eingesetzt wird, und die Tests sollten analytisch und so konzipiert sein, dass sie alle Funktionen abdecken. Sobald die Tests erstellt sind, müssen sie ausgeführt und die Ergebnisse ausgewertet werden. Schließlich kann die Software für fehlerfrei erklärt werden, wenn alle Fehler behoben wurden und sie alle Abnahmekriterien erfüllt.

Alle Testverfahren lassen sich jedoch grob in verschiedene Phasen einteilen:

1. Testplanung und
-vorbereitung

In dieser Phase werden die Ziele des Testprozesses festgelegt und ein Plan erstellt, wie diese Ziele erreicht werden können. Der Aufbau der Testumgebung, die Testanalyse und der Testentwurf bilden den Rahmen für den Rest des Testprozesses. 

2. Testrealisierung und -durchführung

In dieser Phase werden die Tests tatsächlich durchgeführt. Dies kann die Ausführung von Testfällen, die Ausführung von Code oder beides beinhalten. 

3. Analyse

In dieser Phase werden die Ergebnisse der Tests analysiert. Dies hilft dabei, eventuelle Mängel in der Software zu identifizieren.

4. Berichterstattung

In dieser Phase werden die Ergebnisse der Tests dokumentiert und ausgewertet. Die Dokumentation kann zur Behebung der gefundenen Fehler beitragen.


Woher weiss ein Unternehmen, wann es Sinn macht zu automatisieren?

Testautomatisierung macht für Unternehmen in folgenden Ausgangssituationen Sinn:

  • Die Kosten für den manuellen Test steigen kontinuierlich, so dass sich die Kosten für eine Automatisierung mittelfristig amortisieren.
    Business User*innen müssen entweder vom manuellen Test entlastet werden oder stehen kurzfristig nicht mehr zur Verfügung (Fluktuation).
    Es liegt bereits ein Testset an Regressionstestfällen vor, das sich im ersten Schritt automatisieren lässt.
    Es fehlt ein Gesamtüberblick über das Softwaresystem einschließlich Folgefehlern und Nebeneffekten.
    Getestet werden sollen längere, etablierte Projekte, die einen höheren Reifegrad erreicht haben und bei denen die Programmversionen weniger häufig Änderungen erfahren.

Tests, die Unternehmen automatisieren sollten:

Regressionstests
Datengetriebene Tests
Smoke Tests
Lasttests
Cross-Browser-Tests und Cross-Device-Tests
Tests für anforderungsbasierte Tests
Tests für Risikofeatures

 

  • Wichtig: Nicht jede Software kann per Testautomatisierung getestet werden. Lassen Sie sich daher im Vorfeld von Experten beraten, ob und unter welchen Bedingungen für Ihr digitales Produkt eine Automatisierung im Softwaretest durchführbar ist.

Warum entscheiden sich Unternehmen für automatisiertes Software Testing?

Im Zuge der immer weiter fortschreitenden Digitalisierung wird die Testautomatisierung unausweichlich, auch wenn aktuell viele Software-Tester*innen die Anwendungen noch manuell testen und das Thema automatisierter Softwaretests grundsätzlich noch nicht in jedem Unternehmen von hoher Bedeutung ist. 

  • Der mit der Digitalisierung einhergehende Wandel in Unternehmen ist allerdings bereits heute spürbar. Unternehmen arbeiten mit neuen digitalen Prozessen, digitalen und verknüpften Anwendungen und haben eine Kultur der permanenten Software-Entwicklung, auch „Continuous Development“ genannt, verinnerlicht, die Testautomatisierung unausweichlich macht. Es ist davon auszugehen, dass automatisierte Software-Tests zum State-of-the-Art werden, um die gestiegenen Ansprüche der Nutzer*innen zu gewährleisten.

Kundenzufriedenheit

  • Unternehmen versprechen ihrer Kundschaft und ihren Mitarbeitenden eine hohe Softwarequalität. Darunter verstehen sie, dass die Nutzung der digitalen Services einfach, schnell, fehlerfrei, intuitiv und sicher abläuft und dass verschiedene Personen auf unterschiedlichen Devices gut mit den Services umgehen bzw. mit ihnen arbeiten können. Das Fehlerpotenzial ist allerdings hoch: Denken Sie an mögliche Bugs, lange Ladezeiten, Sicherheitslücken, etc.

Nicht umsonst verbringen Softwaretester*innen viele Stunden damit, eine Anwendung auf Herz und Nieren zu prüfen, um eine nahezu perfekte Software bereitstellen zu können. Eine große Herausforderung besteht darin, dass die Komplexitätder Anforderungen an eine Software mit jedem Release steigt und zugleich auf eine veränderte Nutzungserwartung trifft: Nutzer*innen bauen auf eine einwandfreie Software oder App. Die Erwartungshaltung an digitale Services nimmt immer weiter zu, während die Toleranz gegenüber Fehlern sinkt.

Auch Barrierefreiheit ist ein wichtiges Kriterium für die Kundenzufriedenheit. Barrierefreiheitstests werden bisher zumeist manuell durchgeführt. Dies liegt vor allem daran, dass viele Barrierefreiheitsanforderungen semantische Anteile besitzen und dass die Zugänglichkeit für Menschen mit Beeinträchtigung optimiert werden soll. Nutzungskontext und Usability spielen also eine wichtige Rolle. Barrierefreiheit hat aber auch einen hohen technischen Anteil. Müssen doch Assistenztechnologien wie Bildschirmlese-Software (Screenreader), Schnittstellen vorfinden, mit denen die Kommunikation möglich ist.

 

Einsparung von Ressourcen

  • Automatisierte Testwerkzeuge schonen zeitliche und monetäre Ressourcen, auch durch Möglichkeiten zu Fehler-Früherkennung. Ziel ist es, so früh wie möglich neue Fehler, die sich sprichwörtlich „eingeschlichen“ haben, zu finden. Im Idealfall erhält das Entwicklerteam innerhalb kürzester Zeit eine Rückmeldung über eine Abweichung nach einer Codeänderung dank einer Automatisierung, die direkt in der CI/CD-Pipeline als Qualitäts-Gate/Schranke eingebunden ist. Auch erlangen Unternehmen dank automatisierter Software-Tests einen reduzierten Wartungsaufwand.

Sicherheit

Die in der Software hinterlegten Daten von Anwender*innen müssen maximalen Schutz erfahren. Automatisierte Security-Tests sind in der Lage, diesen Schutz zu bieten, in dem die Tools mögliche Risiken frühzeitig erkennen.

 

Digitale Zuverlässigkeit

Automatisierte Software-Tests erhöhen trotz immer kürzerer Release-Zyklen die Zuverlässigkeit eines digitalen Produktes, indem Fehler und Schwachstellen schnell und vereinfacht durch Aktionen im zu testenden System identifiziert werden. Die Tools prüfen dabei Verifikationspunkte. Tritt ein nicht korrektes Ergebnis ein, wird dieses geloggt. Es folgt eine manuelle Auswertung der aufgezeichneten Anomalien und die Bewertung, bei welchen Abweichungen es sich tatsächlich um Softwarefehler handelt. 

  • Auf Grundlage der geloggten Testergebnisse werden Anpassungen vorgenommen und immer wieder neue Tests durchgeführt, bis das Ergebnis zufriedenstellend ist. Auch nach dem Software-Release geht das Testing weiter, wenn Updates eingespielt werden oder sich die Anforderungen an das Produkt ändern – beispielsweise weil sich Kundenwünsche ändern.

Je nach nachzuweisendem Qualitätsmerkmal führen Entwicklerteams funktionale Tests bzw. Schnittstellentests durch, Security-Tests, Performance-Tests, Tests auf Barrierefreiheit oder testen die mobile Funktionalität einer Software. Dank einer erhöhten Testabdeckung bietet die Testautomatisierung digitale Zuverlässigkeit. 

Use Case: Mit innovativen Automatisierungslösungen Test-Aufwendungen reduzieren

Der Einsatz automatisierter Testingtools wird beispielsweise bei einer Technologieumstellung bei SAP in Richtung S/4HANA – C/4HANA notwendig, um die damit einhergehenden erheblichen Mehraufwendungen leisten zu können. Im folgenden Video sehen Sie, wie dank innovativer Tools eine Automatisierungsrate von 90% erreicht werden kann – und das auch ohne Entwicklungs-Know-How.

 

 


Wie führe ich Testautomatisierung ein?

  • Für die traditionelle Software-Entwicklung waren lange Planungs- und Entwicklungsphasen typisch, die Schritt für Schritt abgearbeitet wurden – das sogenannte Wasserfallmodell. Heute werden solch lange Release-Prozesse für Softwareanwendungen durch agile Verfahren abgelöst, um den Markteintritt zu beschleunigen, kontinuierlich neue Updates auszuliefern und die Softwarequalität zu erhöhen.

Automatisiertes Software Testing setzt planvolles Handeln voraus. Entwicklerteams müssen das richtige Werkzeug wählen und sollte dabei die Anforderungen verschiedener Stakeholder einbeziehen

Oft empfiehlt es sich bei der Überwindung der kritischen Einführungsphase auf einen Dienstleister mit mehrjähriger Erfahrung in der Testautomatisierung und den jeweiligen Tools zurückzugreifen. Er kann das Unternehmen beim Ramp-Up unterstützen und die Einführung begleiten, etwa durch Workshops, Hilfe bei der Inbetriebnahme, Support mit direkten Ansprechpartnern oder als Teilnehmer in den jeweiligen Projekten.

Für den Einsatz automatisierter Softwaretests sollten folgende Fragen geklärt werden:

Welche Vorlagen und Dokumente sollen genutzt werden?
Welchen Ressourcenbedarf müssen Sie abdecken?
Welche Mitarbeitenden sollen qualifiziert werden? Wie?
Steht eine (realistische) Zeitplanung für das Software Testing?

 

Welche Schritte sind für die Einführung wichtig?

Für die Wahl des richtigen Automatisierungswerkzeugs müssen Unternehmen ihre eigenen Anforderungen kennen. Zu empfehlen ist der Einbezug verschiedener Stakeholder, die gemeinsam einen Anforderungskatalog erstellen, um alle Anforderungen vom Budget über die Teststrategie, die Usability bis hin zur Kompatibilität zum Softwareprodukt berücksichtigen.

  1. Beratung: Unternehmen sollten sich von einem Dienstleister im Erstgespräch beraten lassen, ob sich die Testfälle grundsätzlich für eine Automatisierung eignen. Welche Teststufen sollen automatisiert werden? Welche Qualitätskriterien sind im Fokus der Automatisierung? Verfügt das Unternehmen bereits über ein Testset an Regressionsfällen?
  2. Workshop: Verschiedene Stakeholder wie Geschäftsführung, Programmmanagement, Entwicklung, IT/Betrieb, Tester*innen und Fachexpert*innen definieren gemeinsam ihre Anforderungen an das Automatisierungsprojekt und halten sie in einem Anforderungskatalog fest.
  3. Auswahl eines Tools: Mit den erarbeiteten Anforderungen kann ein kleines Projektteam die am Markt verfügbaren Tools vergleichen und höchstens drei favorisierte Tools evaluieren. Ziel ist die Entscheidung für den Einsatz eines Tools oder eines hybriden Ansatzes. Auch spielt die Grundentscheidung hinein, die sich in die Formel „Fully scripted vs. Low Code“ fassen lässt und aus den Anforderungen abzuleiten ist.
  4. Ausarbeitung einer Teststrategie: Die konkrete Vorgehensweise im Rahmen einer Teststrategie wird herausgearbeitet. In dieser sind die Testfälle definiert, die automatisiert geprüft werden sollen sowie die Testinfrastruktur samt Testdaten und Testplattform.
  5. Pilotprojekt aufsetzen mit ausgewähltem Tool
  6. Schulungen und Know-How-Transfer: Mitarbeitende werden für die Arbeit mit den automatisierten Testingtools geschult und in die Prozesse eingeführt.
  7.  Aufsetzen der Entwicklungsumgebung: Das Aufsetzen des Testsystems fordert eine neue Rolle im Unternehmen, den/die Testautomatisierer*in. Als Schnittstelle zwischen Fachbereichen und Entwicklerteams entwickeln sie die automatisierten Tests und übernehmen später auch die Wartung.
  8. Inbetriebnahme: Mit der Inbetriebnahme können die Softwaretester*innen mit dem Software Testing beginnen. Tipp: Bezieht man gezielt einen Dienstleister bei der Einführung eines neuen Testautomatisierungs-Tools mit ein, werden häufige Fehler bei der Inbetriebnahme vermieden.


Akkreditiertes Software Testcenter

Das Test and Integration Center der T-Systems MMS ist ein von der Deutschen Akkreditierungsstelle (DAkkS) zertifiziertes Software-Prüflabor der Multimedia-Branche nach DIN EN ISO/ IEC 17025.
Unsere zertifizierten Experten unterstützen Sie mit dem nötigen Know-How und langjähriger Projektexpertise.

Ausblick: AI im Softwaretest

Wer noch mehr Effizienz in der Testautomatisierung erreichen will, kann künstliche Intelligenz im Softwaretest einsetzen. KI kann wiederkehrende Aufgaben übernehmen und beispielsweise in der Testskripterstellung zum Einsatz kommen. Hier erkennt KI die Objekte auf den zu testenden Webseiten und generiert selbstständig passende Testfälle und Testskripte, welche dann für die Testdurchführung verwendet werden können. Ändern sich Elemente, erkennt die künstliche Intelligenz diese Änderungen und erstellt daraufhin selbstständig neue Testskripte. So kann künstliche Intelligenz Testautomatisierung noch mehr unterstützen und wartungsärmer gestalten.

Im Beispielbild analysiert AI4Test mit Hilfe von künstlicher Intelligenz Website-Elemente.

Automatisiertes Software Testing. Für morgen. Und übermorgen.

Testautomatisierung ist ein notwendiges Werkzeug, um den Release-Prozess jeglicher Software-Anwendungen zu beschleunigen. Gerne beraten wir Sie genauer zur Testautomatisierung in Ihrem Softwareprojekt und unterstützen Sie dabei, eine hohe Softwarequalität zu erreichen. Kontaktieren Sie uns einfach oder schauen Sie sich weitere Informationen zu unseren Angeboten im Bereich Software-Qualität & Testautomatisierung.

 

Wir wünschen Ihnen viel Erfolg beim Automatisieren Ihrer Software Tests!