Home QA & Testing soorten Nicht-funktionale Tests

Nicht-funktionale Tests

“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:

Was sind nicht-funktionale Anforderungen?

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:

  • Leistung
  • Sicherheit
  • Zuverlässigkeit
  • Benutzerfreundlichkeit
  • Skalierbarkeit
  • Kompatibilität

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.

Was sind nicht-funktionale Tests?

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?

Arten von nicht-funktionalen Tests

Da die nicht-funktionalen Tests ein breites Themenspektrum abdecken können, gibt es auch mehrere Arten von Tests.

  • Leistungs-/Lasttests. Die Software wird unter einer bestimmten Last getestet, um festzustellen, ob die Leistung der Software innerhalb bestimmter Standards bleibt.
  • Belastbarkeitstest. Bei einer höheren (extremen) Belastung der Anwendung wird getestet, wie die Software darauf reagiert und welche maximale Belastung möglich ist. Leistungstests testen daher mit der maximal angeforderten Last, während Stresstests mehr als die maximale Last testen und sehen, was passiert.
  • Failover-Tests. Software verfügt oft über redundante Systeme, die eingeschaltet werden, wenn ein Fehler auftritt oder das System überlastet wird. Failover testet, wie diese Systeme funktionieren und wie die Basisanwendung wiederhergestellt wird, nachdem sie wieder betriebsbereit ist.
  • Einweichtest. Die Software wird über einen längeren Zeitraum mit einer bestimmten Arbeitslast getestet. Wie verhält sich das System in der Praxis bei langfristiger und intensiver Nutzung? Hält es der täglichen Praxis stand?
  • Sicherheitstests. Was passiert mit der Software, wenn feindselige Maßnahmen ergriffen werden? Wie gut ist die Sicherheit und wie reagiert die Software (nach dem Angriff)?
  • Usability-Tests. Wie einfach ist die Software zu bedienen? Wie wird mit konkreten Nutzungssituationen umgegangen und wie einfach ist die Sftware zu bedienen? Dies betrifft hauptsächlich den UI-Test.

  Funktionale und nicht-funktionale 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.

  Nicht-funktionale Tests auslagern

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.

Agiles Testen nicht-funktionaler Anforderungen

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.

  • Professionell getestet
  • Integration in das Agile-Team
  • Zeit sparen bei der Entwicklung
  • Profitieren Sie von unserer Erfahrung
  • Investieren, um Kosten zu sparen

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.“