Keine Software kann jemals vollständig perfekt sein. Aber ist das eine Lizenz, Müll zu schaffen? Die fehlende Zutat ist unsere Zurückhaltung, die Qualität zu quantifizieren. Um die Qualität zu erhöhen, ist es sehr wichtig, die effektive Leistung der Softwareanwendung sicherzustellen. Softwaretests sind erforderlich, um sicherzustellen, dass die Anwendung fehlerfrei ausgeführt wird. In diesem Tutorial zum Testen von Software erkläre ich Ihnen alles, was Sie über Testaspekte wissen müssen. In Fortsetzung des vorherigen Blogs über Softwaretests werde ich hier tiefer eintauchen und die unten genannten Themen behandeln.
- Einführung in Softwaretests
- Grundlagen des Softwaretests
- Lebenszyklus der Softwareentwicklung
- Verifikations- und Validierungsmodell
- Softwaretestmethoden
- Softwareteststufen
- Dokumentation zum Softwaretest Artefakte
- Fehlerlebenszyklus
- Herausforderungen beim manuellen Testen
- Automatisierungstests im Vergleich zu manuellen Tests
Sie können auch das Tutorial zur Aufzeichnung von Softwaretests durchgehen, in dem unsere Experten für Softwaretests die Konzepte erklärt haben eingehend.
Softwaretest-Tutorial für Anfänger / Handbuch & Automatisierungstests
Dieses Video spricht über verschiedene Arten von Tests, dh manuelle Tests und automatisierte Testansätze.
Einführung in Softwaretests
Die heutige Welt der Technologie wird vollständig von Maschinen dominiert, und ihr Verhalten wird von der Software gesteuert, die sie antreibt. Softwaretests bieten eine kostengünstige Lösung für alle unsere Sorgen. Was ist Software Testing? Softwaretests sind ein Prozess zur Bewertung der Funktionalität einer Softwareanwendung, um Softwarefehler zu finden. Es prüft, ob die entwickelte Software die festgelegten Anforderungen erfüllt und identifiziert etwaige Mängel in der Software, um ein Qualitätsprodukt zu erzielen. Grundsätzlich wird ein System ausgeführt, um Lücken, Fehler oder fehlende Anforderungen zu identifizieren, die den tatsächlichen Anforderungen widersprechen.
Es wird auch als der Prozess der Überprüfung und Validierung eines Softwareprodukts angegeben. Es prüft, ob das Softwareprodukt:
- Erfüllt die geschäftlichen und technischen Anforderungen, die sein Design und seine Entwicklung geleitet haben
- Funktioniert gemäß den Anforderungen
- Kann mit den gleichen Eigenschaften implementiert werden
Gehen wir nun im Tutorial-Artikel zu Softwaretests weiter und erhalten Sie einige Einblicke in die Grundlagen des Softwaretests.
Grundlagen des Softwaretests
Zunächst werde ich Ihnen sagen, was der Lebenszyklus der Softwareentwicklung ist?
Software Development Life Cycle
(SDLC) abgekürzt als Software Development Life Cycle ist ein Prozess, der von der Softwareindustrie verwendet wird, um qualitativ hochwertige Software zu entwerfen, zu entwickeln und zu testen. Ziel ist es, qualitativ hochwertige Software zu produzieren, die die Erwartungen der Kunden erfüllt oder übertrifft und innerhalb von Zeit- und Kostenvoranschlägen fertiggestellt wird. Das folgende Diagramm zeigt verschiedene Phasen, die an SDLC beteiligt sind.
Abb: Software Development Life Cycle – Software Testing Tutorial
Anforderungsphase
Die Erfassung und Analyse von Anforderungen ist die wichtigste Phase im Lebenszyklus der Softwareentwicklung. Business Analyst sammelt die Anforderung vom Kunden / Kunden gemäß den Geschäftsanforderungen des Kunden und dokumentiert die Anforderungen in der Spezifikation der Geschäftsanforderungen (Dokumentname variiert abhängig von der Organisation).
Analysephase
Sind die Anforderungen gesammelt und analysiert, gilt es im nächsten Schritt die Produktanforderungen zu definieren, zu dokumentieren und vom Kunden genehmigen zu lassen. Dies wird durch das SRS-Dokument (Software Requirement Specification) aufgezeichnet. Es besteht aus allen Produktanforderungen, die während des Projektlebenszyklus entworfen und entwickelt werden müssen
Designphase
Diese Phase besteht aus zwei Schritten:
- HLD – High-Level-Design – Es gibt die Architektur des zu entwickelnden Softwareprodukts an und wird von Architekten und leitenden Entwicklern ausgeführt
- LLD – Low–Level-Design – Es wird von leitenden Entwicklern ausgeführt. Hier erhalten Sie Einblicke, wie jede einzelne Funktion im Produkt funktionieren sollte und wie jede Komponente funktionieren sollte.
Das Ergebnis dieser Phase ist das High-Level-Dokument und das Low-Level-Dokument, die als Eingabe für die nächste Phase dienen.
Entwicklungsphase
Entwickler aller Niveaus (Senioren, Junioren, Erstsemester) sind an dieser Phase beteiligt. Dies ist die Phase, in der Sie mit dem Erstellen des Codes für die Software beginnen.
Testphase
Wenn die Software fertig ist, wird sie an die Testabteilung gesendet, wo sie gründlich auf verschiedene Mängel getestet wird. Das Testen einer Software erfolgt entweder manuell oder mithilfe automatisierter Testwerkzeuge und stellt sicher, dass jede einzelne Komponente der Software einwandfrei funktioniert. Sobald die Software fehlerfrei ist, geht es zur nächsten Stufe, der Implementierung.
Bereitstellung & Wartungsphase
Sobald das Produkt fehlerfrei ist, wird es dem Kunden zur Verwendung geliefert / bereitgestellt. Die Bereitstellung erfolgt durch die Bereitstellungs- / Implementierungsingenieure. Wenn die Kunden das entwickelte System verwenden, treten die tatsächlichen Probleme auf und müssen von Zeit zu Zeit gelöst werden. Das Erkennen und Lösen dieser vom Kunden gefundenen Probleme erfolgt in der Wartungsphase.
Hier ging es um den Lebenszyklus der Softwareentwicklung. Wenn Sie mehr über die verschiedenen Phasen des Softwaretestprozesses erfahren möchten, können Sie diesen Blog über den Lebenszyklus von Softwaretests lesen. Nachdem wir dies verstanden haben, gehen wir mit diesem Softwaretest-Tutorial weiter und sehen, was das V & V-Modell ist.
Das V-Modell ist heute einer der am weitesten verbreiteten Softwareentwicklungsprozesse. Die Einführung des V-Modells hat die Implementierung von Tests bereits in der Anforderungsphase bewiesen. Es wird auch als Verifikations- und Validierungsmodell bezeichnet
Was ist Verifikation und Validierung beim Softwaretest?
Verifikation: Verifikation ist eine statische Analysetechnik. Hier wird getestet, ohne den Code auszuführen. Beispiele hierfür sind – Bewertungen, Inspektion und Spaziergang durch.
Validierung: Validierung ist ein Prozess der dynamischen Analyse, bei dem wir Tests durchführen, indem wir den Code ausführen. Beispiele hierfür sind funktionale und nicht-funktionale Testtechniken.
Im V-Modell werden die Entwicklungs- und QA-Aktivitäten gleichzeitig ausgeführt. Hier beginnt das Testen bereits in der Anforderungsphase. Die Verifizierungs- und Validierungsaktivitäten erfolgen gleichzeitig. Schauen wir uns die folgende Abbildung an, um zu verstehen, V Modell
In einem typischen Entwicklungsprozess werden auf der linken Seite die Entwicklungsaktivitäten und auf der rechten Seite die Testaktivitäten angezeigt. Es sollte nicht falsch sein, wenn ich sage, dass in der Entwicklungsphase sowohl die Verifikation als auch die Validierung zusammen mit den eigentlichen Entwicklungsaktivitäten durchgeführt werden.
LHS
Wie bereits erwähnt, sind Aktivitäten auf der linken Seite Entwicklungsaktivitäten. Normalerweise fühlen wir, welche Tests können wir in der Entwicklungsphase durchführen? Dies ist jedoch die Essenz dieses Modells, das zeigt, dass Tests auch in allen Phasen der Entwicklungsaktivitäten durchgeführt werden können.
RHS
Die Testaktivitäten oder die Validierungsphase werden auf der rechten Seite des Modells durchgeführt.
Da Sie einige Einblicke in dieses Thema erhalten haben, gehen wir mit diesem Tutorial zum Testen von Software weiter und sehen uns die verschiedenen Methoden an, mit denen die Software getestet werden kann.
Software-Testmethoden
Es gibt drei Methoden zum Testen von Software, und sie sind wie folgt:
- Black-Box-Test
- White-Box-Test
- Grey-Box-Test
Black-Box-Test: Dies ist eine Methode zum Testen von Software, bei der die interne Struktur / das Design / die Implementierung des zu testenden Elements dem Tester NICHT bekannt ist.
White Box Testing: Dies ist eine Methode zum Testen von Software, bei der dem Tester die interne Struktur / das Design / die Implementierung des zu testenden Elements bekannt ist.
Graukastenprüfung: Es handelt sich um eine Testtechnik, die mit begrenzten Informationen über die interne Funktionalität des Systems durchgeführt wird.
Ich hoffe, Sie haben wichtige Hinweise zu verschiedenen Methoden des Softwaretests verstanden. Lassen Sie uns nun in diesem Tutorial-Artikel zum Testen von Software weitergehen und die Teststufen für Software verstehen.
Software Testing Levels
Ein Level in Software Testing ist ein Prozess, bei dem jede Einheit oder Komponente einer Software / eines Systems getestet wird. Es gibt verschiedene Teststufen, die helfen, Verhalten und Leistung für Softwaretests zu überprüfen. Diese Teststufen sollen fehlende Bereiche erkennen und die Entwicklung von Lebenszykluszuständen abgleichen. Im Softwareentwicklungslebenszyklusmodell werden Phasen wie Anforderungserfassung, Analyse, Design, Codierung oder Ausführung, Testen und Bereitstellung charakterisiert.
Alle diese Phasen durchlaufen den Prozess der Softwareteststufen. Es gibt hauptsächlich vier Teststufen und sie sind:
- Unit-Tests
- Integrationstests
- Systemtests
- Akzeptanztests
Grundsätzlich beginnt es mit der Unit-Testphase und endet mit Akzeptanztests.
Im nächsten Abschnitt dieses Tutorials zum Testen von Software werde ich tiefer in das nächste Thema eintauchen und erklären, was die verschiedenen Dokumentationsartefakte beim Testen von Software sind.
Software Testing Documentation Artifacts
Die Dokumentation der Testfälle erleichtert Ihnen die Schätzung des Testaufwands, den Sie benötigen, zusammen mit der Testabdeckung und der Tracking- und Tracing-Anforderung. Einige häufig angewandte Dokumentationsartefakte im Zusammenhang mit Softwaretests sind:
- Testplan
- Testszenario
- Testfall
- Rückverfolgbarkeitsmatrix
Lassen Sie uns jeden von ihnen kurz besprechen.
- Testplan: Sie erhalten die Entwurfsstrategie, die zum Testen der Anwendung implementiert wird.
- Testszenario: Das Testszenario kann als einzeilige Anweisung betrachtet werden, die den Bereich benachrichtigt, in dem Ihre Anwendung getestet wird. Dieses Artefakt wird benötigt, um sicherzustellen, dass das gesamte Verfahren von Anfang bis Ende getestet wird.
- Testfall: Testfall ist nichts anderes als eine Reihe von Bedingungen oder Variablen, unter denen ein Tester bestimmt, ob ein zu testendes System die Anforderungen erfüllt oder korrekt funktioniert. Die unten genannten Testfälle werden während des Tests überprüft.
- Funktionale Testfälle
- Testfälle mit negativem Fehler
- Logische Testfälle
- Physikalische Testfälle
- UI-Testfälle
- Traceability Matrix: Sie wird auch als Requirement Traceability Matrix (RTM) bezeichnet. Es enthält eine Tabelle, die die Anforderungen skizziert, wenn das SDLC-Modell Ihres Produkts erstellt wird. Diese Dokumentationsartefakte können für die Vorwärtsverfolgung angewendet werden, die vom Entwerfen zum Codieren erfolgen soll, oder sie können auch für die Rückwärtsverfolgung implementiert werden, die die Umkehrung der Vorwärtsverfolgung darstellt.
Dies bringt uns zum Ende der Artefakte der Softwaretestdokumentation. Lassen Sie uns nun in diesem Tutorial-Artikel zum Softwaretest weitergehen und erfahren, was Fehlermanagement ist?
Was ist der Fehlermanagementprozess?
Fehlermanagement ist ein Prozess, bei dem Fehler erkannt und behoben werden. Da Fehler ein Teil der Softwareindustrie sind, treten sie ständig im Prozess der Softwareentwicklung auf. Die Teammitglieder müssen jeden Tag große Teile des Codes schreiben, und sie haben in der Regel keine Zeit, darüber nachzudenken, wie Fehler zu vermeiden. Daher erfordert jedes Softwareentwicklungsprojekt einen Prozess, der hilft, die Fehler zu erkennen und zu beheben.
Der Fehlermanagementprozess wird in der Phase der Produktprüfung durchgeführt. Ohne dies zu erkennen, wäre es schwierig, die Natur des Fehlermanagements zu verstehen.. In der Regel testen die Entwickler ihr Produkt selbst. Es gibt auch eine Art von Tests, die auf der Beteiligung der Benutzer basieren. Die Endbenutzer erhalten häufig die Möglichkeit, über die von ihnen identifizierten Fehler zu berichten. Dies ist jedoch nicht die beste Art zu testen, da die Benutzer möglicherweise nicht alle Fehler finden können.
Der Fehlermanagementprozess umfasst in der Regel vier Schritte.
- Der erste Schritt ist die Stufe der Fehlererkennung
- Der zweite Schritt ist der Formulierung von Fehlerberichten gewidmet
- Der dritte Schritt ist die Behebung des Fehlers.
- Im letzten Schritt wird die Fehlerliste erstellt
Lassen Sie uns nun im Tutorial-Artikel zum Testen von Software weitergehen und den Fehlererkennungsprozess mithilfe des Fehlerlebenszyklus verstehen.
Fehlerlebenszyklus
Ein Fehlerlebenszyklus ist ein Prozess, bei dem ein Fehler während seiner gesamten Lebensdauer verschiedene Phasen durchläuft. Es beginnt, wenn ein Defekt gefunden wird, und endet, wenn ein Defekt geschlossen wird, nachdem sichergestellt wurde, dass er nicht reproduziert wird. Ein Fehlerlebenszyklus hängt mit dem Fehler zusammen, der während des Tests gefunden wurde.
Der Fehler- oder Defektlebenszyklus umfasst die Schritte, die in der folgenden Abbildung dargestellt sind:
- Neu: Wird in diesem Schritt ein Defekt zum ersten Mal protokolliert und gebucht, wird sein Zustand als neu angegeben.
- Zugewiesen: Nachdem der Tester den Fehler gepostet hat, bestätigt der Lead des Testers, dass der Fehler echt ist, und weist den Fehler einem entsprechenden Entwickler und dem Entwicklerteam zu. Es ist ein Zustand, der als zugewiesen angegeben ist.
- Öffnen: In Diesem Zustand hat der Entwickler mit der Analyse und Bearbeitung der Fehlerbehebung begonnen.
- Behoben: Da der Entwickler notwendige Codeänderungen vornimmt und die Änderungen überprüft, kann er den Fehlerstatus als ‚Behoben‘ festlegen und der Fehler wird an das Testteam übergeben.
- Test: In diesem Stadium führt der Tester den Test des geänderten Codes durch, den der Entwickler ihm zurückgegeben hat, um zu überprüfen, ob der Fehler behoben wurde oder nicht.
- Verifiziert: Hier testet der Tester den Fehler erneut, nachdem er vom Entwickler behoben wurde. Wenn es keinen Fehler in der Software gibt, genehmigt er, dass der Fehler behoben ist, und ändert den Status in „verifiziert“.
- Reopen: Falls der Fehler auch nach der Behebung des Fehlers durch den Entwickler noch vorhanden ist, ändert der Tester den Status in „reopened“. In diesem Zustand durchläuft der Fehler erneut den Lebenszyklus.
- Geschlossen: Sobald der Fehler behoben ist, wird er vom Tester getestet. Falls der Tester der Meinung ist, dass der Fehler in der Software nicht mehr vorhanden ist, ändert er den Status des Fehlers in „geschlossen“. Dies bedeutet, dass der Fehler behoben, getestet und genehmigt wurde.
- Duplizieren: Wenn der Fehler im Fehlerlebenszyklus zweimal wiederholt wird oder die beiden Fehler dasselbe Konzept des Fehlers erwähnen, wird ein Fehlerstatus in „duplizieren“ geändert.
- Abgelehnt: Wenn der Entwickler der Meinung ist, dass der Fehler nicht echt ist, lehnt er den Fehler ab. Dann wird der Status des Fehlers in „abgelehnt“ geändert.
- Latent: Wenn der Fehler in den latenten Zustand geändert wird, wird erwartet, dass der Fehler in den nächsten Versionen behoben wird.
Hier ging es um den Fehlerlebenszyklus und den Fehlermanagementprozess. Lassen Sie uns nun sehen, was die Herausforderungen beim manuellen Testen sind.
Herausforderungen beim manuellen Testen
Manuelles Testen einer Anwendung durch QA-Tester wird als manuelles Testen bezeichnet. Hier müssen alle Tests in jeder Umgebung manuell durchgeführt werden, wobei ein anderer Datensatz verwendet wird, und die Erfolgs- / Ausfallrate jeder Transaktion sollte aufgezeichnet werden.
In der obigen Abbildung sehen Sie einen Mann, der die aufgezeichneten Transaktionen manuell überprüft. Sie können leicht mitteilen, dass die Herausforderungen, denen er gegenübersteht, Müdigkeit, Langeweile, Arbeitsverzögerungen, Fehler und Fehler aufgrund manuellen Aufwands verursachen können. Dies führte zur Entstehung von Automatisierungstests.
Lassen Sie uns nun in das letzte Thema des Tutorial-Artikels zum Softwaretest eintauchen und sehen, wie Automatisierungstests das manuelle Testen übertreffen.
Automatisierungstests im Vergleich zu manuellen Tests
Automatisierungstests überwinden jedes Mal manuelle Tests. Warum? Weil es superschnell ist, erfordert sehr weniger Investitionen in Humanressourcen, nicht anfällig für Fehler, häufige Ausführung von Tests ist möglich, unterstützt Regressionstests und auch Funktionstests.
Nehmen wir ein Beispiel und verstehen dies. Angenommen, Sie haben eine Anmeldeseite und müssen überprüfen, ob alle Anmeldeversuche erfolgreich sind, dann ist es sehr einfach, einen Code zu schreiben, der überprüft, ob alle Transaktions- / Anmeldeversuche erfolgreich sind oder nicht (automatisierte Testfallausführung).
Alle diese Tests können so konfiguriert werden, dass sie in verschiedenen Umgebungen und Webbrowsern getestet werden. Darüber hinaus können Sie die Generierung der Ergebnisdatei automatisieren, indem Sie sie für eine bestimmte Tageszeit planen. Dann können Sie auch die Generierung von Berichten basierend auf diesen Ergebnissen automatisieren und was nicht.
Wichtiger Punkt hier ist, dass Automatisierungstests die Arbeit eines Testers viel einfacher machen. Siehe das obige Bild, das eine entspanntere Umgebung zeigt, in der derselbe Tester arbeitet. Wenn Sie mehr über Automatisierungstests und das weit verbreitete Automatisierungstest-Tool Selenium erfahren möchten, können Sie sich auf dieses Selenium-Tutorial beziehen.
Hier ging es darum, wie sich Automatisierungstests im Bereich Softwaretests durchsetzen. Es bringt uns zum Ende des Artikels über Software-Test-Tutorial. Ich hoffe, Sie fanden es informativ und es hat dazu beigetragen, Ihr Wissen aufzuwerten.
Wenn Sie dieses „Softwaretest-Tutorial“ relevant fanden, schauen Sie sich das Live-Online-Selenium-Zertifizierungstraining von Edureka an, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt.