Ein kurzer Leitfaden zum Softwaretesten - Standards und Prozesse
Veröffentlicht: 2021-05-18„Alle Codes sind schuldig, bis sie unschuldig getestet wurden“ – ein unbekannter Technikfreak.
Sie können keine gute Software haben, ohne sie strengen Tests unterzogen zu haben. In diesem Artikel erfahren Sie mehr über Softwareteststandards und -prozesse, die Sie befolgen sollten, um bessere Ergebnisse zu erzielen.
Was ist Softwaretest?
Einfach ausgedrückt: Softwaretests machen Software besser. Es ist ein Verfahren, das die Richtigkeit, Vollständigkeit und Qualität der entwickelten Software identifiziert. Das Testen ist wichtig, da es Fehler vor der Auslieferung an den Kunden aufdeckt, was die Qualität der Software garantiert. Es macht die Software zuverlässiger zu verwenden.

Softwaretestphasen

Lassen Sie uns die oben aufgeführten Phasen des Softwaretests durchgehen:
Anforderungsanalyse:
Die Anforderungsanalyse definiert die Erwartungen der Endbenutzer an eine zu erstellende/zu modifizierende Softwareanwendung. Daher bedeutet Anforderungsanalyse, Software- oder Systemanforderungen zu analysieren, zu melden, zu dokumentieren, zu validieren und zu verwalten.
Der Testingenieur muss die folgenden Aufgaben ausführen, um die Anforderungsanalyse abzuschließen
- Lesen Sie jede Anforderung, um sie auf Vollständigkeit, Klarheit und Mehrdeutigkeit zu überprüfen, falls vorhanden.
- Überprüfen Sie, ob alle möglichen Szenarien in einer Anforderungsanalysephase berücksichtigt wurden, und versuchen Sie, alle aufgedeckten Fälle oder Lücken zu identifizieren.
- Diskussion über Fragen oder Zweifel, die sich aus der Anforderungsanalyse ergeben, über tägliche Anrufe für das Team, um auf der gleichen Seite zu sein.
- Die Anforderungs-Traceability-Matrix muss verwendet werden, um die vollständige Anforderungsabdeckung der zu testenden Software sicherzustellen.
Unten ist die Mustervorlage von RTM (Requirements Traceability Matrix)

Bildnachweis: Opencodez
Testplanung:
Ein Testplan ist ein Dokument, das die Testziele, den Zeitplan, die Schätzung, die Ergebnisse und die Ressourcen beschreibt, die für die Durchführung von Softwaretests an einer Softwareanwendung erforderlich sind. Ein Testplan hilft dabei, den Aufwand zu verstehen und zu bestimmen, der erforderlich ist, um die Qualität einer getesteten Anwendung zu validieren. Unten ist ein Beispiel für einen agilen Testplan:

Bildnachweis: zenq
Testdesign:
Testdesign ist eine Phase, in der die für das Testen erforderlichen Anwendungsfälle entworfen werden. Das Testdesign wird basierend auf dem Testplan durchgeführt. Es wird sichergestellt, dass Testfälle alle Anforderungen der Softwareanwendung abdecken. Auch die Abbildung von Testfällen mit der Traceability-Matrix wird als notwendig erachtet, um alle Anforderungslücken zu schließen.
Testszenarien/Testfälle, die basierend auf den folgenden Testdesign-Techniken entwickelt wurden, um eine vollständige Testabdeckung auf Happy-Path- und Negativ-Szenario-Tests sicherzustellen.
- Grenzwertanalyse (BVA)
- Äquivalenzpartitionierung (EP)
- Anwendungsfalltests
- Aufprallbasiertes Testen
Unten ist die Mustervorlage für das Testdesign

Bildnachweis: https://www.softwaretestingclass.com/
Einrichtung der Testumgebung:
Die Testumgebung ist eine Plattform, die für die Implementierung und Ausführung der Testfälle in der Softwareanwendung entwickelt wurde. Die Testumgebung wird durch die Integration der erforderlichen Hard- und Software sowie der erforderlichen Netzwerkkonfiguration und notwendigen Einstellungen geschaffen. Bevor mit irgendwelchen Tests begonnen wird, ist es immer wichtig, einen Rauchtest auf der Testumgebung durchzuführen, um die Machbarkeit der Testumgebung zu überprüfen.
Test Ausführung:
Testausführung ist der Prozess der Ausführung von Testfällen, die entworfen, dokumentiert und die erwarteten und tatsächlichen Ergebnisse verglichen werden. Folgende Faktoren werden für eine Testdurchführung unter Berücksichtigung der Risiken berücksichtigt. Wählen Sie eine Teilmenge der Testsuite aus, die für diesen Zyklus ausgeführt werden soll und weisen Sie diese dem jeweiligen Tester/Qualitätsanalysten zu.

