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 Tests
  • Schwarz Box Tests

Die folgende bildliche Darstellung gibt uns eine Vorstellung von den Arten des dynamischen Testens, den Teststufen usw.

Arten dynamischer Tests

Lassen Sie uns kurz jede Art von Tests und ihren beabsichtigten Zweck besprechen

WeiรŸ Box Tests - WeiรŸ Box Tests 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 Tests 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.

Dynamische Testtechniken

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.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: