“Was sind nicht-funktionale Tests?”
- Stresstests
- Leistungs-/Lasttests
- Failover-Tests
- Wiederherstellungstests
- Soak-Tests
Nicht-funktionale Tests richten sich normalerweise auf nicht-funktionale Anforderongen im Entwurf und weiteren Verlauf von Softwareentwicklung. Daher kommt zuerst die Frage:
Nicht-funktionale Anforderungen sind Kriterien, die die Qualitätsmerkmale eines Systems oder einer Software beschreiben. Sie sind das Gegenteil von funktionalen Anforderungen. Dies besteht in der Regel aus:
Sie konzentrieren sich nicht auf die spezifische Funktionalität des Systems wie beispielsweise funktionale Anforderungen, sondern darauf, wie gut die Software funktioniert. Sie erleben die nicht-funktionale Anforderung durch nichtfunktionales Testen; Dies kann direkt zur Verbesserung Ihrer Softwareentwicklung und -tests beitragen.
Nicht-funktionale Tests konzentrieren sich auf die Anwendung als Ganzes. Wie gut funktioniert die Anwendung in bestimmten Situationen und ist diese im Hinblick auf den gewünschten Einsatz ausreichend? Dabei geht es nicht so sehr um geschäftliche Anforderungen oder die Suche nach Fehlern, sondern eher darum, ob das Produkt einfach zu bedienen ist. Gibt es ein ausreichend gutes Benutzererlebnis, ist es sicher, schnell genug, angenehm zu bedienen usw.? Einfach gesagt; Entspricht es den Erwartungen des Endbenutzers?
Da die nicht-funktionalen Tests ein breites Themenspektrum abdecken können, gibt es auch mehrere Arten von Tests.
Was sind die Unterschiede zwischen funktionalem und nicht-funktionalem Testen? Während sich der Funktionstest auf den Vergleich zwischen den vordefinierten Funktionen einer Anwendung konzentriert, konzentriert sich der nicht-funktionale Test mehr auf die Anwendung als Ganzes. Wie gut funktioniert die Anwendung in bestimmten Situationen und ist diese im Hinblick auf den gewünschten Einsatz ausreichend?
Bei funktionalen Tests geht es daher um Anforderungen und Funktionalitäten (was macht es), während es bei nicht-funktionalen Tests um Erwartungen und Leistung unter bestimmten Umständen geht. Funktionstests können häufig manuell durchgeführt werden, während nicht-funktionale Tests häufig simuliert werden müssen.
Bei der Formulierung von Wünschen und Anforderungen wird das nicht-funktionale Testen oft vergessen. Zu den Funktionalitäten gibt es viel zu sagen, aber was in bestimmten Situationen von der Software als Ganzes erwartet wird, ist schwieriger zu beschreiben oder anzugeben, was erwartet wird.
Ist es immer möglich, nicht-funktionale Tests auszulagern? Noch mehr als funktionale Tests eignen sich nicht-funktionale Tests für die Auslagerung. Während der Wissenstransfer beim funktionalen Testen entscheidend ist, um die Tests ordnungsgemäß durchzuführen (sonst weiß man nicht, was erwartet wird), gilt dies in geringerem Maße für nicht-funktionales Testen. Hier ist es sehr wichtig abzuschätzen (und zu untersuchen), was die Endbenutzer von der Anwendung erwarten und herauszufinden, welche Situationen auftreten können, die die angenehme Nutzung stören könnten. Darauf aufbauend können Sie die nicht-funktionalen Anforderungen erstellen und testen. Erfahrene Prüfingenieure können einen wichtigen Beitrag zur Vorbereitung und Durchführung der verschiedenen Tests leisten. Dinge, an die man normalerweise nicht denkt oder die man nicht selbst simulieren kann, können Profis mit verschiedenen Tools erledigen.
Auch nicht-funktionale Tests müssen von Anfang an im Rahmen der agilen Entwicklungsmethodik gesichert sein und dürfen nicht erst im Nachhinein als letzter Schritt in der Entwicklung durchgeführt werden. Durch die rechtzeitige Durchführung bestimmter nichtfunktionaler Tests wird der Aufwand für die Behebung etwaiger Mängel zu einem späteren Zeitpunkt geringer sein. Gutes Testen (eigentlich Qualitätssicherung) bedeutet auch, nach vorne zu schauen. Inwieweit können wir vorhersagen, wo nicht funktionale Engpässe auftreten können? Sobald Sie dies wissen, können Sie es bei der Entwicklung berücksichtigen und so Fehler verhindern. Das spart Zeit, Geld, Frust und unzufriedene Benutzer.
Egor Gucinsky QA Manager
„Testen ist eine präventive Aktivität und konzentriert sich darauf, Bereiche aufzudecken, die unter Qualitätsgesichtspunkten riskant sind, bevor mit dem Testen begonnen wird. Dies wird durchgeführt, um Bereiche, in denen tendenziell Probleme auftreten, gezielt zu testen. Das Testen funktionaler und geschäftskritischer Szenarien hat Priorität. Szenarien werden im Vorfeld vorbereitet und unterstützen die Entwicklung von Anfang an.“