Nicht-funktionales Testen bezieht sich auf Software-Tests, die durchgeführt werden, um die nicht-funktionalen Aspekte einer Software-Anwendung zu testen.
Es gibt viele verschiedene Arten von nicht-funktionalen Tests, und einige Arten von Softwaretests können gleichzeitig als funktionale und nicht-funktionale Tests angesehen werden.
Nicht-funktionale Tests sind notwendig, weil sie wesentliche Benutzerkriterien wie Leistung und Benutzerfreundlichkeit bewerten und überprüfen, ob die Software außerhalb ihrer Grundfunktionalität wie erwartet funktioniert.
In diesem Artikel befassen wir uns mit der Definition und den Merkmalen von nicht-funktionalen Tests sowie mit Arten von nicht-funktionalen Tests, Ansätzen für nicht-funktionale Tests und Testwerkzeugen, mit denen Sie Ihre eigenen nicht-funktionalen Testprozesse optimieren und verbessern können.
Was sind nicht-funktionale Tests?
Nicht-funktionales Testen ist jede Art von Softwaretest, bei dem nicht-funktionale Aspekte des Software-Builds getestet werden.
Beispiele für nicht-funktionale Tests sind Tests zur Bewertung von Kapazität, Leistung, Benutzerfreundlichkeit, Wiederherstellung und Portabilität.
Die Überprüfung der Qualität und des Status jedes dieser nicht-funktionalen Kriterien ist genauso wichtig wie die Überprüfung der Funktionen einer Software, aber diese Parameter werden nicht im Rahmen von Standardfunktionstests geprüft.
Im Wesentlichen bedeutet nicht-funktionales Testen, dass getestet wird, „wie“ Softwarefunktionen funktionieren, und nicht, „ob“ sie funktionieren.
1. Wann brauchen Sie nicht-funktionale Tests?
Nicht-funktionale Tests werden während der Systemtestphase des Softwaretests durchgeführt, nachdem Unit-Tests und Integrationstests stattgefunden haben.
Während des Systemtests führen die Tester sowohl funktionale als auch nicht-funktionale Tests durch, wobei sie mit den funktionalen Tests beginnen.
Sobald die Tester festgestellt haben, dass die Software wie erwartet funktioniert, führen sie nichtfunktionale Tests durch, um zu prüfen, ob die Software auch die nichtfunktionalen Parameter erfüllt.
Normalerweise müssen funktionale Tests vor nicht-funktionalen Tests durchgeführt werden, da es unmöglich ist, die Zuverlässigkeit oder Leistung von Funktionen zu testen, die überhaupt nicht funktionieren. Das nichtfunktionale Testen ist eine der letzten Phasen des Softwaretests vor dem Benutzerakzeptanztest und der endgültigen Produktfreigabe.
2. Wenn Sie keine nicht-funktionalen Tests benötigen
Es ist immer wichtig, nicht-funktionale Aspekte der Software zu testen, es sei denn, sie wurden bereits getestet und für angemessen befunden.
Auch wenn Sie bereits zuvor nichtfunktionale Tests an einer Software durchgeführt haben, kann es notwendig sein, nichtfunktionale Parameter erneut zu testen, z. B. wenn der Software neue Funktionen hinzugefügt wurden oder wenn Änderungen am Code vorgenommen wurden, die sich auf die Leistung und Zuverlässigkeit auswirken könnten.
Die Ziele der nicht-funktionalen Tests
Ziel der nicht-funktionalen Tests ist es, zu überprüfen, ob das Produkt die Erwartungen der Benutzer erfüllt, und das Produkt vor der Freigabe zu optimieren.
Es kann auch Entwicklern und Testern helfen, die Software besser zu verstehen und dieses Wissen bei zukünftigen Optimierungen zu nutzen.
1. Qualitätskontrolle
Nichtfunktionale Tests zielen darauf ab, Faktoren zu testen, die sich auf die Benutzerfreundlichkeit, Zuverlässigkeit, Wartbarkeit, Portabilität und Effizienz des Produkts auswirken.
Durch das Testen dieser Elemente wird sichergestellt, dass das Produkt, das auf den Markt kommt, von angemessener Qualität ist und die Erwartungen der Benutzer in Bezug auf Leistung, Ladezeiten und Benutzerkapazität erfüllt.
2. Risikomanagement
Nicht-funktionale Tests reduzieren auch das Risiko und die Kosten, die mit der Markteinführung eines Produkts verbunden sind, indem sie die Chancen des Teams auf ein zufriedenstellendes Produkt maximieren.
Durch die Überprüfung der nicht-funktionalen Parameter des Software-Builds können die Kosten für die Freigabe des Produkts gesenkt werden, da der Bedarf an weiterer Entwicklung und späteren Softwareänderungen reduziert wird.
3. Optimierung
Nicht-funktionale Tests helfen Testern und Entwicklern, die Softwareerstellung und die Leistung während der Installation, Einrichtung, Ausführung und Nutzung zu optimieren.
Sie können nicht-funktionale Tests auch nutzen, um die Verwaltung und Überwachung der Softwareentwicklung zu optimieren.
4. Datenerhebung
Nichtfunktionale Tests ermöglichen es den Testern, Messungen und Metriken zu sammeln und zu erstellen, die von den Testteams für die interne Forschung und Entwicklung verwendet werden können.
Sie können die Daten, die Sie bei nichtfunktionalen Tests sammeln, nutzen, um zu verstehen, wie Ihr Produkt funktioniert und wie Sie es für die Benutzer besser optimieren können.
5. Erweiterung der Kenntnisse
Nicht-funktionales Testen verbessert und erweitert das Wissen des Testteams über das Produktverhalten und die verwendeten Technologien.
Dies hilft den Testteams nicht nur, die Software, an der sie arbeiten, besser zu verstehen, sondern kann auch nützliches Wissen liefern, das den Testern hilft, zukünftige Builds besser zu verstehen.
Wer ist an nicht-funktionalen Tests beteiligt?
Nicht-funktionale Tests werden in der Regel von Testern in der QA-Umgebung durchgeführt, aber manchmal können auch Entwickler nicht-funktionale Tests während der Entwicklung durchführen.
Systemtests werden fast immer von Testern durchgeführt, und in dieser Testphase finden die meisten nichtfunktionalen Tests statt.
Wenn nicht-funktionale Tests fehlschlagen, schicken die Tester die Software an die Entwickler zurück, damit diese die Leistungsfehler korrigieren, bevor sie erneut testen.
Die Vorteile von nicht-funktionalen Tests
Die Durchführung von nicht-funktionalen Tests hat viele Vorteile, und nicht-funktionale Tests sind ein wesentlicher Schritt beim Systemtest.
Ohne nicht-funktionale Tests könnten die Testteams nicht überprüfen, ob die Software tatsächlich den Anforderungen des Kunden oder den im Softwareentwicklungsplan festgelegten Anforderungen entspricht.
1. Verbesserung der Softwareleistung
Nicht-funktionale Tests können Testern und Entwicklern helfen, die Gesamtleistung von Softwareanwendungen zu verbessern. Nichtfunktionale Tests zeigen Bereiche auf, in denen die Softwareleistung mangelhaft ist, z. B. in Bezug auf Ladegeschwindigkeit oder Verarbeitungskapazität, und veranlassen die Softwareteams, Änderungen vorzunehmen, um diese Mängel zu beheben.
Dadurch wird sichergestellt, dass Softwareteams Software nur dann veröffentlichen, wenn sie fertig ist und wenn ihre Leistung gut genug ist.
2. Software sicher halten
Zu den nichtfunktionalen Tests gehören auch Sicherheitstests, die entscheidend dafür sind, dass eine Software sicher ist und vor externen Bedrohungen und Angriffen geschützt wird.
Mit Hilfe von Sicherheitstests können Tester und Entwickler überprüfen, ob die Software vertrauliche Daten angemessen schützt und über ausreichende Sicherheitsvorkehrungen zum Schutz vor aktuellen Cyberangriffen verfügt.
3. Erhöhung der Benutzerfreundlichkeit der Software
Nicht-funktionale Tests sind der beste Weg, um Ihre Software benutzerfreundlicher zu gestalten, insbesondere durch die Durchführung von Usability-Tests, bei denen beurteilt wird, wie einfach es für die Benutzer ist, die Nutzung und Bedienung Ihrer Software zu erlernen.
Die Benutzerfreundlichkeit ist sehr wichtig, denn sie bestimmt, wie zufrieden die Benutzer mit Ihrer Software sind, und stellt sicher, dass die Benutzer in der Lage sind, alle Möglichkeiten Ihrer Software voll auszuschöpfen.
4. Sicherstellen, dass die Software den Bedürfnissen der Nutzer entspricht
Die Sicherstellung, dass die Software den Bedürfnissen der Benutzer entspricht, sollte eine der obersten Prioritäten aller Softwareentwicklungs- und -testteams sein. Die Nutzer erwarten nicht nur, dass die Software funktional ist, sondern auch, dass sie gut funktioniert, reibungslos läuft und vertrauliche Daten schützt.
Nicht-funktionale Tests sind eine der einzigen Möglichkeiten, um sicherzustellen, dass Ihre Software diese Anforderungen erfüllt.
Die Herausforderungen des nichtfunktionalen Testens
Es gibt einige Nachteile bei der Durchführung von nichtfunktionalen Tests. Während nichtfunktionale Tests in der Systemtestphase von Softwaretests unerlässlich sind, kann der Prozess der nichtfunktionalen Tests für Softwareteams, die nicht über ausreichende Ressourcen und Werkzeuge verfügen, eine Herausforderung darstellen.
1. Wiederholung
Nichtfunktionale Tests beim Softwaretest müssen jedes Mal durchgeführt werden, wenn die Software von den Entwicklern aktualisiert wird oder wenn der Code geändert wird. Dies bedeutet, dass nichtfunktionale Tests sehr repetitiv sein können, was nicht nur Zeit kostet, sondern auch die Tester ermüdet.
Bei müden Testern, die sich stark wiederholende Aufgaben ausführen, ist die Wahrscheinlichkeit größer, dass sie sich ablenken lassen und Fehler machen.
2. Kosten
Da nicht-funktionale Tests so repetitiv sind, können sie auch recht kostspielig sein, insbesondere für Testteams, die sich auf manuelle nicht-funktionale Tests verlassen.
Software-Teams müssen Zeit und Budget für häufige nicht-funktionale Tests einplanen, und die Software-Entwickler müssen für diese zusätzlichen Tests extra bezahlen.
Was testen wir bei nicht-funktionalen Tests?
Mit nicht-funktionalen Tests können viele verschiedene nicht-funktionale Parameter getestet werden, von denen jeder die Qualität und Nutzbarkeit des Systems beeinflusst. Jeder dieser Parameter wird während der Systemprüfung anhand der im Prüfplan festgelegten Kriterien getestet.
1. Sicherheit
Sicherheitstests sind eine Art von nicht-funktionalen Tests, die messen, wie gut ein System gegen externe Bedrohungen und Angriffe geschützt ist. Dazu gehören vorsätzliche Sicherheitsverletzungen sowie Datenlecks und andere häufige Verstöße.
Sicherheitstests sind ein wichtiger Schritt bei nicht-funktionalen Tests, da sie den Endbenutzern und Kunden die Gewissheit geben, dass ihre Daten sicher sind.
2. Verlässlichkeit
Tester verwenden nicht-funktionale Tests, um die Zuverlässigkeit von Software zu bewerten und sicherzustellen, dass die Software ihre spezifizierten Funktionen kontinuierlich und fehlerfrei ausführen kann.
Während funktionale Tests sicherstellen, dass die Software ihre Hauptfunktionen ausführt, testen nur nicht-funktionale Tests die Zuverlässigkeit und Wiederholbarkeit dieser Ergebnisse.
3. Überlebensfähigkeit
Die Überlebensfähigkeit beschreibt, wie ein Softwaresystem im Falle eines Funktionsausfalls reagiert, und Überlebensfähigkeitstests stellen sicher, dass sich das System im Falle von Fehlern und Ausfällen selbst wiederherstellen kann.
Bei den Überlebensfähigkeitstests wird beispielsweise geprüft, ob die Software in der Lage ist, Daten zu speichern, um den Datenverlust im Falle eines plötzlichen Ausfalls zu minimieren.
4. Verfügbarkeit
Die Verfügbarkeit der Software bezieht sich auf den Grad, in dem sich der Benutzer während des Betriebs auf das System verlassen kann. Dies wird auch als Stabilität bezeichnet und durch Stabilitätsprüfungen getestet.
Die Stabilitätsprüfung hat eine gewisse Ähnlichkeit mit der Zuverlässigkeitsprüfung, da sie prüft, ob das System die erwarteten Standards durchgehend erfüllen kann.
5. Benutzerfreundlichkeit
Das Testen der Benutzerfreundlichkeit ist eine weitere wichtige Art des nicht-funktionalen Testens bei Softwaretests. Bei dieser Art von Test wird beurteilt, wie gut der Benutzer das Softwaresystem erlernen, bedienen und nutzen kann, indem er den Anweisungen auf dem Bildschirm und anderen grundlegenden Anleitungen folgt.
Benutzerfreundlichkeitstests sind wichtig, denn wenn die Software nicht sehr benutzerfreundlich ist, werden die meisten Benutzer sie einfach aufgeben oder sich für etwas anderes entscheiden.
6. Skalierbarkeit
Bei Skalierungstests wird geprüft, inwieweit eine Softwareanwendung ihre Verarbeitungskapazität erweitern kann, um steigenden Anforderungen gerecht zu werden.
Wenn die Software beispielsweise für die gleichzeitige Nutzung durch mehrere Benutzer in einem einzigen Netzwerk konzipiert ist, wie funktioniert sie dann, wenn sich zehn Benutzer gleichzeitig anmelden? Wirken sich höhere Nutzerzahlen signifikant auf die Leistung oder Ladezeiten aus?
7. Interoperabilität
Interoperabilitätstests sind eine Art von nicht-funktionalen Tests, die prüfen, wie gut ein Softwaresystem mit anderen Softwaresystemen zusammenarbeitet.
Dies ist besonders wichtig, wenn die Software als Teil einer Reihe von Produkten entwickelt wird, die alle miteinander integriert sind.
8. Wirkungsgrad
Effizienz bei Softwaretests bezieht sich auf das Ausmaß, in dem ein Softwaresystem Kapazität, Menge und Reaktionszeit bewältigen kann.
So können die Tester beispielsweise beurteilen, wie viele Benutzer sich gleichzeitig in das System einloggen können, wie lange es dauert, Daten aus der Datenbank abzurufen, oder wie schnell die Software grundlegende Aufgaben ausführen kann.
9. Flexibilität
Die Flexibilität misst den Grad, in dem ein Softwaresystem mit verschiedenen Arten von Hardware und Peripheriegeräten arbeiten kann.
Zum Beispiel, wie viel RAM die Software benötigt oder ob sie eine bestimmte CPU-Leistung benötigt. Je geringer die Anforderungen an die Softwareanwendung sind, desto flexibler ist die Software.
10. Übertragbarkeit
Mit Portabilitätstests wird geprüft, wie flexibel und einfach die Software aus ihrer aktuellen Hardware- oder Softwareumgebung transferiert werden kann.
Die Übertragbarkeit ist wichtig, weil sie sich darauf auswirkt, wie einfach Endbenutzer Software verwalten und zwischen verschiedenen Systemen verschieben können.
11. Wiederverwendbarkeit
Wiederverwendbarkeitstests sind eine Art von nicht-funktionalen Tests, die prüfen, ob Teile des Softwaresystems für die Wiederverwendung in einer anderen Anwendung umgewandelt werden können.
Wiederverwendbarkeitstests wirken sich zwar in der Regel nicht auf Kunden und Endbenutzer aus, sind aber ein guter Indikator dafür, wie effektiv die Entwickler Komponenten erstellen, die in Zukunft wiederverwendet werden können.
Die Merkmale von nicht-funktionalen Tests
Um zu verstehen, was nicht-funktionale Tests sind, muss man die Eigenschaften von nicht-funktionalen Tests verstehen. Diese Merkmale definieren das nicht-funktionale Testen beim Softwaretest.
1. Messbar
Nichtfunktionales Testen ist immer quantitativ und messbar, was bedeutet, dass Tester keine subjektiven Ausdrücke wie „schön“ oder „gut“ verwenden, sondern stattdessen Zahlen und Fakten zur Beschreibung der Ergebnisse des nichtfunktionalen Testens nutzen.
Anstatt beispielsweise die Ladezeiten als „schnell“ oder „langsam“ zu beschreiben, sollten nicht-funktionale Tests zu konkreten Zahlen führen, die die Anzahl der Ladevorgänge angeben.
2. Spezifische
Bei der Durchführung von nicht-funktionalen Tests sollte der Zweck der Tests spezifisch auf die Design-Spezifikationen der Software abgestimmt sein.
Wenn sich der Softwareprojektplan beispielsweise auf die Anzahl der Benutzer bezieht, die sich gleichzeitig anmelden können sollen, sollte dies bei den nichtfunktionalen Tests vorrangig berücksichtigt werden.
3. Unbekannt
Nichtfunktionale Tests können zwar speziell auf die Messung von Attributen ausgelegt sein, die in Projektplänen festgelegt sind, aber in vielen Fällen werden diese Attribute nicht im Voraus spezifiziert.
In diesem Fall sollten die Tester einfach nicht-funktionale Tests durchführen, um die Software anhand der einzelnen Parameter zu bewerten und diese später mit den Erwartungen zu vergleichen.
Der Lebenszyklus von nicht-funktionalen Tests
Da sich das nicht-funktionale Testen nicht auf eine bestimmte Phase im Lebenszyklus des Softwaretests bezieht, sondern einfach auf eine Art des Testens, die normalerweise während der Systemtestphase des Softwaretests stattfindet, kann der Lebenszyklus des nicht-funktionalen Testens von Projekt zu Projekt sehr unterschiedlich sein.
Im Allgemeinen folgt es einem ähnlichen Lebenszyklus wie andere Arten von Softwaretests, der mit der Analyse der Projektanforderungen beginnt und mit der Testausführung und der Erfüllung des Zyklus endet.
1. Analyse der Softwareanforderungen
Die erste Phase des Lebenszyklus für nicht-funktionale Tests ist die Analyse der Softwareanforderungen. Softwareteams arbeiten bei der Entwicklung und beim Testen von Anwendungen nach bestimmten Kriterien, und diese Kriterien sollten vorgeben, welche Art von Tests durchgeführt werden müssen.
2. Testplanung
Die nächste Phase des Lebenszyklus ist die Testplanung. In der Testplanungsphase stellt der QA-Leiter einen detaillierten Testplan zusammen, in dem genau beschrieben wird, was getestet werden soll, wer die Tests durchführt und welche Testansätze, -methoden und -werkzeuge verwendet werden.
Der Testplan sollte alle notwendigen Details enthalten, die die Tester für die Erstellung und Ausführung von Testfällen benötigen.
3. Erstellung von Testfällen
Die Erstellung von Testfällen ist die nächste Stufe des nicht-funktionalen Testens. In dieser Phase werden nicht-funktionale Testfälle entwickelt, die die Tester zu einem späteren Zeitpunkt ausführen, um die nicht-funktionalen Anforderungen des Systems zu testen.
Testfälle beschreiben, was getestet wird, wie es getestet wird und was das erwartete Ergebnis des Tests ist.
4. Einrichtung der Testumgebung
Der nächste Schritt im Lebenszyklus der nichtfunktionalen Tests ist die Einrichtung der Testumgebung vor Beginn der Tests.
Die Testumgebung ist der Ort, an dem alle Tests stattfinden, und sie beherbergt die Ressourcen und Werkzeuge, die Sie für die Durchführung nicht-funktionaler Tests verwenden werden.
Das Testteam bereitet die Testumgebung vor der Testdurchführung vor.
5. Testdurchführung
Die Testdurchführung ist die nächste Phase des nicht-funktionalen Testlebenszyklus. Dabei werden die zuvor erstellten Testfälle ausgeführt, um verschiedene Aspekte von Softwareanwendungen wie Sicherheit, Ladezeiten, Kapazität und Portabilität zu testen.
Das Testteam führt jeden Fall einzeln durch und überprüft das Ergebnis jedes Tests anhand des erwarteten Ergebnisses.
6. Zykluswiederholung
Die letzte Phase des Lebenszyklus der nichtfunktionalen Tests ist die Erfüllung des Zyklus und die Wiederholung. Nach der Ausführung aller Testfälle prüfen die Tester, welche Tests bestanden wurden und welche nicht.
Tests, die fehlschlagen, weisen in der Regel auf einen Fehler hin, der von den Entwicklern behoben werden muss. Sobald die Entwickler den Code gepatcht oder bearbeitet haben, wird der Softwaretestzyklus so lange wiederholt, bis keine Fehler mehr gefunden werden.
Um einige Unklarheiten zu beseitigen:
Nicht-funktionale Tests vs. funktionale Tests
Funktionales Testen und nicht-funktionales Testen sind zwei unterschiedliche, aber gleichermaßen wichtige Arten von Softwaretests, die zusammen verwendet werden, um zu beurteilen, ob eine Softwareanwendung die Anforderungen der Benutzer erfüllt, wie sie im Projektbriefing festgelegt sind.
Obwohl es sich bei beiden um notwendige Testarten handelt, die es Software-Teams ermöglichen, Fehler in Software-Builds zu identifizieren, sind funktionale und nicht-funktionale Tests völlig unterschiedlich.
1. Was ist der Unterschied zwischen funktionalen und nicht-funktionalen Tests?
Der Unterschied zwischen funktionalen und nicht-funktionalen Tests besteht darin, was sie testen. Beim Funktionstest werden die Funktionen der Anwendung getestet und geprüft, ob sie wie erwartet funktionieren. Beim nicht-funktionalen Testen werden andere Aspekte der Anwendung getestet, die sich auf die Benutzerzufriedenheit und die Qualität der Anwendung auswirken.
Funktionale und nicht-funktionale Tests finden in verschiedenen Phasen des Softwaretests statt, aber beide Arten von Tests werden normalerweise während der Systemtestphase durchgeführt.
Sowohl funktionale als auch nicht-funktionale Tests können uns helfen zu verstehen, wie gut eine Anwendung funktioniert und ob sie ihre Aufgabe angemessen erfüllt.
Wenn Sie zum Beispiel eine mobile App testen, mit der Benutzer Aufgaben- und Einkaufslisten speichern können, können funktionale Tests Funktionen wie das Erstellen einer neuen Liste, das Speichern einer Liste und das Bearbeiten bestehender Listen testen.
Bei nicht-funktionalen Tests kann geprüft werden, wie gut die Anwendung auf verschiedenen mobilen Geräten funktioniert, wie schnell Listen geladen werden und wie stark die Leistung der Anwendung beeinträchtigt wird, wenn andere Anwendungen im Hintergrund laufen.
2. Schlussfolgerung: nicht-funktionale Tests vs. funktionale Tests
Sowohl funktionale als auch nicht-funktionale Tests sind wichtige Arten von Softwaretests, die Testern und QA-Teams helfen können, zu beurteilen, ob eine Anwendung die aktuellen Anforderungen erfüllt.
Während beim funktionalen Testen die Funktionen der Software geprüft werden, werden beim nicht-funktionalen Testen andere Aspekte getestet, die sich auf die Leistung, Effizienz und Sicherheit auswirken können.
Unit-Tests, Integrationstests und API-Tests sind allesamt Formen von Funktionstests. In jeder dieser Phasen des Softwaretests bewerten die Tester, wie gut Funktionen und Merkmale entweder einzeln oder zusammen funktionieren, und identifizieren Fehler und Mängel, die verhindern, dass Funktionen wie erwartet funktionieren.
Sicherheitstests, Usability-Tests, Portabilitätstests und Lasttests sind allesamt Formen von nicht-funktionalen Tests, die es den Testern ermöglichen zu beurteilen, wie gut eine App ihre Funktionen ausführt und die Bedürfnisse der Benutzer unterstützt.
Arten von nicht-funktionalen Tests
Es gibt viele verschiedene Arten von nicht-funktionalen Tests, von denen jeder einen anderen nicht-funktionalen Aspekt der Leistung oder Effizienz einer Softwareanwendung testet.
Jeder dieser Testtypen prüft unterschiedliche Parameter, und einige Tests können dieselben Parameter auf unterschiedliche Weise prüfen.
1. Leistungstests
Leistungstests sind eine Art von nicht-funktionalen Tests, die prüfen, wie gut verschiedene Softwarekomponenten funktionieren. Bei Leistungstests wird nicht die Funktionalität getestet, wie es bei funktionalen Tests der Fall ist, sondern Reaktionszeiten, Engpässe und Fehlerpunkte. Leistungstests helfen den Testern sicherzustellen, dass die Software von hoher Qualität und schnell, stabil und zuverlässig ist.
2. Stresstests
Stresstests sind eine Art von nicht-funktionalen Tests, bei denen geprüft wird, wie gut die Software funktioniert, wenn sie ungewöhnlichen Belastungen ausgesetzt ist. Dies könnte bedeuten, dass getestet wird, wie sich die Software verhält, wenn jemand versucht, viele verschiedene Funktionen auf einmal zu nutzen oder viele andere Anwendungen gleichzeitig auszuführen.
Bei Stresstests geht es darum, die Grenze zu ermitteln, ab der die Software nicht mehr ordnungsgemäß funktioniert und was passiert, wenn das System unter Stress steht. So können die Tester feststellen, ob das System sich selbst wiederherstellen kann und ob es die Benutzer mit einer angemessenen Fehlermeldung benachrichtigt.
3. Belastungstests
Lasttests sind eine Art von Tests, bei denen beurteilt wird, wie gut sich Software sowohl unter normalen Bedingungen als auch bei größeren Belastungen verhält. Sie wird verwendet, um festzustellen, wie viel die Software gleichzeitig verarbeiten kann, ohne dass die Leistung beeinträchtigt wird.
Mit Lasttests kann getestet werden, wie Anwendungen funktionieren, wenn sie von vielen Benutzern gleichzeitig genutzt werden oder wenn Benutzer versuchen, viele Daten gleichzeitig herunterzuladen.
Lasttests sind wichtig, wenn Sie prüfen wollen, ob Ihre Software skalierbar ist.
4. Sicherheitstests
Sicherheitstests bewerten Softwareanwendungen und suchen nach Schwachstellen in der Sicherheit der Software. Dazu gehören potenzielle Sicherheitsrisiken, die zu Datenverlusten oder Verstößen führen können, bei denen vertrauliche Daten preisgegeben werden.
Sicherheitstests sind wichtig, da sie gewährleisten, dass das Produkt angemessen vor Hackerangriffen, Datenschutzverletzungen und anderen externen Sicherheitsbedrohungen geschützt ist.
Einige Beispiele für Sicherheitstests, die Tester durchführen können, sind Sicherheitsaudits, Ethical Hacking, Penetrationstests, Sicherheitsscans und Lagebeurteilungen.
5. Upgrade- und Installationstests
Upgrade- und Installationstests sind eine Art von nicht-funktionalen Softwaretests, bei denen überprüft wird, wie gut die Software auf verschiedenen Rechnern funktioniert.
Mit dieser Art von Tests soll sichergestellt werden, dass neue Benutzer die Software problemlos auf ihren Rechnern installieren können und dass bestehende Benutzer die Software aktualisieren können, wenn neue Upgrades veröffentlicht werden.
Upgrade- und Installationstests sind wichtig, da die Endbenutzer in der Lage sein müssen, Ihr Produkt problemlos zu installieren, vorausgesetzt, sie arbeiten mit einem Rechner, der damit kompatibel ist.
6. Volumenprüfungen
Volumen-Tests sind eine Art von Tests, mit denen überprüft werden kann, was passiert, wenn der Datenbank große Datenmengen auf einmal hinzugefügt werden. Dabei wird festgestellt, ob die Anwendung große Datenmengen bewältigen kann und was mit dem System geschieht, wenn dies nicht der Fall ist.
Der Volumentest wird auch als Flood-Test bezeichnet und dient der Beurteilung von Datenverlusten und Fehlermeldungen, die beim Hinzufügen großer Datenmengen zum System auftreten.
Volumentests sind die einzige Möglichkeit, um sicherzustellen, dass die Software die von den Benutzern erwarteten Datenmengen bewältigen kann.
7. Wiederherstellungstests
Bei Wiederherstellungstests wird das Softwaresystem zum Ausfall gezwungen, um zu testen, wie gut sich das System nach einem Absturz erholt.
Wiederherstellungstests können den Testern helfen zu verstehen, wie die Software Daten wiederherstellt und Verluste verhindert, wenn die Hardware während der Nutzung ausgesteckt wird, wenn die Software während einer Datenübertragung vom Netz getrennt wird oder wenn Sie das System unerwartet neu starten.
Diese Art von Tests ist wichtig, da Systeme ohne geeignete Wiederherstellungsprotokolle bei Unfällen wie diesem schwerwiegende Datenverluste erleiden können.
Was Sie brauchen, um mit nicht-funktionalen Tests zu beginnen
Bevor Sie mit dem nichtfunktionalen Testen beginnen, müssen Sie sicherstellen, dass Sie die Testumgebung vorbereitet und die benötigten Werkzeuge und Daten zusammengetragen haben.
1. Prüfplan
Bevor Sie mit nicht-funktionalen Tests beginnen, sollten Sie sicherstellen, dass Sie einen fertigen Testplan haben, der von den zuständigen Personen abgezeichnet wurde.
Ihr Testplan sollte alle relevanten Details darüber enthalten, was Sie testen werden und wie. Es sollte erklären, wann Sie manuelle und wann Sie automatisierte Tests durchführen werden, und die Rollen und Verantwortlichkeiten aller am Testprozess Beteiligten festlegen.
2. Testfälle
Bevor Sie nicht-funktionale Tests durchführen können, müssen Sie Testfälle erstellen. Jeder Testfall umreißt eine bestimmte Sache, die Sie testen werden, erklärt, wie Sie sie testen werden, und beschreibt das erwartete Ergebnis des Tests.
Wenn Sie zum Beispiel Lasttests durchführen, könnte ein Beispiel-Testfall darin bestehen, zu prüfen, wie sich die Software verhält, wenn zehn Benutzer das gleiche Modul gleichzeitig verwenden.
3. Funktionsprüfung
Sie können keine nicht-funktionalen Tests an Softwarekomponenten durchführen, wenn diese nicht funktional sind.
Wenn Sie z. B. testen wollen, wie viele Benutzer gleichzeitig in der Software angemeldet sein können, müssen Sie zunächst sicherstellen, dass sich die einzelnen Benutzer tatsächlich in der Software anmelden können.
Bevor Sie mit den nicht-funktionalen Tests beginnen, sollten Sie sicherstellen, dass alle funktionalen Tests bestanden wurden und Ihre Software so funktioniert, wie Sie es erwarten.
Dies bedeutet in der Regel, dass Smoke Testing, Sanity Testing, Unit Testing, Integration und funktionale Systemtests bereits durchgeführt wurden.
4. Prüfwerkzeuge
Bevor Sie mit den nicht-funktionalen Tests beginnen, stellen Sie alle Testwerkzeuge zusammen, die Sie für die Durchführung Ihrer Tests verwenden möchten.
Ob Sie Automatisierungstools verwenden, um teilweise einige Ihrer Tests zu automatisieren Stellen Sie sicher, dass die Tools, die Sie verwenden möchten, verfügbar und einsatzbereit sind und dass alle Mitglieder des Testteams wissen, wie man die einzelnen Tools richtig verwendet.
5. Testumgebung
Richten Sie die Testumgebung ein, bevor Sie mit den nicht-funktionalen Tests beginnen. Möglicherweise verfügen Sie bereits über eine geeignete Testumgebung, insbesondere wenn Sie dieselbe Umgebung für nicht-funktionale Systemtests und funktionale Systemtests verwenden können.
Die ideale Testumgebung ermöglicht es Ihnen, jedes Element, das Sie benötigen, auf den richtigen Geräten zu testen.
Wenn Sie z. B. die Handhabung der Lautstärke auf Smartphone-Geräten testen, ist es besser, dies auf einem echten Smartphone-Gerät zu tun, als zu versuchen, eine mobile Umgebung auf einem Desktop-Computer zu emulieren.
Der nicht-funktionale Testprozess
Das Testen nicht-funktionaler Aspekte eines Software-Builds ist ein mehrstufiger Prozess, der die Vorbereitung der Testumgebung, die Erstellung von Testfällen, das Sammeln von Testdaten und die Ausführung nicht-funktionaler Tests umfasst.
Es ist möglich, den Testprozess in kleine Abschnitte aufzuteilen, um ihn für Anfänger im Bereich der nichtfunktionalen Tests einfacher zu gestalten.
1. Nicht-funktionale Tests zur Überprüfung der Bereitschaft
Bevor Sie mit den nicht-funktionalen Tests beginnen können, müssen Sie sicherstellen, dass Sie für diese Testphase bereit sind.
Dies kann bedeuten, dass man die Ausstiegskriterien für die letzte Testphase bewertet, um sicherzustellen, dass die Software diese bestanden hat, und dass man sich vergewissert, dass die Software alle erforderlichen funktionalen Tests bestanden hat, bevor die nichtfunktionalen Tests durchgeführt werden.
Einige Teams können Einstiegskriterien für nicht-funktionale Tests erstellen, die alle Bedingungen umfassen, die erfüllt sein müssen, bevor die nicht-funktionalen Tests beginnen.
2. Erstellen Sie einen Testplan
Möglicherweise haben Sie diesen Schritt bereits früher ausgeführt, wenn Sie nicht-funktionale Tests als Teil von Systemtests durchführen und Ihrem Systemtestplan folgen. Ein Testplan beschreibt alle Tests, die Sie durchführen müssen, und wie Sie sie durchführen wollen.
Ohne einen klaren Testplan verliert man leicht den Überblick über den Umfang und die Ziele der Tests, die man durchführt.
3. Testfälle erstellen
Die nächste Stufe des nicht-funktionalen Testens ist die Erstellung von Testfällen, mit denen jeder nicht-funktionale Parameter der Software getestet wird.
Jeder Testfall sollte eine Testfall-ID, einen Testfallnamen, eine Beschreibung und Einzelheiten über das erwartete Ergebnis des Tests sowie alle im Voraus festgelegten Kriterien für das Bestehen oder Nichtbestehen haben. Dies hilft den Testern zu verstehen, wie jeder Test durchzuführen ist und auf welche Ergebnisse sie achten müssen.
4. Sammeln von Testdaten
Bevor Sie jeden Testfall ausführen können, müssen Sie die Testdaten sammeln, die Sie für jeden Testfall verwenden werden.
Das bedeutet in der Regel, dass Sie Code und Daten aus verschiedenen Modulen und Komponenten sammeln, die die zu testenden Funktionen und Bereiche bilden. Wenn Sie die Testabdeckung maximieren wollen, sollten Sie eine große Menge an Testdaten zur Verfügung haben, mit denen Sie arbeiten können.
5. Bereiten Sie die Testumgebung vor
Die nächste Phase der nicht-funktionalen Tests ist die Vorbereitung der Testumgebung. Bei der Testumgebung handelt es sich um einen Testserver, mit dem Sie viele verschiedene Arten von Softwaretests durchführen können.
Es ermöglicht Ihnen, identische Bedingungen zu schaffen, unter denen Sie Ihre Software testen können, und Ihre Software mit verschiedenen Konfigurationen für Konfigurationstests, Sicherheitstests und andere Arten von nicht-funktionalen Tests einzurichten.
6. Ausführen nichtfunktionaler Tests
Sobald die Testumgebung fertig ist, ist es an der Zeit, die nicht-funktionalen Tests durchzuführen. Sie können beschließen, die Tests in der Reihenfolge ihrer Art auszuführen, z. B. mit Leistungstests zu beginnen, bevor Sie zu Sicherheitstests und anderen Arten von nichtfunktionalen Tests übergehen.
Vermerken Sie die Ergebnisse der einzelnen Tests in Ihrem Testbericht. Wenn Sie das Testen automatisieren, verfügt Ihr Automatisierungswerkzeug auch über eine standardisierte Methode, um die Ergebnisse klar und eindeutig zu melden.
7. Bericht über die Testergebnisse
Nach der Ausführung jedes Testfalls stellen Sie die Ergebnisse Ihrer nichtfunktionalen Tests in einem einzigen Bericht zusammen.
Dieser Bericht sollte klare Angaben zu den Ergebnissen der einzelnen Tests enthalten und eindeutig angeben, ob die einzelnen Tests bestanden oder nicht bestanden wurden.
Folgen Sie einer standardisierten Struktur für Ihren Prüfbericht, um sicherzustellen, dass alle Informationen, die Sie weitergeben müssen, enthalten sind.
8. Mängel beheben
Sobald die Testergebnisse vorliegen, geben Sie die Software an die Entwickler zurück, wenn die Tests fehlgeschlagen sind oder wenn Sie nicht funktionale Fehler gefunden haben, die behoben werden müssen.
Wenn die Software beispielsweise nicht mit einer angemessenen Anzahl von Benutzern gleichzeitig umgehen kann oder wenn die Leistung zu sehr nachlässt, wenn mehrere Programme gleichzeitig laufen, müssen diese Probleme wahrscheinlich im Code behoben werden, um sicherzustellen, dass die Benutzer mit dem Produkt zufrieden sind.
9. Wiederholung des Prüfzyklus
Sobald die Entwickler alle in der anfänglichen nicht-funktionalen Testphase gefundenen Mängel behoben haben, kann der Testzyklus erneut beginnen.
Die Entwickler testen die von ihnen vorgenommenen Änderungen auf ihre Tauglichkeit und geben den neuen Build an die QA-Tester weiter, die dann die gesamte Testreihe durchführen, beginnend mit Smoke-Tests, Unit-Tests, Integrationstests und schließlich Systemtests.
Der Testzyklus wird so lange wiederholt, bis an keiner Stelle mehr Fehler oder Defekte auftreten, woraufhin der Build in die letzte Testphase eintreten kann: den Benutzerakzeptanztest.
Testfälle für nicht-funktionale Tests
Testfälle sind ein wichtiger Aspekt aller Softwaretests, und wenn Sie sowohl funktionale als auch nicht-funktionale Tests durchführen, verwenden Sie Testfälle, um zu definieren, was Sie testen werden und wie Sie es testen werden.
Jeder Testfall kann als Minitest betrachtet werden, und jeder Testfall hat seine eigenen definierten Ausgaben und Ergebnisse.
1. Was sind Testfälle für nicht-funktionale Tests?
Ein Testfall ist eine Reihe von Aktionen, die an einem Software-Build durchgeführt werden, um zu testen, ob es die im Softwareplan definierten Bedingungen erfüllt. Jeder Testfall sagt den Testern, was und wie sie testen sollen, und ist so konzipiert, dass er eine bestimmte Funktion oder ein nicht-funktionales Merkmal der Softwareanwendung testet.
Zu den nichtfunktionalen Testfällen gehört beispielsweise die Prüfung, was passiert, wenn jemand versucht, auf sichere Daten innerhalb des Systems zuzugreifen, oder die Prüfung, wie schnell die Software beim Start geladen wird.
2. Wie entwirft man nicht-funktionale Testfälle?
Bei der Entwicklung von Testfällen für nicht-funktionale Tests ist es wichtig, die Standardverfahren für Testfälle zu befolgen und gleichzeitig die Ziele der nicht-funktionalen Tests im Auge zu behalten.
Führen Sie die folgenden Schritte aus, um Testfälle für nicht-funktionale Tests zu schreiben, die klar umreißen, was Ihre Tester tun müssen, um jeden Test durchzuführen.
1. Definieren Sie den Bereich, den Sie abdecken möchten
Überlegen Sie für jeden Testfall, welchen Bereich Ihrer Software dieser Testfall abdecken soll.
Wenn Sie beispielsweise Testfälle für Installations- und Upgrade-Tests schreiben, könnten Sie Testfälle einbeziehen, die bewerten, wie einfach sich die Anwendung auf verschiedenen Geräten installieren lässt und wie lange es dauert, die Software mit einem neuen Patch zu aktualisieren.
2. Erstellen Sie eine eindeutige Testfall-ID
Jeder Testfall sollte eine eindeutige Testfall-ID haben. Dies erleichtert das spätere Auffinden der Testfallbeschreibung und der Ergebnisse und klärt die Frage, auf welchen Testfall Sie sich beziehen, wenn zwei Testfälle ähnliche Namen oder Beschreibungen haben.
3. Benennen und beschreiben Sie jeden Test
Während die Testfall-ID den Test identifiziert, sollten Sie auch einen Namen und eine Beschreibung für jeden Testfall angeben, den Sie schreiben.
Es sollte ein einfacher Name sein, der zusammenfasst, was Sie testen, während die Beschreibung ein einziger Satz ist, der dies etwas ausführlicher beschreibt.
Die Beschreibung sollte so klar sein, dass die Tester wissen, was zu testen ist und wie es zu testen ist, sowie alle besonderen Bedingungen, die bei dem Test erfüllt sein müssen.
4. Geben Sie das erwartete Ergebnis an
Beschreiben Sie für jeden Testfall das Ergebnis, das eintreten sollte, wenn die Software wie erwartet funktioniert.
Bei nicht-funktionalen Tests wie Leistungstests und Lasttests kann dies in vielen Fällen bedeuten, dass die Software einfach normal weiterläuft, ohne zu verlangsamen, zu verzögern oder abzustürzen.
In anderen Fällen kann es bedeuten, dass bestimmte Fehlermeldungen auftreten, um den Benutzer auf das Problem hinzuweisen und eine Lösung zu empfehlen.
5. Prüfverfahren empfehlen
Empfehlen Sie für jeden Testfall die Art der Testtechniken und nicht-funktionalen Testwerkzeuge, die der Tester Ihrer Meinung nach während des Testens einsetzen sollte.
Beim nicht-funktionalen Testen können Tester sehr unterschiedliche Ansätze für verschiedene Arten von Tests verwenden.
So können beispielsweise Last- und Stresstests eine Automatisierung erfordern, weil es unpraktisch ist, extrem hohen Datenverkehr manuell zu simulieren, während andere Testarten ohne spezielle Tools oder Technologien einfacher durchzuführen sind.
6. Begutachtung jedes Testfalls durch Fachkollegen
Bevor Sie jeden Testfall abzeichnen, lassen Sie jeden Fall von jemandem, mit dem Sie zusammenarbeiten, begutachten. Dies kann ein anderer Prüfer oder ein QA-Leiter sein.
Das Peer-Reviewing von Testfällen stellt sicher, dass sie klar genug sind, um von einem externen Tester befolgt werden zu können, und dass sie keine Unklarheiten oder Fehler enthalten, die zu unsachgemäßen Tests führen könnten.
3. Beispiele für nicht-funktionale Testfälle
Wenn Sie Testfälle für nicht-funktionale Tests schreiben, könnten diese etwa so aussehen wie die folgenden Beispiele für nicht-funktionale Tests.
Beispiel für Skalierbarkeitstests
Testfall-ID: 6671
Name des Testfalls: Test der Anmeldung mehrerer Benutzer
Beschreibung: Emulieren Sie 20+ Benutzer, die sich gleichzeitig bei der Software anmelden, indem Sie Automatisierungstools verwenden.
Erwartete Ergebnisse: Die Software sollte für jeden Benutzer wie gewohnt laufen, so dass sich jeder Benutzer in weniger als 5 Sekunden erfolgreich anmelden kann.
Beispiel einer Kompatibilitätsprüfung
Testfall-ID: 5214
Name des Testfalls: Laden der Anwendung im Opera-Browser
Beschreibung: Laden Sie die Anwendung im Opera-Webbrowser.
Erwartete Ergebnisse: Die Anwendung wird im Opera-Webbrowser mit Standardauflösung und -layout wie gewohnt geladen.
Manuelle oder automatisierte nicht-funktionale Tests?
Wenn Sie zwischen verschiedenen nichtfunktionalen Testtechniken wählen, müssen Sie entscheiden, ob Sie manuelle oder automatisierte nichtfunktionale Tests durchführen wollen.
Manuelle Tests werden von menschlichen Testern durchgeführt, was bedeutet, dass sie in der Regel zeitaufwändiger sind, aber sie bieten auch Möglichkeiten für explorative Tests.
Automatisierte nicht-funktionale Tests sind schneller und in mancher Hinsicht zuverlässiger, erfordern aber auch mehr Ressourcen oder Werkzeuge. Automatisierung und Hyperautomatisierung werden beim Testen immer beliebter, vor allem wenn es um nichtfunktionale Tests geht.
Manuelle nicht-funktionale Tests: Vorteile, Herausforderungen und Prozesse
Manuelle nicht-funktionale Tests werden ausschließlich von Testern durchgeführt, die jedes einzelne nicht-funktionale Element unabhängig voneinander testen.
Bei der Durchführung manueller nicht-funktionaler Tests müssen die Tester Informationen über die Software sammeln, einzelne Testfälle erstellen, die dem Testplan entsprechen, und diese Testfälle manuell ausführen.
Das kostet viel Zeit, bedeutet aber auch, dass die QS-Tester die Freiheit haben, zu bestimmen, was und wie getestet wird.
1. Zu den Vorteilen der manuellen Prüfung gehören:
Manuelles Testen kann billiger sein als automatisiertes Testen, weil es keine speziellen Technologien oder technischen Kenntnisse erfordert.
Manuelles Testen ermöglicht es den Testern, einen subjektiven Einblick in die Funktionsweise der Software zu geben und zu prüfen, ob sie zufriedenstellend funktioniert.
● Manuelle Tests können für Systemtests in Szenarien verwendet werden, die nicht automatisiert werden können.
Manuelle Tests ermöglichen es den Testern, die visuellen Aspekte des Systems wie die grafische Oberfläche und andere Faktoren, die die Benutzerfreundlichkeit beeinträchtigen könnten, zu bewerten.
● Manuelles Testen bietet den Testern eine breitere Perspektive auf das System als Ganzes und auf das Zusammenwirken verschiedener Module und Komponenten
Allerdings hat die manuelle Prüfung auch Nachteile.
2. Zu den Herausforderungen der manuellen Prüfung gehören:
Einige Arten von nicht-funktionalen Tests, einschließlich Lasttests und Leistungstests, sind manuell nicht durchführbar.
● Manuelles Testen nimmt wesentlich mehr Zeit in Anspruch als automatisiertes nicht-funktionales Testen
● Manuelle Tester können sich ablenken lassen, die Konzentration verlieren und Fehler machen, vor allem wenn sie sich stark wiederholende Testaufgaben durchführen
Automatisierte nicht-funktionale Tests: Vorteile, Herausforderungen und Prozesse
Automatisierte nicht-funktionale Tests werden durch automatisierte Skripte und Testwerkzeuge durchgeführt. Bei der Verwendung von automatisierten Testmethoden können die Tester die Tests im Hintergrund durchführen, während sie sich mit anderen Aufgaben beschäftigen, sobald die automatisierten Tests gestartet wurden.
1. Einige der Vorteile der Automatisierung von nicht-funktionalen Tests sind:
1. Sparen Sie Zeit und Ressourcen, indem Sie den Zeitaufwand für langwierige, zeitraubende Aufgaben reduzieren
2. Die Automatisierung ermöglicht es, die Testabdeckung zu erhöhen, indem ein breiteres Spektrum von Komponenten und Funktionen abgedeckt wird.
3. Es ist praktikabler, automatisierte Tests häufig durchzuführen, da sie weniger Zeit in Anspruch nehmen
4. Automatisierte Tests sind ideal für zeitaufwändige Testaufgaben wie Lasttests, Volumentests und Stresstests, die manuell nur sehr schwer durchzuführen sind.
5. Die Wahrscheinlichkeit, dass bei der Durchführung automatisierter Tests Fehler auftreten, ist geringer.
Allerdings haben automatisierte Tests auch einige Nachteile, so dass sie nicht immer der richtige Ansatz für alle Arten von nicht-funktionalen Tests sind.
2. Einige der Herausforderungen bei automatisierten nicht-funktionalen Tests sind:
1. Automatisierte Tests sind in der Einrichtung teurer als manuelle Tests
2. Die Einrichtung der Testautomatisierung kann Zeit und technische Ressourcen erfordern
3. Die Testautomatisierung lässt keinen Raum für explorative Tests
4. Die Automatisierung von Tests erfordert immer noch Zeit für die Erstellung von Testfällen
Schlussfolgerung: Manuell oder automatisiert
nicht-funktionale Tests?
Bei den meisten Arten von Softwaretests führt eine Kombination aus manuellen und automatisierten Tests in der Regel zu den besten Ergebnissen. So können Testteams von der Effizienz, Zuverlässigkeit und Genauigkeit automatisierter Tests profitieren und gleichzeitig explorative Tests durchführen, die es den Testern ermöglichen, die Software aus einer eher subjektiven Perspektive zu bewerten.
Bei nicht-funktionalen Tests sind sowohl manuelle als auch automatisierte Tests für die meisten Testteams praktisch unverzichtbar.
Manuelle Tests eignen sich am besten für die Durchführung nichtfunktionaler Tests, wie z. B. Usability-Tests, während automatisierte Tests meist für Tests verwendet werden, die manuell zu zeitaufwändig und schwierig durchzuführen wären, wie z. B. Stresstests oder Volumentests.
Nichtfunktionale Tests sind einer der naheliegendsten Bereiche für den Einsatz von Testautomatisierungstechniken, da es sich dabei um eine quantitative, messbare Art von Tests handelt, bei der keine subjektiven Ergebnisse gefragt sind.
Wie bei anderen Testarten werden nichtfunktionale Tests in der Regel mit einer Mischung aus manuellen und automatisierten Tests durchgeführt.
Automatisierte Tests sind jedoch für viele Arten von nicht-funktionalen Tests praktisch notwendig, und die Parameter und Metriken von nicht-funktionalen Tests bedeuten, dass die Automatisierung für diese Art von Tests besser geeignet ist als für funktionale Tests.
Bewährte Verfahren für nicht-funktionale Tests
Wenn Sie zum ersten Mal nicht-funktionale Tests durchführen, kann Ihnen die Einhaltung bewährter Testverfahren helfen, Ihren Testprozess zu standardisieren und die Wirksamkeit Ihrer Tests zu optimieren.
Best Practices dienen als Richtlinien für Softwaretestteams, die ihre Testprozesse verbessern und sich an Industriestandards orientieren möchten.
1. Automatisierungstools verwenden
Bei nicht-funktionalen Tests ist es wichtiger als bei anderen Testarten, Automatisierungstools zu verwenden, um bestimmte Testarten zu automatisieren, insbesondere Volumentests, Belastungstests und Lasttests.
Bei dieser Art von Tests wird in der Regel geprüft, wie gut die Software unter starkem Druck von Benutzern, Daten und Datenverkehr funktioniert, was manuell nur sehr schwer zu emulieren ist.
Die Automatisierung dieser Art von nicht-funktionalen Tests ist nicht nur effizienter, sondern auch genauer und ermöglicht es den Testern, höhere Belastungen und Beanspruchungen problemlos zu reproduzieren.
2. Peer Review aller Unterlagen
Bitten Sie nicht nur Kollegen, die von Ihnen erstellten Testfälle zu überprüfen, sondern auch Kollegen innerhalb Ihres Testteams, Fehlerberichte, Testberichte, Testpläne und andere Formen der formalen Dokumentation, die während des Testprozesses erstellt werden, zu überprüfen.
Dies verringert das Risiko kleiner Fehler, die zu erheblichen Verzögerungen im Test- und Entwicklungsprozess führen könnten.
3. Definieren Sie messbare Anforderungen
Wenn Sie die Anforderungen an Ihre Software definieren, bevor Sie mit den nicht-funktionalen Tests beginnen, stellen Sie sicher, dass jede Anforderung objektiv und messbar ist.
Dies erleichtert es den Testern, während des Tests festzustellen, ob die Software diese Anforderungen erfüllt, und lässt keinen Raum für Interpretationen.
Was gilt als „schnell“ oder „effizient“? Verwenden Sie Zahlen und quantitative Werte, um zu definieren, wonach Sie suchen.
4. Überlegen Sie sich sorgfältig die Testmetriken
Bevor Sie entscheiden, welche Messgrößen Sie zur Messung der Leistung Ihrer Software verwenden, sollten Sie sich überlegen, was die Benutzer der Software wünschen und welche Messgrößen tatsächlich mit dem Softwareplan und den Anforderungen übereinstimmen.
Die meiste Software sollte schnell und zuverlässig sein, aber auf welche anderen Kriterien achten Ihre Nutzer vielleicht noch? Gibt es software-spezifische Metriken, die Sie während des Testprozesses berücksichtigen sollten?
Arten von Ergebnissen aus einem nicht-funktionalen Test
Wenn Sie nichtfunktionale Tests durchführen, erhalten Sie verschiedene Arten von Ergebnissen aus den von Ihnen durchgeführten Tests.
Diese unterscheiden sich in der Regel deutlich von den Ergebnissen funktionaler Tests, die oft klarer sind, weil funktionale Tests einfach prüfen, ob eine Funktion so funktioniert, wie sie sollte oder nicht.
Wie beim funktionalen Testen sollten die Tester für jeden Testfall klare Erwartungen festlegen, die es einfach machen, festzustellen, ob ein Test bestanden wurde oder nicht.
1. Absolute Zahlen
Bei der Durchführung von Leistungstests, Stresstests und anderen Arten von nicht-funktionalen Tests sind die Ergebnisse, die Sie am häufigsten betrachten, Geschwindigkeiten und andere absolute Zahlen.
Bei den Leistungstests wird geprüft, wie schnell das System bestimmte Aufgaben ausführen kann, und dies wird in Sekunden oder Millisekunden gemessen.
Wenn Sie Lasttests durchführen, können Sie beurteilen, wie viele Daten die Software auf einmal verarbeiten kann, ohne dass es zu Abstürzen oder Verzögerungen kommt.
2. Fehlermeldung
Beim nicht-funktionalen Testen wird auch überprüft, wie das System funktioniert, wenn Fehler auftreten, z. B. Sicherheitsfehler, Validierungsfehler und Konfigurationsfehler.
Es ist wichtig, dass die Systeme beim Auftreten von Fehlern genaue und klare Fehlermeldungen anzeigen, damit die Benutzer Maßnahmen zur Behebung des Problems ergreifen und die Software weiter verwenden können.
Fehlermeldungen sollten auch bei Sicherheitstests auftreten, wenn das System Benutzer daran hindert, die eingebauten Sicherheitsfunktionen der Software zu verletzen.
3. Abstürze
Ein Absturz ist ein Zeichen für ein Systemversagen und deutet in der Regel darauf hin, dass das System nicht in der Lage ist, die von Ihnen geforderte Leistung zu erbringen, und kann bedeuten, dass der Test bestanden wurde.
In manchen Fällen kann es vorkommen, dass das System abstürzt und dennoch den Testfall, an dem Sie arbeiten, besteht, z. B. wenn das System die erforderliche Menge an Stress oder Datenverkehr aushält, bevor es abstürzt.
Bei der Durchführung nichtfunktionaler Tests sollten die Tester damit rechnen, dass das System regelmäßig abstürzt, insbesondere wenn sie es für Stresstests und andere Leistungstests an seine Grenzen bringen.
Beispiele für nicht-funktionale Tests
Die Beispiele für nicht-funktionale Tests ähneln den obigen Beispielen für nicht-funktionale Testfälle.
Sie können sich Beispiele für nicht-funktionale Tests ansehen, um besser zu verstehen, was nicht-funktionale Tests sind und was sie innerhalb einer Softwareanwendung testen.
1. Beispiel für Leistungstests
Wenn Sie an einer mobilen Anwendung arbeiten, die Benutzer mit einer Online-Datenbank verbindet, ist es wichtig, dass eine große Anzahl von Benutzern gleichzeitig auf die Daten in dieser Datenbank zugreifen und sie herunterladen kann.
Dies ist auch ein wichtiger Bestandteil der Skalierbarkeitstests, insbesondere wenn Sie die Anzahl der Nutzer der App in Zukunft erhöhen möchten.
Anschließend testen Sie, wie das System reagiert, wenn z. B. 1000 Benutzer gleichzeitig auf dieselbe Datenbank zugreifen, und stellen Anforderungen an die Geschwindigkeit, mit der die Anwendung unter diesen Bedingungen geladen werden sollte.
2. Prüfung der Kompatibilität
Wenn Sie eine neue Dokumentenmanagement-Anwendung testen, müssen Sie prüfen, ob sie auf allen Geräten funktioniert, für die sie vorgesehen ist.
Das bedeutet, dass Sie die Anwendung auf allen aktuellen Versionen von Windows, Mac und allen anderen Betriebssystemen (wie Linux), mit denen die Software kompatibel sein soll, installieren und laden können.
3. Sicherheitsprüfung
Bei der Durchführung von Sicherheitstests testen Sie einige der Möglichkeiten, wie Personen versuchen könnten, auf vertrauliche Daten zuzugreifen oder die Sicherheitsvorkehrungen der Software zu umgehen, um zu überprüfen, ob sich das System in diesen Situationen so verhält, wie Sie es erwarten.
Sie könnten sich zum Beispiel als Benutzer anmelden und versuchen, auf Dateien zuzugreifen, für die Sie keine Sicherheitsfreigabe haben, um sicherzustellen, dass das System Ihnen den Zugriff auf diese Dateien nicht gestattet.
Arten von erkannten Fehlern und Bugs
durch nicht-funktionale Tests
Nichtfunktionale Tests können viele Fehler und Defekte aufdecken, die nicht so leicht zu finden sind wie diejenigen, die bei funktionalen Tests ermittelt werden. Das liegt daran, dass nicht-funktionale Tests oft erfordern, dass die Tester verschiedene Konfigurationen, Setups und Kombinationen von Bedingungen überprüfen, um zu beurteilen, wie gut das System in einer Vielzahl von verschiedenen Einstellungen funktioniert.
1. Leistungsmängel
Leistungsmängel entstehen, wenn das System zwar funktioniert, aber nicht so schnell oder so effizient, wie Sie es erwarten.
Sie könnten zum Beispiel feststellen, dass das System unter bestimmten Bedingungen nicht schnell genug lädt oder sogar abstürzt, wenn sich zu viele Benutzer gleichzeitig anmelden.
Leistungsmängel verhindern zwar nicht vollständig die Nutzung Ihrer Software, aber sie können dazu führen, dass Ihre Software weniger benutzerfreundlich ist und die Anforderungen der Benutzer weniger gut erfüllt.
2. Sicherheitsmängel
Sicherheitsmängel sind solche Mängel, die die Sicherheit Ihres Softwaresystems und der darin gespeicherten Daten beeinträchtigen.
Sicherheitsmängel können z. B. auftreten, wenn Benutzer auf vertrauliche Daten zugreifen können, auf die sie keinen Zugriff haben sollten, oder wenn bestimmte Teile der Anwendung nicht ordnungsgemäß mit einem Passwort geschützt sind, oder wenn die Verschlüsselung versagt.
Dies könnte zu Sicherheitsverletzungen führen, die den Ruf eines Softwareherstellers ernsthaft beeinträchtigen können.
3. Funktionelle Mängel
Obwohl nicht-funktionale Tests nicht darauf ausgelegt sind, die Funktionen einer Softwareanwendung zu testen, können nicht-funktionale Tests in einigen Fällen funktionale Mängel in der Software aufdecken.
Bei Zuverlässigkeitstests geht es beispielsweise nicht darum, zu prüfen, ob die App funktioniert, sondern ob sie bei wiederholten Versuchen zuverlässig funktioniert.
Dabei kann sich herausstellen, dass einige Funktionen bei der Wiederholung einer Handlung nicht zuverlässig funktionieren, was als Funktionsfehler eingestuft werden kann.
Gemeinsame Metriken für nicht-funktionale Tests
Nicht-funktionale Testmetriken beschreiben diejenigen Metriken, mit denen die Leistung und Effizienz des Systems gemessen werden.
Verschiedene Arten von nicht-funktionalen Tests beruhen auf unterschiedlichen Metriken, und Sie können je nach den endgültigen Zielen des Projekts eine Vielzahl von Metriken verwenden.
1. Zeit
Zeitmetriken messen, wie lange es dauert, bestimmte Aufgaben auszuführen oder wie lange die Nutzer auf das Laden von Funktionen warten müssen.
Einige Beispiele für Zeitmetriken sind die Anzahl der Transaktionen oder Downloads, die eine Anwendung innerhalb eines bestimmten Zeitrahmens durchführen kann, die Antwortzeiten verschiedener Funktionen und die Zeit, die die Anwendung benötigt, um einen bestimmten Vorgang abzuschließen.
Verschiedene Arten von Tests messen die Ergebnisse in Sekunden oder als Darstellung der Anzahl der Operationen pro Sekunde.
2. Weltraum
Platz ist eine weitere wichtige Metrik bei nichtfunktionalen Tests. Speicherplatzmetriken können prüfen, wie viel CPU-Speicherplatz das System benötigt oder wie viel Platz die Software auf der Festplatte einnimmt, sobald sie vollständig installiert ist.
Einige Beispiele für Raummetriken sind Cache-Speicher, Hauptspeicher und Zusatzspeicher.
Software, die viel Platz benötigt, um reibungslos zu funktionieren, kann für eine kleinere Anzahl von Kunden geeignet sein.
3. Benutzerfreundlichkeit
Einige Metriken bei nicht-funktionalen Tests berücksichtigen die Benutzerfreundlichkeit des Systems, z. B. wie lange es dauert, die Benutzer in die ordnungsgemäße Nutzung des Systems einzuweisen, wie viele Auswahlmöglichkeiten die Benutzer durchlaufen müssen, um wichtige Funktionen auszuführen, oder wie viele Mausklicks zur Ausführung bestimmter Aufgaben erforderlich sind.
Nicht-funktionale Tests können jede dieser Kennzahlen quantitativ messen, wobei niedrigere Zahlen im Allgemeinen ein höheres Maß an Benutzerfreundlichkeit bedeuten.
4. Verlässlichkeit
Eine weitere wichtige Kennzahl bei nicht-funktionalen Tests ist die Zuverlässigkeit. Die Zuverlässigkeit spiegelt die Wahrscheinlichkeit wider, dass sich das System immer wieder auf die gleiche Weise verhält oder über einen langen Zeitraum hinweg so funktioniert, wie es sollte.
Einige Beispiele für Metriken, die zur Messung der Zuverlässigkeit verwendet werden, sind die mittlere Zeit bis zum Ausfall, die Ausfallrate, die Verfügbarkeit und die Ausfallwahrscheinlichkeit.
Jede dieser Kennzahlen hilft den Testern, zu überprüfen, ob das System über einen langen Zeitraum ohne Ausfälle oder Abstürze laufen kann.
5. Robustheit
Die Robustheit ist das Maß dafür, wie gut das System mit Fehlern umgeht und wie gut sich das System im Falle eines Fehlers selbst wiederherstellen kann.
Einige Beispiele für Kennzahlen zur Messung der Robustheit sind die Zeit, die das System benötigt, um sich nach einem Ausfall selbst wiederherzustellen, der Prozentsatz der Vorfälle, die zu einem katastrophalen Ausfall führen, und die Wahrscheinlichkeit, dass Datendateien nach einem Ausfall des Systems beschädigt werden.
Dies sind wichtige Kennzahlen, denn die Benutzer erwarten, dass Systeme manchmal ausfallen können, ohne dass alle Daten verloren gehen oder Dateien beschädigt werden.
6. Übertragbarkeit
Die Portabilitätskennzahlen messen, wie einfach die Software auf verschiedene Systeme übertragen oder an einen neuen Standort innerhalb eines Netzes verschoben werden kann.
Einige Beispiele für Metriken, die die Portabilität messen, sind der Prozentsatz des nicht portierbaren Codes und die Anzahl der Systeme, auf denen die Software laufen kann.
Idealerweise ist Software, die auf vielen verschiedenen Systemen laufen kann, portabler und daher besser geeignet für den Einsatz in Umgebungen, die häufige Transfers oder Umzüge erfordern.
Strategien für die Durchführung nicht-funktionaler Tests
Wenn Sie mit nicht-funktionalen Tests beginnen, ist es wichtig, diese Testphase mit einer Strategie im Hinterkopf anzugehen. QA-Leiter und Softwaretestmanager sollten die Risiken des Testens, die ihnen zur Verfügung stehenden Ressourcen und den Zweck des Testens bedenken, bevor sie mit nichtfunktionalen Tests beginnen.
Die Entwicklung einer Strategie kann Ihnen helfen, Ihre nicht-funktionalen Tests von Anfang an zu optimieren.
1. Zuweisung von Rollen und Verantwortlichkeiten
Bevor Sie mit den nicht-funktionalen Tests beginnen, sollten Sie den wichtigsten Mitgliedern des Testteams Rollen und Verantwortlichkeiten zuweisen. Dies erleichtert die Verwaltung des Arbeitsaufwands für nicht-funktionale Tests und stellt sicher, dass erfahrene Tester für die Aufrechterhaltung der Qualität und Wirksamkeit der von Ihnen durchgeführten Tests verantwortlich sind.
Vergewissern Sie sich, dass die Personen, die Sie für diese Aufgaben auswählen, über das Wissen und die Erfahrung verfügen, die sie benötigen, um die von ihnen erwarteten Aufgaben auszuführen, insbesondere wenn diese Aufgaben technische Fähigkeiten erfordern.
2. Sammeln Sie relevante Testwerkzeuge
Stellen Sie alle Technologien und Werkzeuge zusammen, die Sie für die Durchführung von nichtfunktionalen Tests verwenden möchten. Stellen Sie sicher, dass Ihr gesamtes Team weiß, wie man sie effektiv einsetzt, und führen Sie bei Bedarf Schulungen durch, um Wissenslücken zu schließen.
Wenn man sicherstellt, dass alle Beteiligten wissen, welche Testwerkzeuge zu verwenden sind und wie man sie einsetzt, bevor die nichtfunktionalen Tests beginnen, verringert sich das Risiko, dass die Tests aufgrund unzureichender Kenntnisse unterbrochen oder wiederholt werden müssen.
3. Priorisierung der Tests
Bevor Sie mit den nicht-funktionalen Tests beginnen, erstellen Sie eine Liste aller Aspekte des Systems, die Sie testen müssen, und ordnen Sie diese nach Dringlichkeit und Wichtigkeit.
Sie können die Prioritäten für nicht-funktionale Tests auf der Grundlage des Risikograds der einzelnen Aspekte des zu testenden Systems festlegen.
So können beispielsweise grundlegende Sicherheitstests durchgeführt werden, da eine angemessene Sicherheit bei moderner Software als äußerst wichtig angesehen wird. Je früher Sie risikoreiche Fehler erkennen, desto geringer sind die potenziellen Auswirkungen dieser Fehler auf andere Aspekte des Systems.
Die 7 besten Werkzeuge für nicht-funktionale Tests
Nicht-funktionale Testwerkzeuge können den Testprozess rationalisieren, die Automatisierung von Tests vereinfachen und kostengünstiger gestalten und den QA-Leitern helfen, den Test- und Dokumentationsprozess zu verwalten.
Es gibt viele kostenlose Tools für nicht-funktionale Tests, die online verfügbar sind, sowie einige Tools, für die Sie eine monatliche Gebühr bezahlen können.
1. ZAPTEST FREE Ausgabe
ZAPTEST ist ein beliebtes Softwaretest-Tool, mit dem sich sowohl funktionale als auch nicht-funktionale Softwaretests schnell und einfach durchführen lassen. Mit ZAPTEST können Sie Softwaretests automatisieren und die RPA-Technologie nutzen, um verschiedene Funktionen und Bedingungen in nicht-funktionalen Tests zu emulieren.
Die ZAPTEST FREE Edition ist nur eine abgespeckte Version der Enterprise Edition und bietet viele der gleichen Funktionen in kleinerem Umfang. Sie können im ZAPTEST-Forum Unterstützung suchen und Leistungstests mit unbegrenzten virtuellen Benutzern durchführen.
2. Appium
Appium ist ein kostenloses Softwaretest-Tool, das sich am besten für das Testen mobiler Anwendungen auf einer Vielzahl verschiedener Plattformen eignet, darunter iOS- und Android-Geräte. Appium bietet den Anwendern viel Flexibilität, um ihre eigenen Test-Frameworks und -Strategien zu entwickeln und gleichzeitig von den Automatisierungsfunktionen von Appium zu profitieren.
3. Loadium
Loadium ist ein nicht-funktionales Testwerkzeug, das sich am besten für Performance- und Lasttests eignet, zwei Arten von nicht-funktionalen Tests, die sich mit Automatisierungswerkzeugen viel einfacher durchführen lassen.
Loadium ermöglicht die Durchführung umfangreicher Lasttests und bietet maßgeschneiderte Lösungen, mit denen Sie Ihre Tests auf Ihre Softwareziele abstimmen können.
Sie können Loadium kostenlos ausprobieren oder gegen Bezahlung die Vollversion der Anwendung herunterladen.
4. Obkio
Obkio ist ein Software-Testing-Tool, das QA-Leitern und Testmanagern hilft, Probleme nach ihrem Schweregrad zu priorisieren und zu kategorisieren. Obkio kann Probleme erkennen, bevor die Benutzer sie erkennen, bietet ihnen intelligente Benachrichtigungen und kann helfen, das Problem zu finden.
Obkio eignet sich nicht nur für nicht-funktionale Tests, sondern ist ein äußerst nützliches kostenloses Testwerkzeug, das in allen Phasen des Testlebenszyklus eingesetzt werden kann.
5. SonarQube
SonarQube ist ein Open-Source-Tool für Sicherheitstests, mit dem Code automatisch analysiert werden kann, um Fehler und Schwachstellen zu erkennen. Mit dem in Java geschriebenen SonarQube können Sie Code in über zwanzig verschiedenen Programmiersprachen analysieren, und die übersichtliche Oberfläche des Systems macht es einfach, Probleme zu erkennen, die in Zukunft Sicherheitslücken verursachen könnten.
6. Tsung
Tsung ist ein weiteres nicht-funktionales Testwerkzeug, das ideal ist, wenn Sie Last- und Stresstests automatisieren möchten, aber mit der kostenlosen Version von Loadium nicht zurechtkommen.
Tsung ist ein Open-Source-Tool, mit dem Benutzer hochvolumige Lasttests für mehrere Protokolle und Server, einschließlich HTTP und SOAP, durchführen können.
Tsung ist völlig kostenlos und kann Testern dabei helfen, sicherzustellen, dass die Software, an der sie arbeiten, unter einer Vielzahl von anspruchsvollen Bedingungen leistungsstark ist.
7. Sikuli
Sikuli ist eine weitere Anwendung, die die Automatisierung von Roboterprozessen zur Automatisierung des Testprozesses nutzt. Die Anwendung kann alles automatisieren, was auf dem Bildschirm zu sehen ist. Sie können Sikuli zum Testen nicht webbasierter Anwendungen und zur schnellen Reproduktion von Fehlern verwenden.
Checkliste, Tipps und Tricks für nicht-funktionale Tests
Bevor Sie mit den nichtfunktionalen Tests beginnen, vergewissern Sie sich, dass Sie alles haben, was Sie brauchen, um gründliche nichtfunktionale Tests in einer vorbereiteten Umgebung durchzuführen.
Befolgen Sie die nachstehende Checkliste mit Tipps und Tricks, bevor Sie mit nichtfunktionalen Tests beginnen.
1. Nach einem Zeitplan arbeiten
Unabhängig davon, ob Sie ihn in Ihren Testplan aufnehmen oder ein separates Dokument dafür erstellen, strukturieren Sie Ihre Softwaretests anhand eines Testplans.
Wenn Sie mehr Bugs und Defekte finden als erwartet, werden Sie vielleicht manchmal vom Zeitplan abweichen, aber ein Zeitplan zu Beginn kann helfen, die Tester zu leiten und sie zu motivieren, effizient zu arbeiten, besonders wenn sie zeitaufwändige manuelle Tests durchführen.
2. Identifizieren Sie Ihr Testteam
Die Delegierung von Zuständigkeiten und die Zuweisung von offiziellen Rollen und Titeln an die Mitglieder Ihres Testteams können dazu beitragen, dass der Testprozess reibungslos abläuft.
Kommunizieren Sie die Rollen und Verantwortlichkeiten innerhalb Ihres Teams klar, bevor Sie mit dem Testen beginnen, und weisen Sie verschiedenen Testern die Verantwortung für verschiedene Aspekte des nicht-funktionalen Testens zu, damit jeder für seine eigenen Aufgaben verantwortlich ist.
3. Auswahl von Werkzeugen und Technologien vor der Prüfung
Wenn Sie sich erst für bestimmte Tools und Technologien entscheiden, nachdem Sie mit den nichtfunktionalen Tests begonnen haben, kann dies den Testprozess verzögern und zu Verwirrung unter den Testern führen.
Recherchieren Sie stattdessen im Voraus und entscheiden Sie vor Beginn der Tests, ob Sie bestimmte Tools verwenden möchten. Auf diese Weise ist es einfach, diese Werkzeuge in den Testplan einzubinden und Ihre Tester vor Beginn der Tests in ihrer Verwendung zu schulen.
4. Lassen Sie Tests und Dokumentationen immer formal abzeichnen
Testen ist ein Qualitätssicherungsprozess, und der beste Weg, den Wert der von Ihnen durchgeführten Tests zu maximieren, ist die Durchführung einer grundlegenden Qualitätssicherung für die von Ihnen geplanten und durchgeführten Tests.
Führen Sie einfache Protokolle ein, die von den Testern verlangen, dass sie die QA-Leiter und Manager bitten, die Testpläne und -berichte zu überprüfen und abzuzeichnen, bevor sie zur nächsten Phase übergehen.
Dadurch erhöht sich die Wahrscheinlichkeit, dass Testfehler frühzeitig erkannt und behoben werden, erheblich.
7 Fehler und Fallstricke, die bei der Implementierung von nicht-funktionalen Tests zu vermeiden sind
Wenn Sie neu im Bereich des nicht-funktionalen Testens sind, können Sie leicht einige häufige Fehler machen, in die Tester und QS-Fachleute oft verfallen.
Nichtfunktionales Testen ist eine komplexe Aufgabe, bei der eine Softwareentwicklung aus allen Blickwinkeln und Perspektiven betrachtet werden muss.
Im Folgenden finden Sie eine Liste der häufigsten Fallstricke, die Tester bei der Durchführung von nichtfunktionalen Tests begehen.
1. Nicht planen
Wenn Sie neu im Bereich des nicht-funktionalen Testens sind, denken Sie vielleicht, dass Sie sich einfach in die Testphase stürzen können, ohne vorher einen gründlichen Testplan zu erstellen.
Manche Testteams erstellen unvollständige Testdokumente oder oberflächliche Zusammenfassungen des Testplans, in denen die Maßnahmen, die die Tester während der nichtfunktionalen Tests ergreifen müssen, nicht angemessen beschrieben sind.
2. Missmanagement bei der Prüfung
Es kann zu Problemen kommen, wenn die Tests in irgendeiner Phase des Testprozesses nicht korrekt durchgeführt werden. Ein unzureichendes Management kann dazu führen, dass die Tester nicht über die richtigen Ressourcen verfügen, um die Tests gründlich durchzuführen, oder dass ihnen nicht genügend Zeit zur Verfügung steht, um jeden Aspekt des Builds zu testen.
Testmanager müssen in der Lage sein, aus den Fehlern, die sie machen, zu lernen und in Zukunft effektivere Testpläne zu entwickeln.
3. Schlechte Kommunikation
Schlechte Kommunikation kann während des Testprozesses eine Menge Probleme verursachen, insbesondere bei nicht-funktionalen Tests.
Dies kann eine schlechte Kommunikation innerhalb des Testteams oder eine schlechte Kommunikation zwischen Testern, Entwicklern und Beteiligten bedeuten.
Dies geschieht häufig, wenn die Tester die Testdokumente nicht ausreichend pflegen oder während des Testprozesses nicht regelmäßig mit anderen Abteilungen kommunizieren.
4. Entwickler ignorieren
Tester und Entwickler arbeiten in der Regel recht getrennt voneinander, aber Testteams, die eng mit den Entwicklern zusammenarbeiten, können von zusätzlichen Kenntnissen über die Funktionsweise der Software und die Interaktion zwischen den verschiedenen Modulen profitieren.
Die Einbindung von Entwicklern in den Testprozess oder das Einholen von Feedback von Entwicklern zu wichtigen Zeitpunkten kann den Testteams helfen, effizientere und gründlichere Testpläne zu erstellen.
5. Zweck der Prüfung
Viele Tester glauben immer noch, dass der Zweck des Testens darin besteht, zu prüfen, ob die Software funktioniert, oder den Beteiligten und Investoren zu zeigen, dass die Software funktioniert.
Stattdessen sollten die Tester mit der Einstellung an das Testen herangehen, dass der Zweck des Testens darin besteht, nach Fehlern zu suchen.
Tester, die keine Fehler finden, können nur dann zufrieden sein, dass die Software, die sie testen, frei von Fehlern ist, wenn sie sicher sind, dass sie überall nach Fehlern gesucht haben.
6. Manuelle vs. automatisierte Fehler
Es ist wichtig, dass Sie sich Zeit nehmen, um zu überlegen, ob manuelle oder automatisierte Tests für jede Art von Tests, die Sie durchführen, besser sind.
Automatisierte Testmethoden eignen sich hervorragend für fast alle Formen des nicht-funktionalen Testens, und Testteams, die an funktionale Tests gewöhnt sind, könnten den Fehler machen, anzunehmen, dass sie nicht-funktionale Funktionen genauso einfach manuell testen können.
7. Verwendung der falschen Prüfwerkzeuge
Es ist leicht, die falschen Testwerkzeuge und -technologien auszuwählen, bevor man mit dem nichtfunktionalen Testen beginnt, vor allem, wenn die Testteams daran gewöhnt sind, manuelle Tests durchzuführen und nicht an die Verwendung von Testwerkzeugen gewöhnt sind.
Informieren Sie sich im Vorfeld über die nichtfunktionalen Testmethoden, die Sie einsetzen möchten, und wählen Sie Softwaretools und Automatisierungswerkzeuge aus, die den spezifischen Anforderungen Ihres Projekts entsprechen.
Schlussfolgerung
Das nichtfunktionale Testen ist ein wesentlicher Schritt im Testprozess, der es den Testern ermöglicht, zu überprüfen, wie gut ein System funktioniert und inwieweit es nichtfunktionale Anforderungen wie Ladezeiten, Kapazität und Sicherheitsgarantien erfüllt.
Es gibt viele verschiedene Möglichkeiten, nicht-funktionale Tests durchzuführen, aber moderne Automatisierungswerkzeuge machen es einfacher, die Testabdeckung und -genauigkeit zu maximieren, ohne die Qualität der Ergebnisse zu beeinträchtigen.
FAQs und Ressourcen
Wenn Sie mehr über nicht-funktionale Tests erfahren möchten, finden Sie im Internet eine Vielzahl von FAQs und Ressourcen.
Stöbern Sie in unseren bevorzugten Online-Ressourcen für nicht-funktionale Tests oder lesen Sie die Antworten auf einige der am häufigsten gestellten Fragen zu nicht-funktionalen Tests.
1. Die besten Kurse zu nicht-funktionalen Tests
Es gibt eine Vielzahl von Online-Kursen, die Ihnen helfen können, Ihr Wissen über nicht-funktionale Testmethoden und -ansätze zu erweitern.
Einige dieser Kurse sind kostenlos, andere bieten gegen eine Gebühr ein Zertifikat oder eine Qualifikation an. Wenn Sie einen akkreditierten Kurs belegen möchten, können Sie Ihren Arbeitgeber fragen, ob er Sie sponsert und die Kosten für den Unterricht übernimmt.
Einige der besten Kurse zum Thema nicht-funktionales Testen sind:
- TSG: Nicht-funktionale Schulung 2-Tages-Kurs
- Udemy: Das komplette Software-Testing-Bootcamp 2023
- Edx: Software Testing Professional Zertifikat
- Lehrreich: Automatisierung von Leistungstests 101
2. Was sind die 5 wichtigsten Interviewfragen zu nicht-funktionalen Tests?
Wenn Sie sich auf ein Vorstellungsgespräch für eine Tätigkeit im Bereich Softwaretests vorbereiten, wird Ihr Gesprächspartner Ihnen möglicherweise Fragen zum nichtfunktionalen Testen stellen, um sicherzustellen, dass Sie verstehen, wie diese wichtige Phase des Softwaretests funktioniert. Bereiten Sie sich auf Ihr Vorstellungsgespräch vor, indem Sie bereits im Vorfeld effektive Antworten auf häufig gestellte Fragen parat haben.
Wie könnten sich die Ansätze und Methoden, die Sie beim nicht-funktionalen Testen verwenden, von den Ansätzen unterscheiden, die Sie beim funktionalen Testen verwenden?
● Wie unterscheiden sich nichtfunktionale Tests von funktionalen Tests?
● Welche verschiedenen Arten von nichtfunktionalen Tests gibt es?
● Wie priorisieren Sie funktionale Tests und Testfälle?
● In welcher Phase des Softwaretests werden normalerweise funktionale Tests durchgeführt?
3. Die besten YouTube-Tutorials zu nicht-funktionalen Tests
Wenn Sie es vorziehen, durch das Anschauen von Videos zu lernen, könnten Sie YouTube-Tutorials über nicht-funktionale Tests nützlich finden, um mehr über diese Art von Softwaretests zu erfahren.
Im Folgenden finden Sie einige der besten YouTube-Tutorials zum Thema Softwaretests, die derzeit verfügbar sind.
Was sind nicht-funktionale Softwaretests? Eine Anleitung zum Testen von Software
Hilfe bei Softwaretests: Nicht-funktionale Tests
Nichtfunktionale Tests beim Softwaretest
W3Schools besuchen
Funktionale und nicht-funktionale Tests
4. Wie man nicht-funktionale Tests pflegt
Eine ordnungsgemäße Testwartung stellt sicher, dass Softwaretests wiederholt werden können, ohne die Qualität der Testergebnisse zu beeinträchtigen.
Durch die Pflege von nicht-funktionalen Tests können Sie sicherstellen, dass die Tests in jeder Phase des Entwicklungsprozesses angemessen sind und dass Ihre Tests stets an den sich ständig ändernden Code angepasst werden.
Sie können nichtfunktionale Tests beibehalten, indem Sie unsere folgenden Tipps befolgen.
● Klare Kommunikation innerhalb des Testteams bei der Erstellung von Testfällen und der Erstellung der Dokumentation
● Befolgen Sie stets die besten Praktiken für den Testentwurf
● Neubewertung von Prüfprotokollen in verschiedenen Stadien des Prüfprozesses
● Aktualisieren Sie Änderungen in Ihrem Test während der Durchführung
Berücksichtigen Sie zukünftige Projekte, wenn Sie Änderungen an aktuellen Tests vornehmen.
5. Sind nichtfunktionale Tests Black-Box- oder White-Box-Tests?
Nichtfunktionales Testen ist eine Art von Blackbox-Testing, d. h., die Tester befassen sich nicht mit der internen Funktionsweise des Systems, sondern nur mit seinen externen Ergebnissen.
Dies steht im Gegensatz zu White-Box-Tests, bei denen die interne Funktionsweise des Systems getestet wird. Beispiele für White-Box-Tests sind Unit-Tests und Integrationstests.
Funktionale und nicht-funktionale Anforderungsprüfungen sind Beispiele für Black-Box-Tests. Das bedeutet, dass die Tester keine fortgeschrittenen technischen Fähigkeiten oder Kenntnisse in der Computerprogrammierung benötigen, um Blackbox-Tests durchzuführen, und auch nicht lernen müssen, wie die zu testenden Systeme implementiert werden.