complete non functional testing guide
Ein vollständiger Leitfaden für nicht funktionale Tests: Zweck, Typen, Werkzeug, Testfälle mit Beispielen
Was ist nicht funktionales Testen?
Nicht funktionale Tests werden durchgeführt, um die nicht funktionalen Anforderungen der Anwendung wie Leistung, Benutzerfreundlichkeit usw. zu überprüfen.
Es wird überprüft, ob das Verhalten des Systems den Anforderungen entspricht oder nicht. Es deckt alle Aspekte ab, die nicht behandelt werden Funktionsprüfung . Bei unseren täglichen Tests wird viel Wert auf Funktionstests und funktionale Anforderungen gelegt.
Die Kunden sind auch daran interessiert, die funktionalen Anforderungen zu erfüllen, die in direktem Zusammenhang mit der Funktionalität einer Anwendung stehen. In der eigentlichen Phase, d. H. Wenn Sie auf Funktion getestet werden, kommt die Software auf den Markt und wird von den echten Endbenutzern verwendet. Es besteht die Möglichkeit, dass einige Probleme im Zusammenhang mit der Leistung auftreten.
Diese Probleme hängen nicht mit der Funktionalität des Systems zusammen, können sich jedoch negativ auf die Benutzererfahrung auswirken. Daher ist es wichtig, dass die Software oder Anwendung auch auf nicht funktionale Anforderungen getestet wird, um ein negatives Kundenerlebnis zu vermeiden.
Das Testen wird grob in zwei Typen eingeteilt:
- Funktionsprüfung
- Nichtfunktionale Tests
Was du lernen wirst:
- Bedeutung
- Zweck
- Beispiel
- Vorteile
- Wie erfasst man nicht funktionierende Anforderungen?
- Unterschied in funktionalen und nicht funktionalen Anforderungen
- Ist dies ein Black Box- oder White Box-Test?
- Checkliste für nicht funktionierende Testfälle
- Annäherungsdokument
- Nichtfunktionale Testtypen
- Nicht funktionierende Testwerkzeuge
- Fazit
- Literatur-Empfehlungen
Bedeutung
Bei diesen Tests fehlte die gebührende Aufmerksamkeit, da sie die Funktionalität des Systems nicht beeinträchtigen.
Die nicht funktionalen Anforderungen wurden in den früheren Testzyklen ebenfalls nicht angemessen berücksichtigt. Dies hat sich jetzt jedoch geändert. Nichtfunktionale Tests sind jetzt am wichtigsten, da sie heutzutage alle Probleme mit der Anwendungsleistung und der Sicherheit berücksichtigen.
Diese Tests haben größere Auswirkungen auf Anwendungen, wenn es um die Leistung der Anwendung bei hohem Benutzerverkehr geht. Diese Tests stellen sicher, dass Ihre Anwendung stabil ist und die Last unter extremen Bedingungen bewältigen kann.
Wie der Name selbst zeigt, konzentriert sich dieser Test auf den nicht funktionalen Aspekt der Anwendung. Was sind also die nicht funktionalen Aspekte? Oder sollte ich sagen, welche Funktionen nicht mit der Funktionalität der Anwendung zusammenhängen?
Hier sind die Antworten auf diese Fragen:
- Wie funktioniert die Anwendung unter normalen Umständen?
- Wie verhält sich die Anwendung, wenn sich zu viele Benutzer gleichzeitig anmelden?
- Kann die Anwendung mit Stress umgehen?
- Wie sicher ist die Anwendung?
- Kann sich die Anwendung von einer Katastrophe erholen?
- Kann sich die Anwendung in einer anderen Umgebung oder einem anderen Betriebssystem gleich verhalten?
- Wie einfach ist es, die Anwendung in ein anderes System zu portieren?
- Sind die mit der Anwendung gelieferten Dokumente / Benutzerhandbücher leicht verständlich?
Die Liste geht weiter. Der Punkt hier ist jedoch, dass - tragen diese Funktionen nicht zur Qualität der Anwendung bei? Die Antwort ist ja. Diese Funktionen sind gleichermaßen wichtig.
Stellen Sie sich vor, eine Anwendung erfüllt alle Benutzeranforderungen perfekt, aber ein nicht autorisierter Benutzer geht leicht und knackt die vom Benutzer in die Anwendung eingegebenen Daten, oder die Anwendung stirbt, wenn mehr als 5BB einer Datei hochgeladen werden. Würden Sie sagen, dass die Anwendung von guter Qualität ist? Offensichtlich nicht richtig !!
Zweck
Der einzige Zweck dieser Art von Tests besteht darin, sicherzustellen, dass die nicht funktionalen Aspekte der Anwendung getestet werden und die Anwendung im Kontext derselben gut funktioniert.
Der Zweck besteht darin, das Testen aller Merkmale der Anwendung abzudecken, die dazu beitragen, eine Anwendung bereitzustellen, die den Geschäftserwartungen entspricht.
Beispiel
Dies ist ein wichtiger Testtyp.
Funktionstests testen die Funktionalität der Anwendung und stellen sicher, dass sie wie erwartet funktioniert. Die nicht funktionalen Tests stellen jedoch sicher, dass die Anwendung gut genug funktioniert, um die Geschäftserwartungen zu erfüllen.
Um seine Bedeutung zu verstehen, nehmen wir ein einfaches Beispiel:
Eine Anwendung wird entwickelt und vollständig auf Funktionalität getestet, aber nicht funktionale Tests werden nicht mit derselben durchgeführt.
Wenn die Anwendung live geschaltet wird, kann dies zu kritischen oder schwerwiegenden Problemen führen, z. B. wenn die Auslastung der Anwendung erhöht wird, sie zu langsam wird und das Öffnen viel Zeit in Anspruch nimmt.
Die Reaktionszeit kann sich verlängern, oder wenn die Last bis zu einem gewissen Grad erhöht wird, kann die Anwendung abstürzen. Dies zeigt, wie wichtig es ist, die nicht funktionalen Aspekte einer Anwendung zu testen.
Vorteile
Nachfolgend einige Vorteile eines nicht funktionierenden Tests:
- Es deckt die Tests ab, die bei Funktionstests nicht abgedeckt werden können.
- Es stellt sicher, dass die Anwendung effizient ausgeführt wird und zuverlässig genug ist.
- Es gewährleistet die Sicherheit der Anwendung.
Wie erfasst man nicht funktionierende Anforderungen?
Während wir Tests durchführen, liegt der Fokus hauptsächlich auf Funktionstests, die die Funktionalität des Produkts testen. Nichtfunktionale Tests sind jedoch genauso wichtig wie funktionale Tests, und ihre Anforderungen sollten von Anfang an berücksichtigt werden.
Nichtfunktionale Anforderungen werden verwendet, um nichtfunktionale Tests durchzuführen. Diese Anforderungen umfassen die Leistungsausgabe, die von der Anwendung oder der zu testenden Software erwartet wird. Dies schließt im Wesentlichen die Zeit ein, die die Software benötigt, um ein bestimmtes System zu betreiben.
Nicht funktionale Anforderungen erfassen auch das Verhalten, wenn eine große Anzahl von Personen die Software gleichzeitig verwenden. Meistens wird festgestellt, dass die Server aufgrund hoher Auslastung ausgelastet oder nicht verfügbar sind (d. H. Mehr Benutzer verwenden sie gleichzeitig). Online-Buchung von Bahntickets kann das Beste sein Beispiel einer solchen Situation.
Die ordnungsgemäße Dokumentation der nicht funktionalen Anforderung und die korrekte Durchführung der Tests gewährleisten daher eine hohe Zufriedenheit hinsichtlich der Benutzerfreundlichkeit durch die potenziellen Kunden.
Diese Tests haben zwar keine direkten geschäftlichen Auswirkungen auf die Funktionalität des Systems, können jedoch die Benutzererfahrung und Benutzerfreundlichkeit in höherem Maße verbessern, was sich wiederum stärker auf die Qualität der Software auswirkt.
Beispiel:
Betrachten Sie dasselbe Beispiel für eine Facebook-Anmeldeseite. In diesem Fall besteht der Umfang der nicht funktionalen Tests darin, die Zeit zu notieren, die das System benötigt, um sich nach Eingabe der gültigen Anmeldeinformationen bei Facebook anzumelden.
Es kann auch getestet werden, wann (sagen wir 100) sich die Benutzer gleichzeitig anmelden und wie lange es dauert, sich bei Facebook anzumelden.
Dies stellt sicher, dass das System Last und Verkehr verarbeiten kann, was wiederum eine gute Benutzererfahrung bietet.
In Agile sollte die nicht funktionierende Anforderung mithilfe von Eingaben erfasst werden.
Eine nicht funktionierende Anforderung sollte wie folgt erfasst werden:
- Benutzer- / technische Geschichten
- In Akzeptanzkriterien
- Im Artefakt
9
# 1) Benutzer- / technische Geschichten
Eine nicht funktionierende Anforderung kann mit erfasst werden benutzergeschichten oder technische Geschichten. Das Erfassen nichtfunktionaler Anforderungen als User Story entspricht dem Erfassen anderer Anforderungen. Der einzige Unterschied zwischen dem Benutzer und einer technischen Story besteht darin, dass die User Story eine Diskussion erfordert und sichtbar ist.
# 2) Akzeptanzkriterien
Akzeptanzkriterium ist der Punkt, der zum Akzeptieren des Produkts durch den Kunden definiert ist, d. h. um das Produkt zu den definierten Punkten zu akzeptieren, sollte er sich im Pass-Zustand befinden.
Eine nicht funktionale Anforderung sollte in die Akzeptanzkriterien aufgenommen werden, aber manchmal ist es nicht möglich, die nicht funktionalen Anforderungen mit jeder Story, d. H. Mit jeder Iteration, zu testen. Daher sollten die Anforderungen nur mit der entsprechenden Iteration hinzugefügt oder getestet werden.
# 3) In Artefakten
Für die nicht funktionalen Anforderungen sollte ein separates Artefakt vorbereitet werden. Dies würde wiederum dazu beitragen, eine bessere Vorstellung davon zu bekommen, was getestet werden muss und wie dies in Iterationen durchgeführt werden kann.
Unterschied in funktionalen und nicht funktionalen Anforderungen
Es gibt verschiedene Unterschiede zwischen den funktionalen und nicht funktionalen Anforderungen, von denen einige nachstehend aufgeführt sind:
S.No. | Funktionale Anforderung | Nicht funktionierende Anforderung |
---|---|---|
Performance | Leistungstester über ein Tool, das den Vorgang als eine Transaktion behandelt, die von einer bestimmten Anzahl gleichzeitiger Benutzer ausgeführt wird, während der Tester die gesamte Logistik analysiert | Reaktionszeit |
1 | Die funktionale Anforderung ist kundenorientiert. | Die nicht funktionalen Anforderungen basieren auf den Entwicklern und dem technischen Wissen des Teams. |
zwei | Die funktionale Anforderung gibt an, welche Funktionalität berücksichtigt werden soll, d. H. Welche getestet werden muss. | Nicht funktionale Anforderungen legen fest, wie es getestet werden muss. |
3 | Funktionstests werden durchgeführt, bevor die Anwendung live geschaltet wird. | Zu den nicht funktionalen Anforderungen gehören Wartungstests und Dokumentationstests, die während der Ausführung nicht erforderlich sind, die Anwendung jedoch live geschaltet wurde. |
4 | Es ist nur als funktionale Anforderung bekannt. | Auch als Qualitätsanforderungen bekannt. |
5 | Der Implementierungsplan für die funktionalen Anforderungen ist im Systemdesigndokument definiert. | Der Implementierungsplan für nicht funktionale Anforderungen ist in der Systemarchitektur definiert. |
6 | Die funktionale Anforderung umfasst das Testen der technischen Funktionalität des Systems. | Zu den nicht funktionalen Anforderungen gehören Eigenschaften wie Sicherheit, Benutzerfreundlichkeit usw. |
Weiterführende Literatur => Unterschiede zwischen Funktions- und Nichtfunktionstests
Ist dies ein Black Box- oder White Box-Test?
Der nicht funktionale Test fällt unter a Black-Box-Test Technik.
Diese Technik beschränkt sich nicht nur auf das Testen der Funktionen, sondern kann auch zum Testen der nicht funktionalen Anforderungen sowie der Leistung, Benutzerfreundlichkeit usw. verwendet werden. Die Black-Box-Testtechnik erfordert keine Kenntnisse des internen Systems, dh sie erfordert keine die Kenntnis des Codes an den Tester.
Checkliste für nicht funktionierende Testfälle
Eine Checkliste wird verwendet, um sicherzustellen, dass kein wichtiger Aspekt ohne Tests bleibt.
Eine Checkliste wird im Allgemeinen verwendet, wenn keine Zeit für die Dokumentation vorhanden ist und das Produkt getestet werden muss oder wenn eine zeitliche Beschränkung besteht. Eine Checkliste kann verwendet werden, um sicherzustellen, dass alle wichtigen Aspekte abgedeckt wurden.
Mal sehen, einBeispielCheckliste für Tests zu Leistung, Sicherheit und Dokumentation.
Checkliste für Leistungstests
- Die Reaktionszeit der Anwendung sollte überprüft werden, d. h. wie lange es dauert, die Anwendung zu laden. Jede Eingabe an die Anwendung liefert die Ausgabe in wie viel Zeit, Aktualisierung des Browsers usw.
- Durchsatz sollte auf die Anzahl der Transaktionen überprüft werden, die während eines Auslastungstests abgeschlossen wurden.
- Umgebung Die Einrichtung sollte mit der Live-Umgebung identisch sein, da sonst die Ergebnisse nicht identisch sind.
- Prozess Zeit - Prozessaktivitäten wie Import und Export von Excel, alle Berechnungen in der Anwendung sollten getestet werden.
- Interoperabilität sollte überprüft werden, d. h. eine Software sollte in der Lage sein, mit den anderen Software oder Systemen zu interagieren.
- ETL Die Zeit sollte überprüft werden, d. h. die Zeit, die zum Extrahieren, Transformieren und Laden der Daten von einer Datenbank in eine andere benötigt wird.
- Last erhöhen auf dem Antrag sollte überprüft werden.
Checkliste für Sicherheitstests
- Authentifizierung: Nur ein authentischer Benutzer sollte sich anmelden können.
- Autorisiert: Der Benutzer sollte sich nur bei den Modulen anmelden können, für die er autorisiert ist oder für die dem Benutzer Zugriff gewährt wurde.
- Passwort: Die Kennwortanforderung sollte überprüft werden, d. H. Das Kennwort sollte der Definition der Anforderung entsprechen, d. H. Länge, Sonderzeichen, Zahlen usw.
- Auszeit: Wenn die Anwendung inaktiv ist, sollte das Zeitlimit in einer bestimmten Zeit überschritten werden.
- Datensicherung: Die Datensicherung sollte zu einem bestimmten Zeitpunkt durchgeführt und an einen gesicherten Ort kopiert werden.
- Interne Links Auf die Webanwendung sollte nicht zugegriffen werden können, wenn sie direkt im Browser platziert wird.
- Die gesamte Kommunikation sollte verschlüsselt sein.
Checkliste für Dokumentationstests
- Benutzer- und Systemdokumentation.
- Dokumente für Schulungszwecke.
Annäherungsdokument
Entwickeln Sie ein spezifisches Ansatzdokument für die Phase des Leistungstests, indem Sie die gesamte Teststrategie verfeinern. Dieser Testansatz hilft bei der Planung und Ausführung aller Leistungstestaufgaben.
So initialisieren Sie ein generisches Array in Java
- Testumfang
- Testmetriken
- Testwerkzeuge
- Schlüsseldaten und Ergebnisse
Testumfang
Führen Sie Leistungstests aus verschiedenen Perspektiven durch, z. B. Benutzerleistung, Geschäftsprozesse, Systemstabilität, Ressourcenverbrauch usw. Die auszuführenden Arten von Leistungstests werden im obigen Abschnitt des Artikels erläutert (z. B. Belastungstest, Stresstest usw.).
Testmetriken
Der Testansatz verfeinert die Metriken, die während des Tests gemessen und gemeldet werden sollen, z.
- Reaktionszeit (online)
- Stapelfenster (Stapel)
- Durchsatz ( Zum Beispiel , die Anzahl der Transaktionen pro Zeiteinheit)
- Verwertung ( Zum Beispiel , der Prozentsatz der verwendeten Ressourcen)
Testwerkzeuge
Meistens erfordern Leistungstests die Verwendung geeigneter Tools:
- Tools zur Lasterzeugung
- Tools zur Leistungsüberwachung
- Tools zur Leistungsanalyse
- Tools zur Anwendungsprofilerstellung
- Grundauskleidungswerkzeuge.
Schlüsseldaten und Ergebnisse
Das Dokument zum Leistungstestansatz sollte Folgendes beschreiben:
- Datum und Uhrzeit jedes Leistungstests.
- Testtypen und Funktionsmix, die in jedes Leistungstest-Verhalten einbezogen werden sollen.
- Abschlussdaten des Leistungstests.
Nichtfunktionale Testtypen
Das folgende Bild zeigt die Arten von Nichtfunktionstests:
Leistungstest:
Bewertet die Gesamtleistung des Systems .
Schlüsselelemente sind wie folgt:
- Überprüft, ob das System die erwartete Antwortzeit erfüllt.
- Bewertet, dass die wesentlichen Elemente der Anwendung die gewünschte Antwortzeit erfüllen.
- Es kann auch als Teil von Integrationstests und Systemtests durchgeführt werden.
Lasttests:
Bewertet, ob die Systemleistung unter normalen und erwarteten Bedingungen wie erwartet ist.
Wichtige Punkte sind:
- Überprüft, ob das System die erwartete Leistung erbringt, wenn gleichzeitige Benutzer auf die Anwendung zugreifen und die erwartete Antwortzeit erhalten.
- Dieser Test wird mit mehreren Benutzern wiederholt, um die Antwortzeit und den Durchsatz zu erhalten.
- Zum Zeitpunkt des Tests sollte die Datenbank realistisch sein.
- Der Test sollte auf einem dedizierten Server durchgeführt werden, der die tatsächliche Umgebung stimuliert.
Belastbarkeitstest:
Bewertet, ob die Leistung des Systems wie erwartet ist, wenn die Ressourcen knapp sind.
Wichtige Punkte sind:
- Testen Sie auf Clients / Servern auf wenig Speicher oder wenig Speicherplatz, um die Fehler aufzudecken, die unter normalen Bedingungen nicht gefunden werden können.
- Mehrere Benutzer führen dieselben Transaktionen mit denselben Daten aus.
- Mehrere Clients sind mit unterschiedlichen Workloads mit den Servern verbunden.
- Reduzieren Sie die Denkzeit auf „Null“, um die Server maximal zu belasten.
Denkzeit: Genau wie das Zeitintervall zwischen der Eingabe Ihres Benutzers und des Passworts.
Volumentest:
Wertet das Verhalten der Software aus, wenn ein großes Datenvolumen betroffen ist.
Wichtige Punkte sind:
- Wenn die Software großen Datenmengen ausgesetzt ist, überprüfen Sie die Grenze, an der die Software ausfällt.
- Die maximale Datenbankgröße wird erstellt und mehrere Clients fragen die Datenbank ab oder erstellen einen größeren Bericht.
- Beispiel - Wenn die Anwendung die Datenbank verarbeitet, um einen Bericht zu erstellen, besteht ein Volumentest darin, eine große Ergebnismenge zu verwenden und zu überprüfen, ob der Bericht korrekt gedruckt wurde.
Usability-Tests:
Evaluiert das System für den menschlichen Gebrauch oder prüft, ob es für den Gebrauch geeignet ist.
Wichtige Punkte sind:
- Ist die Ausgabe korrekt und aussagekräftig und entspricht sie den Erwartungen des Unternehmens?
- Werden die Fehler richtig diagnostiziert?
- Ist die GUI korrekt und entspricht sie dem Standard?
- Ist die Anwendung einfach zu bedienen?
Testen der Benutzeroberfläche:
Wertet die GUI aus.
Wichtige Punkte sind:
- Die grafische Benutzeroberfläche sollte Hilfe und Tooltips bereitstellen, um die Verwendung zu vereinfachen.
- Konsequent für sein Aussehen?
- Daten werden korrekt von einer Seite zur anderen übertragen?
- Die Benutzeroberfläche sollte den Benutzer nicht stören oder schwer verständlich werden.
Kompatibilitätstests:
Bewertet, dass die Anwendung mit anderer Hardware / Software mit minimaler und maximaler Konfiguration kompatibel ist.
Wichtige Punkte sind:
- Testen Sie jede Hardware mit minimaler und maximaler Konfiguration.
- Testen Sie mit verschiedenen Browsern.
Testfälle sind dieselben wie diejenigen, die während der Funktionsprüfung ausgeführt wurden. - Wenn die Anzahl der Hardware und Software zu hoch ist, können wir OATS-Techniken verwenden, um zu den Testfällen zu gelangen und eine maximale Abdeckung zu erzielen.
Wiederherstellungstests:
Wertet aus, dass die Anwendung im Falle eines Fehlers ordnungsgemäß beendet wird und die Daten bei Hardware- und Softwarefehlern ordnungsgemäß wiederhergestellt werden.
Die Tests sind nicht auf die folgenden Punkte beschränkt:
- Stromunterbrechung für den Client während der Ausführung von CURD-Aktivitäten.
- Ungültige Datenbankzeiger und Schlüssel.
- Der Datenbankprozess wird abgebrochen oder vorzeitig beendet.
- Datenbankzeiger, Felder und Schlüssel werden manuell und direkt in der Datenbank beschädigt.
- Trennen Sie die Kommunikation physisch, schalten Sie das Gerät aus, schalten Sie die Router und Netzwerkserver aus.
Instabilitätstests:
Wertet aus und bestätigt, ob die Software korrekt installiert und deinstalliert wird.
Initialisierung der statischen Variablen von c ++
Wichtige Punkte sind:
- Überprüft, ob die Systemkomponenten korrekt auf der angegebenen Hardware installiert sind.
- Überprüft, ob die Navigation auf dem neuen Computer die vorhandene Installation und ältere Versionen aktualisiert.
- Überprüft, dass bei unzureichendem Speicherplatz kein inakzeptables Verhalten vorliegt.
Dokumentationstests:
Wertet die Dokumente und andere Benutzerhandbücher aus.
Wichtige Punkte sind:
- Überprüft, ob die angegebenen Dokumente im Produkt verfügbar sind.
- Überprüft alle Benutzerhandbücher, richtet Anweisungen ein, liest mir Dateien, Versionshinweise und Online-Hilfe vor.
Failover-Test:
Failover-Tests werden durchgeführt, um zu überprüfen, ob das System im Falle eines Systemausfalls in der Lage ist, zusätzliche Ressourcen wie Server zu verarbeiten.
Um eine solche Situation zu verhindern, spielen Backup-Tests eine große Rolle. Das Erstellen eines Sicherungssystems ist das, worum es bei diesem Prozess geht. Wenn das Backup verfügbar ist, hilft es, das System zurückzubekommen.
Sicherheitstests:
Sicherheitstests wird durchgeführt, um sicherzustellen, dass die Anwendung keine Lücken aufweist, die zu Datenverlust oder Bedrohungen führen können. Dies ist einer der wichtigen Aspekte nicht funktionsfähiger Tests. Wenn sie nicht ordnungsgemäß durchgeführt werden, kann dies zu Sicherheitsbedrohungen führen.
Es umfasst das Testen der Authentifizierung, Autorisierung, Integrität und Verfügbarkeit.
Skalierbarkeitstests:
Skalierbarkeitstests werden durchgeführt, um zu überprüfen, ob die Anwendung in der Lage ist, erhöhten Datenverkehr, Anzahl der Transaktionen, Datenvolumen usw. zu verarbeiten. Das System sollte wie erwartet funktionieren, wenn das Datenvolumen oder die Änderung der Datengröße durchgeführt werden.
Anforderungsprüfung:
Konformitätstests werden durchgeführt, um zu überprüfen, ob die definierten Standards eingehalten werden oder nicht. Es werden Audits durchgeführt, um dies zu überprüfen.
Zum Beispiel , Audits werden durchgeführt, um den Prozess des Erstellens von Testfällen / Testplänen zu überprüfen und diese an dem freigegebenen Speicherort mit dem Standardnamen zu platzieren, der gerade ausgeführt wird oder nicht. In der Qualitätskontrolle wird beim Benennen der Testfälle der Standardname des Testfalls befolgt oder nicht. Die Dokumentation ist vollständig und genehmigt oder nicht.
Dies sind die wenigen Hinweise, die während der Prüfung behandelt werden.
Ausdauertests:
Ausdauertests wird durchgeführt, um das Verhalten des Systems zu überprüfen, wenn eine Last über einen längeren Zeitraum bis zu einem gewissen Grad erhöht wird.
Es wird auch als Einweich- und Kapazitätstest bezeichnet. Es hilft zu überprüfen, ob Speicherlecks im System vorhanden sind. Dauertests sind eine Teilmenge der Belastungstests.
Lokalisierungstests:
Lokalisierungstests wird durchgeführt, um die Anwendung in verschiedenen Sprachen zu überprüfen, d. h. in verschiedenen Ländereinstellungen. Die Anwendung sollte für eine bestimmte Kultur oder ein bestimmtes Gebietsschema überprüft werden. Das Hauptaugenmerk liegt auf dem Testen des Inhalts und der Benutzeroberfläche der Anwendung.
Internationalisierungstests:
Internationalisierungstests wird auch als i18n-Test bezeichnet.
I18n steht für I - achtzehn Buchstaben - N. Es wird überprüft, ob die Anwendung in allen Spracheinstellungen wie erwartet funktioniert. Es wird überprüft, ob eine Funktionalität oder Anwendung selbst nicht fehlerhaft ist, d. H. Die Anwendung sollte in der Lage sein, alle internationalen Einstellungen zu verarbeiten.
Außerdem wird überprüft, ob die Anwendung ohne Probleme installiert wird.
Zuverlässigkeitstests:
Zuverlässigkeitstests werden durchgeführt, um zu überprüfen, ob die Anwendung zuverlässig ist und für einen bestimmten Zeitraum in der definierten Umgebung getestet wird. Eine Anwendung sollte jedes Mal die gleiche Ausgabe wie erwartet liefern, nur dann kann sie als zuverlässig angesehen werden.
Portabilitätstests:
Portabilitätstests werden durchgeführt, um zu überprüfen, ob eine Software / Anwendung, die auf einem anderen System oder auf einer anderen Plattform installiert ist, erwartungsgemäß ausgeführt werden kann, d. H. Keine Funktionalität sollte aufgrund einer Änderung der Umgebung beeinträchtigt werden.
Während des Testens muss die Änderung auch mit der Hardwarekonfiguration wie Festplattenspeicher, Prozessor und auch mit verschiedenen Betriebssystemen getestet werden, um sicherzustellen, dass das korrekte Verhalten und die erwartete Funktionalität der Anwendung intakt sind.
Basistests:
Basistests werden auch als bezeichnet Benchmark-Tests da es eine Basis für jede neue zu testende Anwendung schafft.
Zum Beispiel: In der ersten Iteration betrug die Antwortzeit für eine Anwendung 3 Sekunden. Dies wurde nun als Benchmark für die nächste Iteration festgelegt und in der nächsten Iteration ändert sich die Antwortzeit auf 2 Sekunden. Es handelt sich im Grunde genommen um ein Validierungsdokument, das als Grundlage für zukünftige Referenzen dient.
Effizienzprüfung:
Effizienztests werden durchgeführt, um zu überprüfen, ob die Anwendung effizient arbeitet und wie viele Ressourcen, Tools, Komplexität, Kundenanforderungen, erforderliche Umgebung, Zeit, welche Art von Projekt usw. erforderlich sind.
Dies sind einige der Zeiger, mit denen definiert werden kann, wie effizient eine Anwendung funktionieren würde, wenn alle berücksichtigten Parameter wie erwartet funktionieren.
Disaster Recovery-Tests:
Diese Tests werden durchgeführt, um die Erfolgsrate der Wiederherstellung einer Anwendung oder eines Systems zu überprüfen, wenn ein kritischer Fehler auftritt und ob das System in der Lage ist, die Daten und die Anwendung wiederherzustellen, oder ob das System problemlos damit umgehen kann, wie es früher funktioniert hat, dh von die operative Front.
Wartbarkeitstests:
Sobald die Anwendung / das Produkt live geschaltet wird, besteht die Möglichkeit, dass ein Problem in der Live-Umgebung auftritt, oder der Kunde möchte möglicherweise eine Verbesserung für die Anwendung, die bereits live ist.
In diesem Fall steht ein Wartungstestteam zur Verfügung, um die oben genannten Szenarien zu testen. Sobald die Anwendung live geschaltet ist, muss sie noch gewartet werden, für die das Wartungstestteam arbeitet.
Nicht funktionierende Testwerkzeuge
Auf dem Markt sind verschiedene Tools für Leistungstests (Last- und Belastungstests) verfügbar.
Einige von ihnen sind unten aufgeführt:
- JMeter
- Lader
- Loadrunner
- Laststurm
- Neoload
- Prognose
- Laden abgeschlossen
- Webserver Stress Tool
- WebLoad Professional
- Loadtracer
- vPerformer
Werden nicht funktionierende Tests immer ohne Dokumentation und Testfälle durchgeführt? Warum?
„Wir lernen immer, wie man Funktionstestfälle schreibt. Warum ist das so? Werden „nicht funktionale Tests“ ohne Dokumentation durchgeführt (dh auf Ad-hoc-Basis) oder handelt es sich um einen separaten Prozess, der viel schwieriger zu verstehen ist? Wie werden Testfälle für verschiedene Arten von Tests geschrieben, die in einer Anwendung durchgeführt werden? “
Dies ist eine der originellsten, markantesten und unkonventionellsten Fragen, die mir in letzter Zeit gestellt wurden. Lassen Sie uns die Antwort finden.
Wie kommt es, dass wir nie sehen und üben können, nicht funktionierende Testfälle zu schreiben?
Beginnen wir mit dem, was wir wissen und wie immer mit einem praktischen Szenario.
Beispiel:: Die folgenden Schritte müssen in einer Online-Banking-Anwendung ausgeführt werden, um eine Überweisung durchzuführen. Verwenden wir dies als Referenztest.
- Melden Sie sich auf der Website an.
- Wählen Sie das Bankkonto.
- Wählen Sie den Zahlungsempfänger aus (dieser Zahlungsempfänger kann derselben oder einer anderen Bank angehören - dies hängt von Ihrer Datenauswahl ab, um diesen Schritt auszuführen. Wählen Sie auf jeden Fall einen aus. Außerdem gehen wir davon aus, dass der Zahlungsempfänger bereits hinzugefügt wurde.) .
- Geben Sie den zu überweisenden Betrag ein (positiver Wert, innerhalb des Grenzwerts, korrektes Format usw.).
- Klicken Sie auf Übertragen und prüfen Sie, ob eine Bestätigung eingegangen ist, der Kontostand aktualisiert wurde und so weiter.
Dies ist der Funktionstestfall, richtig?
Nehmen wir an, wir führen dieselbe Anwendung auf derselben Übertragungsseite durch Leistungs-, Sicherheits- und Usability-Tests . Dies sind nicht funktionierende Typen, richtig?
Wie würden wir die Testfälle schreiben?
# 1) Usability-Tests Testfälle
Usability-Tests sind ein Genre von Softwaretests, das sich mit der Benutzererfahrung befasst. Dies sind einige der Fragen, die wir zu beantworten versuchen.
- Wie einfach ist die Anwendung zu bedienen?
- Wie zufriedenstellend ist die Erfahrung mit dem System?
- Wenn nicht sofort so vertraut, wie einfach ist es zu lernen?
Weitere Infos dazu gibt es hier: Handbuch zum Testen der Benutzerfreundlichkeit
Wie würde ein Benutzer die Antworten auf die oben genannten Fragen im Rahmen von Usability-Tests ermitteln?
Der Benutzer würde genau die gleichen Schritte ausführen wie im Funktionstestfall. Habe ich recht?
# 2) Leistungstests Testfälle
Es gibt verschiedene Varianten von Leistungstests, aber im Kern werden Statistiken über das System, seine Ressourcennutzung, Reaktionszeit, Netzwerkverbrauch usw. an verschiedenen Lastpunkten abgerufen.
Schauen Sie sich unsere Tutorials zu Leistungstests um mehr darüber zu erfahren.
Wenn ich nun die Leistung der Übertragungstransaktion testen würde, würden 10, 20, 30, 100… 1000… usw. Benutzer den Übertragungsvorgang gleichzeitig oder schrittweise ausführen, je nachdem, worauf ich abzielen und Daten sammeln möchte.
Welche Schritte würde jeder Benutzer ausführen, um die Übertragung während des Leistungstests zu verwenden?
Die gleichen genauen Schritte wie beim Funktionstest, richtig?
# 3) Testfälle für Sicherheitstests
Sicherheitstests sind ein Zweig der Qualitätssicherung, der dazu beiträgt, dass die Softwaresysteme hackfest sind. Es identifiziert Schwachstellen (potenzielle Problembereiche im Softwaresystem), nutzt sie durch Penetrations- oder White-Hat-Testtechniken aus und bearbeitet Lücken, wenn sie gefunden werden.
Wann möchte ich überprüfen, ob die Übertragungen hackfest und korrekt an die vorgesehenen Empfänger gerichtet sind und ob im gesamten Prozess keine schwarzen Flecken vorhanden sind? Ich würde die Übertragung durchführen, während der Überwachungsprozess für Sicherheitslecks parallel abläuft.
Daher führe ich praktisch genau die gleichen Schritte aus, die ich normalerweise bei einem Funktionstestfall ausführen würde.
Ich denke, wir haben genug, um festzustellen, dass die Schritte in allen Situationen gleich sind. Die Methode und die Absicht hinter dem Prozess sind anders.
Werfen wir einen vergleichenden Blick:
Art der Prüfung | Wer? | Warum? Absicht |
---|---|---|
Funktionsprüfung | QS-Tester | Richtigkeit |
Effizienz | ||
Geschäftsanwendbarkeit | ||
Benutzerfreundlichkeit | QS-Tester oder Echtzeitbenutzer | Benutzerfreundlichkeit |
Einfaches Lernen | ||
Effizienz | ||
Netzwerknutzung usw. | ||
Sicherheit | Scan-Tools und andere Überwachungssysteme durch spezialisierte Sicherheitsexperten | Hack sicher |
Identitätsschutz des Zahlungsempfängers und des Zahlers usw. |
Interessant ist das Unabhängig davon, welche Art von Test wir durchführen möchten, sind alle Schritte gleich .
Der wahre Unterschied ist:
- Wer führt diese Schritte aus?
- Was ist die Absicht oder mit anderen Worten, was versuche ich mit diesem Test zu erreichen?
- Die verwendeten Werkzeuge und Techniken.
Zurück zu unserer Frage: Warum lernen wir nie, nicht funktionierende Testfälle mit all den detaillierten Schritten zu schreiben, die dazu gehören?
Es ist, weil ,Im Kern sind die Testschritte für eine Variation der Testtypen für eine bestimmte Funktion alle gleich, funktional oder nicht. Es ist die Absicht, die einen Unterschied macht und vielleicht die Methode.
Fazit
Vor der Durchführung nicht funktionsfähiger Tests ist es wichtig, die Teststrategie korrekt zu planen, um eine ordnungsgemäße Prüfung sicherzustellen. Es gibt verschiedene Tools auf dem Markt, um diese Art von Tests durchzuführen, wie z. B. Load Runner, RPT usw.
Diese Tests spielen eine wichtige Rolle für den Erfolg einer Anwendung und den Aufbau einer guten Kundenbeziehung und sollten daher nicht vernachlässigt werden. Dies ist einer der wichtigen Teile des Softwaretests, und das Testen kann ohne dies nicht als vollständig angesehen werden.
Wir können nicht funktionierende Testdetails in den Testplan aufnehmen oder eine separate Strategie dafür erstellen. In beiden Fällen besteht das Ziel darin, nicht funktionierende Aspekte der Software angemessen abzudecken.
Wir hoffen, dass dieser Prozess, tief in dieses Thema einzutauchen, Ihnen genauso viel Spaß gemacht hat, wie er Ihnen allen präsentiert wurde. Wir würden uns über Ihr Feedback und Ihre Gedanken zu diesem Thema freuen.
Wie gehen Sie mit nicht funktionierenden Tests in Ihren Teams um? Und wie immer, lassen Sie uns wissen, ob Sie zustimmen oder nicht zustimmen oder etwas hinzuzufügen haben, was wir hier vorhaben.
Literatur-Empfehlungen
- Funktionstests gegen nichtfunktionale Tests
- Alpha-Tests und Beta-Tests (eine vollständige Anleitung)
- Testhandbuch für die Sicherheit von Webanwendungen
- Vollständiger Leitfaden für Funktionstests mit seinen Typen und Beispielen
- Vollständige Anleitung zum Erstellen von Verifikationstests (BVT-Tests)
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- Leitfaden für Anfänger zum Testen der Penetration von Webanwendungen
- Load Testing Complete Guide für Anfänger