Was ist dynamisches Testen? Typen, Techniken und Beispiele
Dynamisches Testen
Dynamisches Testen ist eine Softwaretestmethode, mit der das dynamische Verhalten von Softwarecode getestet wird. Der Hauptzweck des dynamischen Testens besteht darin, das Softwareverhalten mit dynamischen oder nicht konstanten Variablen zu testen und Schwachstellen in der Software-Laufzeitumgebung zu finden. Um das dynamische Verhalten zu testen, muss der Code ausgeführt werden.
Wir alle wissen, dass es sich beim Testen um Verifizierung und Validierung handelt und dass zwei V erforderlich sind, um den Test abzuschließen. Von den beiden Vs wird die Verifizierung als statisches Testen bezeichnet und das andere „V“, die Validierung, wird als dynamisches Testen bezeichnet.
Beispiel für dynamische Tests
Lassen Sie uns anhand eines Beispiels verstehen, wie dynamische Tests durchgeführt werden:
Angenommen, wir testen eine Anmeldeseite, auf der wir zwei Felder mit den Namen „Benutzername“ und „Passwort“ haben und der Benutzername auf alphanumerische Zeichen beschränkt ist.
Wenn der Benutzer als Benutzernamen „Guru99“ eingibt, akzeptiert das System diesen. Wenn der Benutzer beispielsweise Guru99@123 eingibt, gibt die Anwendung eine Fehlermeldung aus. Dieses Ergebnis zeigt, dass der Code dynamisch agiert basierend auf der Benutzereingabe.
Beim dynamischen Testen arbeiten Sie mit dem tatsächlichen System, indem Sie eine Eingabe bereitstellen und das tatsächliche Verhalten der Anwendung mit dem erwarteten Verhalten vergleichen. Mit anderen Worten: Arbeiten mit dem System mit der Absicht, Fehler zu finden.
Basierend auf den obigen Aussagen können wir also sagen oder schließen, dass dynamisches Testen ein Prozess ist, bei dem Softwareanwendungen als Endbenutzer in verschiedenen Umgebungen validiert werden, um die richtige Software zu erstellen.
Was bewirkt dynamisches Testen?
Das Hauptziel der dynamischen Tests besteht darin, sicherzustellen, dass die Software während und nach der Installation der Software ordnungsgemäß funktioniert, um eine stabile Anwendung ohne größere Fehler zu gewährleisten (diese Aussage wird gemacht, weil keine Software fehlerfrei ist; nur Tests können das Vorhandensein von Fehlern aufzeigen). nicht Abwesenheit)
Der Hauptzweck des dynamischen Tests besteht darin, die Konsistenz der Software sicherzustellen; Lassen Sie uns dies anhand eines Beispiels diskutieren.
In einer Bankanwendung finden wir verschiedene Bildschirme wie den Bereich „Meine Konten“, den Bereich „Geldtransfer“ usw. Bill Bezahlen usw. Alle diese Bildschirme enthalten ein Betragsfeld, das einige Zeichen akzeptiert.
Nehmen wir an, im Feld „Meine Konten“ wird der Betrag als angezeigt 25,000 und Geldtransfer als $25,000 und Bill Bezahlbildschirm als $25000 Obwohl der Betrag derselbe ist, wird er nicht auf dieselbe Art angezeigt. Dies führt zu Inkonsistenzen in der Software.
Konsistenz beschränkt sich nicht nur auf die Funktionalität, sondern bezieht sich auch auf verschiedene Standards wie Leistung, Benutzerfreundlichkeit, Kompatibilität usw. Daher ist es sehr wichtig, dynamische Tests durchzuführen.
Arten dynamischer Tests
Dynamisches Testen wird in zwei Kategorien eingeteilt
- Weiß Box Testen
- Schwarz Box Testen
Die folgende bildliche Darstellung gibt uns eine Vorstellung von den Arten des dynamischen Testens, den Teststufen usw.
Lassen Sie uns kurz jede Art von Tests und ihren beabsichtigten Zweck besprechen
Weiß Box Testen - Weiß Box Testen ist eine Softwaretestmethode, bei der dem Tester die interne Struktur/das interne Design bekannt ist. Das Hauptziel von Weiß Box Beim Testen wird anhand des Codes überprüft, wie das System funktioniert. Es wird hauptsächlich von den Entwicklern oder Weißen durchgeführt Box Tester, die Kenntnisse in der Programmierung haben.
Schwarz Box Testen - Schwarz Box Testen ist eine Testmethode, bei der die interne Struktur/der Code/das Design überprüft wird NICHT dem Tester bekannt. Das Hauptziel dieser Tests besteht darin, die Funktionalität des zu testenden Systems zu überprüfen. Diese Art von Tests erfordert die Ausführung der gesamten Testsuite und wird hauptsächlich von den Testern durchgeführt, und es sind keine Programmierkenntnisse erforderlich.
Die Schwarz Box Das Testen wird wiederum in zwei Arten eingeteilt.
Sie sind
- Funktionsprüfung
- Nichtfunktionale Prüfung
Funktionsprüfung:
Funktionstests werden durchgeführt, um zu überprüfen, ob alle entwickelten Funktionen den Funktionsspezifikationen entsprechen. Sie werden durch die Ausführung der vom QA-Team geschriebenen Funktionstestfälle durchgeführt. In der Funktionstestphase wird das System durch die Bereitstellung von Eingaben, die Überprüfung der Ausgaben usw. getestet Vergleich der tatsächlichen Ergebnisse mit den erwarteten Ergebnissen.
Es gibt verschiedene Ebenen des Funktionstests, von denen die wichtigsten sind
- Unit Tests – Im Allgemeinen ist Unit ein kleines Stück Code, das testbar ist. Unit Tests wird an einzelnen Softwareeinheiten durchgeführt und von Entwicklern durchgeführt
- Integrationstests - Integrationstests ist der Test, der nach dem Unit-Test durchgeführt wird und durch die Kombination aller einzelnen testbaren Einheiten durchgeführt wird und entweder von Entwicklern oder Testern durchgeführt wird
- Systemtest - Systemtest wird durchgeführt, um sicherzustellen, dass das System den Anforderungen entspricht und wird im Allgemeinen durchgeführt, wenn das komplette System bereit ist. Sie wird von Testern durchgeführt, wenn der Build oder Code an das QA-Team freigegeben wird
- Abnahmetests – Abnahmetests werden durchgeführt, um zu überprüfen, ob das System die Geschäftsanforderungen erfüllt und einsatzbereit oder bereit für die Bereitstellung ist. Sie werden im Allgemeinen von den Endbenutzern durchgeführt.
Nichtfunktionales Testen: Nicht-funktionales Testen ist eine Testtechnik, die sich nicht auf funktionale Aspekte konzentriert und sich hauptsächlich auf die nicht-funktionalen Attribute des Systems wie Speicherverluste, Leistung oder Robustheit des Systems konzentriert. Nichtfunktionale Tests werden auf allen Testebenen durchgeführt.
Es gibt viele nicht-funktionale Testtechniken, von denen die wichtigsten sind
- Performance Testing - Performance Testing wird durchgeführt, um zu prüfen, ob die Reaktionszeit des Systems den Anforderungen unter der gewünschten Netzwerklast entspricht.
- Wiederherstellungstests – Wiederherstellungstests sind eine Methode, um zu überprüfen, wie gut ein System nach Abstürzen und Hardwarefehlern wiederhergestellt werden kann.
- Kompatibilitätstests – Kompatibilitätstests werden durchgeführt, um zu überprüfen, wie sich das System in verschiedenen Umgebungen verhält.
- Sicherheitstests - Sicherheitstests wird durchgeführt, um die Robustheit der Anwendung zu überprüfen, dh um sicherzustellen, dass nur autorisierte Benutzer/Rollen auf das System zugreifen
- Usability-Tests - Usability-Tests ist eine Methode zur Überprüfung der Benutzerfreundlichkeit des Systems durch Endbenutzer, um zu überprüfen, wie komfortabel die Benutzer mit dem System sind.
Dynamische Testtechniken
Dynamische Testtechniken in STLC besteht aus verschiedenen Aufgaben wie Anforderungsanalyse für die Tests, Testplanung, Design und Implementierung von Testfällen, Einrichtung der Testumgebung, Testfallausführung, Fehlerberichterstattung und schließlich Testabschluss. Alle Aufgaben in dynamischen Testtechniken hängen vom Abschluss der vorherigen Aufgabe im Testprozess ab.
In STLC können wir sagen, dass der eigentliche dynamische Testprozess mit dem Testfallentwurf beginnt. Lassen Sie uns jede Aktivität im Detail besprechen.
Bevor wir mit dem Prozess beginnen, besprechen wir die Strategie, die für dynamisches Testen verfolgt werden muss.
Die Teststrategie sollte sich hauptsächlich auf die verfügbaren Ressourcen und den Zeitrahmen konzentrieren. Basierend auf diesen Faktoren müssen das Ziel des Tests, der Testumfang, die Phasen oder Zyklen des Tests, die Art der Umgebung, Annahmen oder Herausforderungen, mit denen man konfrontiert sein könnte, Risiken usw. dokumentiert werden.
Sobald die Strategie definiert und vom Management akzeptiert ist, beginnt der eigentliche Entwurf des Prozesstestfalls
Was ist Testdesign und -implementierung?
In dieser Phase identifizieren wir die,
- Zu testende Funktionen
- Leiten Sie die Testbedingungen ab
- Leiten Sie die Coverage Items ab
- Leiten Sie die Testfälle ab
Einrichtung der Testumgebung
Wir müssen sicherstellen, dass die Testumgebung immer der Produktionsumgebung ähnelt. In dieser Phase müssen wir den Build installieren und die Testmaschinen verwalten.
Test Ausführung
In dieser Phase werden Testfälle tatsächlich ausgeführt.
Fehlerbericht erfasst
Wenn basierend auf der Ausführung die erwarteten und tatsächlichen Ergebnisse nicht übereinstimmen, muss der Testfall als „Fehlgeschlagen“ markiert werden und ein Fehler sollte protokolliert werden.
Vorteile des dynamischen Testens
- Dynamische Tests können aufgedeckte Fehler aufdecken, die als zu schwierig oder kompliziert gelten und nicht durch statische Analysen abgedeckt werden können
- Beim dynamischen Testen führen wir die Software durchgängig aus und stellen so fehlerfreie Software sicher, was wiederum die Qualität eines Produkts und Projekts erhöht.
- Dynamische Tests werden zu einem unverzichtbaren Tool zur Erkennung von Sicherheitsbedrohungen
Nachteile dynamischer Tests
- Dynamisches Testen ist zeitaufwändig, da es die Anwendung/Software oder den Code ausführt, was eine große Menge an Ressourcen erfordert
- Dynamisches Testen erhöht die Kosten des Projekts/Produkts, da es nicht früh im Software-Lebenszyklus beginnt und daher alle in späteren Phasen behobenen Probleme zu einer Kostensteigerung führen können.
Fazit
In Software Engineering, Verifizierung und Validierung sind zwei Maßnahmen, mit denen überprüft wird, ob das Softwareprodukt den Anforderungsspezifikationen entspricht. Bei statischen Tests handelt es sich um eine Verifizierung, bei dynamischen Tests um eine Validierung. Gemeinsam tragen sie dazu bei, eine kostengünstige Qualitätssoftware bereitzustellen.