- Die Testdurchführung erfolgt auf Basis der gemäß Testplan entworfenen Testfälle / Testszenarien
- Beobachtungen - Dokumentiert auf dem jeweiligen JIRA-Ticket, das während der Testdurchführung aufgetreten ist
- Die Testnachweis-Dokumentation zum jeweiligen JIRA-Ticket besteht aus:
◦ Teststatus: PASS / FAIL - Zeigt den Teststatus des JIRA-Tickets an
◦ Test-URL: Beinhaltet die Testdaten, die zum Testen der jeweiligen Anforderung verwendet werden
◦ Testszenarien und ihre Screenshots
- Sanity & Regression - Sanity- und Regressionstests werden in den höheren Umgebungen (STG) regelmäßig an jedem Sprintende als Teil der Pre-UAT-Testmaßnahmen durchgeführt
Testabschluss:
Die Checkliste zum Abschluss des Sprinttests stellt sicher, dass die folgenden Aktivitäten am Ende jedes Sprints ausgeführt werden, um einen reibungslosen Übergang zwischen mehreren Sprints zu gewährleisten.
- Funktionstests gemäß den Zeitplänen mit vollständiger Abdeckung abgeschlossen
- Alle Beobachtungen protokolliert und vom Team bearbeitet
- Gültige Beobachtungen als Mängel protokolliert und den jeweiligen Ticketbesitzern zugeordnet
- Für jedes Ticket aktualisierte Testnachweisdokumentation mit den entsprechenden manuellen Test- und Gerätetestergebnissen
- Regressionstest, der in der Testumgebung durchgeführt wird, bevor der Code mit den höheren Umgebungen zusammengeführt wird, d. in diesem Fall von Dev zu STG
Gerätetests/Cross-Browser-Tests:
Geräte-/Crossbrowser-Tests ist der Prozess, bei dem ein Gerät/Browser auf seine Qualität getestet wird, um zu sehen, wie gut es die Anforderungen erfüllt, für die es entwickelt wurde. Geräte-/Browserübergreifende Tests werden mit der folgenden Liste von Geräten/Browsern abgedeckt, wie vom Kunden bestätigt. Browser-Stack, der als Plattform für Gerätetests verwendet wird.

Verschiedene Arten von Softwaretests
Unit-Tests:
Beim Unit Testing werden kleine Codeeinheiten überprüft, um Informationen frühzeitig bereitzustellen, um Ihre Teststrategien zu beschleunigen und unerwünschte Testzyklen zu reduzieren. Unit-Tests werden normalerweise von einem Entwickler durchgeführt, bevor der Code an das Softwaretestteam übergeben wird.
Rauchtest:
Smoke Testing ist ein Softwaretestverfahren, das bestimmt, ob die bereitgestellte Software stabil ist oder nicht. Rauchtests sind eine Bestätigung für das Testteam, mit weiteren Softwaretests fortzufahren. Es besteht aus einer Mindestmenge von Tests, die auf jedem Build ausgeführt werden müssen, um Softwarefunktionen zu testen.
Integrationstests:
Integrationstests sind definiert als eine Art von Tests, die in einer integrierten Hard- und Softwareumgebung durchgeführt werden, um das Verhalten des Systems zu überprüfen. Software-/Hardwarekomponenten werden schrittweise integriert und getestet, bis das fertige System getestet wurde.
Systemtest:
Systemtest eines vollständig integrierten Softwareprodukts. Es ist die letzte Prüfung, um sicherzustellen, dass das gelieferte Produkt die im Anforderungsdokument genannten Anforderungsspezifikationen erfüllt. Sowohl funktionale als auch nichtfunktionale Anforderungen sollten im Umfang berücksichtigt werden.
Regressionstests:
Die Regression überprüft, ob kürzlich erfolgte Codeänderungen die bereits vorhandene Funktionalität nicht verändern oder zerstören. Regressionstests umfassen sowohl eine Teilmenge als auch eine vollständige Regression, beide können mit manuellen oder automatisierten Testszenarien abgedeckt werden.
Benutzerakzeptanztest (UAT):
Der Benutzerakzeptanztest ist eine der letzten Phasen des Softwaretestlebenszyklus und wird vom Kunden durchgeführt, nachdem die Software gründlich getestet wurde. UAT wird von den Endbenutzern des Produkts für Genehmigungen und Bereitstellungen von Produktionsversionen durchgeführt.
