what is thread testing software testing
In diesem Tutorial wird erläutert, was Thread-Tests sind, wann und wie sie durchgeführt werden, welche Arten von Thread-basierten Tests durchgeführt werden und welche Herausforderungen auftreten:
Thread-Test ist eine Softwaretesttechnik, mit der die auf Client-Servern basierenden Anwendungen getestet werden.
Thread-basierte Tests sollten in der Anfangsphase des Integrationstests durchgeführt werden, damit die Schlüsselfunktionen für eine bestimmte Aufgabe / ein bestimmtes Programm oder einen bestimmten Thread getestet / verifiziert werden können.
Was du lernen wirst:
- Warum Thread-Test
- Wann und wie werden Thread-Tests durchgeführt?
- Arten von Thread-basierten Tests
- Unterschied zwischen Thread und Prozessen
- Unterschied zwischen Thread-basierten und benutzerbasierten Tests
- Fazit
Warum Thread-Test
Wenn die Komponenten integriert sind, muss überprüft werden, ob das System wie erwartet funktioniert oder nicht, und alle Transaktionen würden gemäß den Anforderungen stattfinden oder nicht. Somit kommt das Thread-basierte Testen ins Spiel, um dasselbe zu testen.
Dieser Test wird durchgeführt, indem die Threads schrittweise auf allen Ebenen vom Subsystem bis zum Gesamtsystem, d. H. Dem gesamten System, integriert werden. Alle Systemaktivitäten werden nur mit den Threads fortgesetzt.
Die Thread-Definition hilft dabei, den funktionalen Hintergrund und die Details der Thread-Ausführung zwischen den Entwicklern und Entwicklern für Tester freizugeben.
Über Threads
Ein Thread ist der Kontrollfluss in einem Prozess. Es ist die kleinste Aufgabe des Systems, die ausgeführt werden kann.
Was ist Loadrunner beim Testen von Software?
Beispiel
In einem Webbrowser werden möglicherweise ein oder mehrere Threads ausgeführt. Ein Thread zum Anzeigen von Bildern und Text und ein anderer Thread zum Abrufen von Daten. In bestimmten Fällen muss eine einzige Anwendung erforderlich sein, um alle Prozesse zu bedienen.
Das Erstellen von Multithreads ist die beste Lösung für dasselbe. Andernfalls werden vom Client mehrere Anforderungen an den Server gesendet, und es dauert einige Zeit, bis die Anforderungen einzeln bestätigt werden. Multithread hilft dabei, gleichzeitig auf die Anfragen zu antworten.
Wann und wie werden Thread-Tests durchgeführt?
Dies sollte in der Anfangsphase des Systemintegrationstests erfolgen.
Integrationstests werden durchgeführt, indem verschiedene Module auf geplante Weise integriert werden. Der Integrationsplan wird für denselben befolgt, der die Reihenfolge angibt, in der die Module integriert werden, um das gesamte System zu erstellen.
Nachfolgend sind die Techniken zum Ausführen von Integrationstests aufgeführt:
- Urknall-Ansatz
- Top-Down-Ansatz
- Bottom-up-Ansatz
- Gemischter Ansatz
Sehen wir uns jede Technik im Detail an.
# 1) Urknall-Ansatz
Der Big-Bang-Ansatz wird nur für kleine Systeme verwendet, da alle Module in nur einem Durchgang integriert und getestet werden.
Jedes Problem, das bei diesem Ansatz festgestellt wird, ist schwer zu lokalisieren, da das Problem von einem der integrierten Module stammen kann. Daher sind gefundene Debugging-Probleme bei diesem Ansatz sehr teuer zu beheben.
# 2) Top-Down-Ansatz
Der Top-Down-Ansatz erfolgt unter Verwendung der Stubs, d. H. Sobald das Modul der obersten Ebene getestet wurde, werden die unmittelbaren Unterprogramme integriert und getestet.
Stubs sind Programme, die den Effekt von Routinen niedrigerer Ebene simulieren und von den zu testenden Routinen aufgerufen werden. Beim Thread-Testen wird ein Top-Down-Ansatz verwendet.
# 3) Bottom-up-Ansatz
Beim Bottom-up-Ansatz werden alle Subsysteme einzeln getestet, und anschließend wird das gesamte System getestet. Der Grund für das separate Testen aller Subsysteme besteht darin, die Schnittstelle zwischen allen Modulen zu testen, die Teil des Subsystems sind.
Diese Technik erfordert Testtreiber, d. H. Das Programm, das die anderen Module aufruft und dieselbe Ausgabe wie das eigentliche Produkt liefert.
# 4) Gemischte Integrationstests
Diese Technik ist eine Kombination aus Top-Down- und Bottom-Up-Ansätzen. Daher heißt es Mixed Integration Testing.
Wichtige Punkte für die Durchführung von Thread-basierten Tests
- Während der Durchführung von Thread-Tests werden Threads oder kleine Funktionen integriert und getestet. Die durchgeführten Tests sind inkrementelle Tests auf Subsystemebene und dann als Gesamtsystem.
- In der Anfangsphase selbst erhalten die Integrationstester eine gute Idee und Wissen, was sie weiter testen sollen.
- Integrationstester müssen sowohl positive als auch negative Szenarien nur innerhalb der Thread-Grenzen anwenden und ausführen. Sie müssen sich für einen Thread-Test-Ansatz entscheiden, der auch Ausnahmefälle und Grenzfälle abdeckt.
- Die Thread-Definition, die der Entwickler dem Tester zur Verfügung stellt, hilft, den Thread von den Integratortestern entsprechend zu testen. Alle weiteren vom Tester benötigten Informationen können im Thread-Überprüfungsprozess beantwortet werden.
- Die Thread-Prozesse funktionieren eher für Integrationsprozesse als für den End-to-End-Entwicklungsprozess.
- Lassen Sie zum Testen der Multithread-Funktionalität mehrere Instanzen der zu testenden Anwendung oder des zu testenden Programms gleichzeitig aktiv sein.
- Führen Sie das Multithread-Programm auf einer anderen Hardware aus.
- Thread-Tests sind eine Form von Sitzungstests, bei denen Sitzungen aus Threads bestehen. Es ist nicht erforderlich, dass ein geformter Thread eine Sitzung ist.
Arten von Thread-basierten Tests
Es werden zwei Arten von Thread-basierten Tests durchgeführt:
- Single Thread Testen
- Multi-Thread-Test
# 1) Single Thread Testing
Beim Testen eines einzelnen Threads wird jeweils eine Transaktion getestet. Die Wartezeit, bis der Client eine Antwort auf seine Anfrage erhält, kann etwas länger sein, da er jeweils einen Client bedienen oder darauf antworten kann.
Dieser Test hilft dem Tester, die Logik des Programms oder des geschriebenen Codes zu verstehen und zu testen.
# 2) Multithread-Tests
Beim Multithread-Testen werden mehrere aktive Transaktionen gleichzeitig getestet. In diesem Fall werden separate Threads für die Anforderungen des Clients erstellt. Immer wenn eine Anfrage gestellt wird, wird ein Thread für den Dienst erstellt oder antwortet auf die Anfrage.
Eine Transaktion, die beim Testen eines einzelnen Threads einwandfrei funktioniert hat, kann beim Testen in mehreren Threads fehlschlagen und auch andere Threads und Funktionen beeinträchtigen und deren erwartete Funktion beeinträchtigen.
Ist ein Multithread-Ansatz besser als ein Single-Thread-Ansatz?
Multithread-Anwendungen sind besser als Single-Thread-Anwendungen, da sie die Leistung der Anwendung verbessern. Durch Multithreading können mehrere Ressourcen gleichzeitig an einem Problem / einer Anforderung arbeiten.
Herausforderungen beim Thread-basierten Testen
Während der Durchführung von Thread-basierten Tests steht der Tester vor verschiedenen Herausforderungen, die sich auf Leistung, Zeit und Kosten des Tests auswirken.
- Das Schreiben von Unit-Testfällen für Multithread-Code ist eine Herausforderung.
- Wenn Multithread-Tests auf unterschiedlicher Hardware durchgeführt werden, variieren diese in Bezug auf Größe, Speicherkapazität, Speicher, Probleme usw.
- Die Testszenarien für einen einzelnen Thread und mehrere Threads sind unterschiedlich.
- Bei Tests mit mehreren Threads sollten reproduzierbare Tests für Komponententests programmiert werden.
Vor- und Nachteile von Multithreading
Multithreading hat viele Vor- und Nachteile. Wenn ein Tester dasselbe weiß, kann er den Testprozess entsprechend testen und unterbrechen.
Vorteile
- Multithreading erhöht die Reaktionsfähigkeit auf den Benutzer. Die Anwendung kann das Programm auch dann laufen lassen, wenn ein Teil der Anwendung blockiert wird.
- Die gemeinsame Nutzung von Ressourcen ist ein weiterer Vorteil, da Threads die Ressourcen des Prozesses gemeinsam nutzen, zu dem sie gehören oder zu dem sie gehören.
- Das Erstellen von Threads ist wirtschaftlich, da die Ressourcen, zu denen sie gehören, gemeinsam genutzt werden.
Nachteile
youtube to mp4 converter online kostenlos kein Download
- Komplexer Testprozess
- Die Ergebnisse sind sehr unvorhersehbar.
- Das Schreiben eines Programms wird schwieriger.
- Deadlock-Auftreten.
Was ist Deadlock?
Wenn Multithreading abgeschlossen ist, wird der Thread in einen Wartezustand versetzt, wenn die Ressource nicht verfügbar ist.
Der Wartezustand für den Thread ändert sich möglicherweise nicht, da die angeforderte Ressource von anderen wartenden Threads gehalten wird. Wenn eine solche Situation auftritt, wird dies als Deadlock bezeichnet.
Unterschied zwischen Thread und Prozessen
Lassen Sie uns die Unterschiede zwischen Thread und Prozessen verstehen:
S.No. | Faden | Prozess |
---|---|---|
7 | Threads können nicht weiter unterteilt werden. | Prozesse können mehrere Threads haben. |
ein | Faden ist ein leichter Prozess. | Der Prozess ist ein Schwergewichtsprozess. |
zwei | Wenn der Server-Thread blockiert wird, kann ein zweiter Thread derselben Aufgabe ausgeführt und der Vorgang abgeschlossen werden. | Wenn der Serverprozess blockiert wird, können andere Prozesse erst ausgeführt werden, wenn der blockierte Serverprozess nicht mehr blockiert ist. |
3 | Threads isolieren nicht, sie teilen sich den Speicher. | Der Prozess ist isoliert. |
4 | Das Erstellen von Threads, das Wechseln des Kontexts und das Beenden des Threads dauert im Thread weniger lange. | Das Erstellen von Threads, das Wechseln des Kontexts und das Beenden nehmen in Prozessen mehr Zeit in Anspruch. |
5 | Thread bezieht sich auf die spezifische Aufgabe eines Prozesses. | Prozess bezieht sich auf die Ausführung eines Programms. |
6 | Die verwendeten Ressourcen sind im Thread sehr gering. | In Prozessen verwendete Ressourcen sind mehr. |
Unterschied zwischen Thread-basierten und benutzerbasierten Tests
S.No. | Thread-basiertes Testen | Anwendungsbasiertes Testen |
---|---|---|
ein | Threads werden einzeln integriert und getestet. | Das Testen beginnt mit Klassen, die nicht voneinander abhängig sind, d. H. Unabhängig sind. |
zwei | Regressionstests werden durchgeführt, um sicherzustellen, dass nichts beeinträchtigt wird. | Sobald das Testen unabhängiger Klassen abgeschlossen ist, werden abhängige Klassen getestet. Abhängige sind diejenigen, die von den unabhängigen Klassen abhängen. Diese Serie dauert bis zum Aufbau des gesamten Systems. |
3 | Thread-basiertes Testen integriert die Klassen, die für die Bestätigung von Eingaben oder Ereignissen des Systems erforderlich sind. | Use-Base-Tests integrieren die Klassen, die für die Beantwortung oder Bestätigung des Anwendungsfalls erforderlich sind. |
Häufig gestellte Fragen
F # 1) Was ist Thread-Test?
Antworten: Thread-basiertes Testen ist eine Methode, die in der frühen Phase des Integrationstests durchgeführt wird. Threads oder Programme werden schrittweise in ein Subsystem und dann als ganzes System integriert und getestet.
F # 2) Welche Tests werden zuerst durchgeführt?
Antworten : Normalerweise werden zuerst Bottom-Up-Tests und dann Top-Down-Tests durchgeführt.
F # 3) Was ist Top-Down-Test?
Antworten: Top-down ist eine Integrationstesttechnik, bei der das Testen unter Verwendung von Stubs durchgeführt wird, d. H. Wenn Komponenten niedrigerer Ebene noch nicht zum Testen der Integration bereit sind, werden Stubs (temporäre Module) erstellt, um die gleiche Ausgabe wie im Fall von tatsächlichen Modulen zu erhalten.
Fazit
Thread-basierte Integrationstests spielen eine wichtige Rolle beim Testen der wichtigsten Funktionen oder der spezifischen Aufgabe oder des Threads. Diese Methode eignet sich am besten für Client-Server-basierte Architekturen.
Während der Durchführung von Thread-Tests muss sich der Tester vielen Herausforderungen stellen, hat jedoch auch viele Vorteile, die die Durchführung einfach und zuverlässig machen. Damit können die Tester alle Transaktionen testen und überprüfen, ob sie wie erwartet und gemäß den Anforderungen funktionieren.
Es ist unmöglich, alle Transaktionen / Ereignisse zu testen, um den Thread-Test abzuschließen. Aus diesem Grund ist er in Einzel- und Multithread-Typen unterteilt.
Literatur-Empfehlungen
- Wählen Sie Software-Tests als Ihre Karriere
- Einige interessante Fragen zu Softwaretests
- Ist das Testen von Software eine emotionale Aufgabe?
- Java synchronisiert: Was ist Thread-Synchronisation in Java?
- Java-Threads mit Methoden und Lebenszyklus
- Multithreading in C ++ mit Beispielen
- Multithreading in Java - Tutorial mit Beispielen
- Thread.Sleep () - Thread Sleep () -Methode in Java mit Beispielen