what is thread testing software testing
In deze tutorial wordt uitgelegd wat Thread Testing is, wanneer en hoe het moet worden uitgevoerd, soorten thread-based tests en uitdagingen waarmee u te maken krijgt:
Thread testing is een softwaretesttechniek die wordt gebruikt om de applicaties te testen die op clientserver zijn gebaseerd.
Thread-gebaseerde tests moeten worden uitgevoerd in de beginfase van integratietests, zodat de belangrijkste functies kunnen worden getest / geverifieerd voor een specifieke taak / programma of thread.
Wat je leert:
- Waarom draadtesten
- Wanneer en hoe wordt een draadtest uitgevoerd
- Soorten draadgebaseerde tests
- Verschil tussen draad en processen
- Verschil tussen op threads gebaseerd en op gebruikers gebaseerd testen
- Gevolgtrekking
Waarom draadtesten
Wanneer de componenten zijn geïntegreerd, is het noodzakelijk om te controleren of het systeem werkt zoals verwacht of niet en dat alle transacties plaatsvinden volgens de vereiste of niet. Dus Thread-gebaseerde testen komen binnen om hetzelfde te testen.
Dit testen wordt gedaan door de threads progressief te integreren op alle niveaus, beginnend bij het subsysteem tot het complete systeem, d.w.z. het hele systeem. Alle systeemactiviteiten gaan alleen met de threads vooruit.
Thread-definitie helpt om de functionele achtergrond en details van de thread-uitvoering tussen de ontwikkelaars en ontwikkelaars te delen met testers.
Over discussies
Een rode draad is de stroom van controle in een proces. Het is de kleinste taak van het systeem die kan worden uitgevoerd.
youtube naar mp4 converter-app voor Android
Voorbeeld
Een webbrowser kan een of meer threads hebben, namelijk. een thread om afbeeldingen en tekst weer te geven en een andere thread om gegevens op te halen. In bepaalde gevallen moet één enkele applicatie nodig zijn om alle processen te bedienen.
Het aanmaken van multi-threads is hiervoor de beste oplossing, anders worden meerdere verzoeken door de client naar de server gestuurd en zal het even duren om de verzoeken een voor een te erkennen. Multi-thread helpt om tegelijkertijd op de verzoeken te reageren.
Wanneer en hoe wordt een draadtest uitgevoerd
Dit moet gebeuren in de beginfase van de systeemintegratietest.
Integratietesten worden uitgevoerd door verschillende modules op een geplande manier te integreren. Het integratieplan wordt gevolgd voor hetzelfde dat de volgorde specificeert waarin de modules worden geïntegreerd om het complete systeem te maken.
Hieronder staan de technieken voor het uitvoeren van integratietests:
- Big-Bang-benadering
- Top-down benadering
- Bottom-up benadering
- Gemengde aanpak
Laten we elke techniek in detail bekijken.
# 1) Big-Bang-benadering
De oerknalbenadering wordt alleen gebruikt voor kleine systemen, aangezien alle modules in één keer zijn geïntegreerd en getest.
Elk probleem dat tijdens deze aanpak wordt aangetroffen, is moeilijk te lokaliseren, aangezien het probleem kan worden veroorzaakt door een van de geïntegreerde modules. Daarom zijn gevonden foutopsporingsproblemen bij deze benadering erg duur om op te lossen.
# 2) Top-down benadering
De top-down benadering wordt gedaan met behulp van de stubs, d.w.z. zodra de module op het hoogste niveau is getest, worden de onmiddellijke subroutines geïntegreerd en getest.
Stubs zijn de programma's die het effect simuleren van routines op een lager niveau en worden aangeroepen door de routines die worden getest. Bij het testen van threads wordt een top-down benadering gebruikt.
# 3) Bottom-up benadering
Bij de bottom-up benadering worden alle subsystemen afzonderlijk getest en vervolgens wordt het complete systeem getest. De reden achter het afzonderlijk testen van alle subsystemen is om de interface te testen tussen alle modules die deel uitmaken van het subsysteem.
Deze techniek vereist teststuurprogramma's, d.w.z. het programma dat de andere modules aanroept en dezelfde output levert als het daadwerkelijke product.
# 4) Testen van gemengde integratie
Deze techniek is een combinatie van zowel top-down als bottom-up benaderingen. Daarom wordt het Mixed Integration Testing genoemd.
Belangrijkste punten om op threads gebaseerde tests uit te voeren
- Tijdens het uitvoeren van threadtests worden threads of kleine functionaliteit geïntegreerd en getest. De uitgevoerde tests zijn incrementele tests op subsysteemniveau en vervolgens als een compleet systeem.
- In de beginfase zelf krijgen de integratietesters een goed idee en kennis voor wat ze verder moeten testen.
- Integratietesters moeten zowel positieve als negatieve scenario's binnen de threadgrenzen toepassen en uitvoeren. Ze moeten beslissen over een threadtestaanpak die moet worden gevolgd om ook uitzonderlijke gevallen en grensgevallen te dekken.
- De threaddefinitie die door de ontwikkelaar aan de tester wordt verstrekt, helpt om de thread dienovereenkomstig te testen door de integratortesters. Alle verdere informatie die de tester nodig heeft, kan worden beantwoord in het threadbeoordelingsproces.
- De threadprocessen werken voor integratieprocessen in plaats van voor end-to-end ontwikkelingsproces.
- Om de multi-thread-functionaliteit te testen, laat u de meerdere instanties van de applicatie of het programma dat u wilt testen tegelijkertijd actief zijn.
- Voer het multi-thread-programma uit op verschillende hardware.
- Thread testing is een vorm van sessietesten waarbij sessies worden gevormd uit threads. Het is niet nodig dat een gevormde thread een sessie is.
Soorten draadgebaseerde tests
Er worden twee soorten thread-based tests uitgevoerd:
- Enkele draad testen
- Multi-Thread-testen
# 1) Testen met enkele draad
Bij het testen van één thread wordt één transactie tegelijk getest. De wachttijd voor de klant om een antwoord op zijn verzoek te krijgen, kan iets langer zijn, omdat hij in staat zal zijn om één klant tegelijk te bedienen of erop te reageren.
Dit testen helpt de tester om de logica van het programma of de geschreven code te begrijpen en te testen.
# 2) Testen met meerdere threads
Multi-thread testing test meerdere actieve transacties tegelijkertijd. In dit geval worden aparte threads gemaakt voor de verzoeken van de klant. Telkens wanneer een verzoek wordt gedaan, wordt er een thread gemaakt naar de service of reageert op het verzoek.
Een transactie die goed werkte in de single thread-test kan mislukken tijdens het testen in multi-thread en kan ook andere threads en functionaliteiten verstoren en ervoor zorgen dat ze niet meer werken zoals verwacht.
Is een multithread-benadering beter dan een single-thread-benadering?
Multi-threaded applicaties zijn beter dan single-threaded, omdat het de prestaties van de applicatie verbetert. Met multi-threading kan een aantal bronnen tegelijkertijd aan een probleem / verzoek werken.
Uitdagingen tijdens het testen van threads
Tijdens het uitvoeren van threadgebaseerde tests wordt de tester geconfronteerd met verschillende uitdagingen die van invloed zijn op de prestaties, tijd en kosten van het testen.
- Het schrijven van unit-testcases voor multi-threaded code is een uitdaging.
- Wanneer multi-thread tests worden uitgevoerd op verschillende hardware, varieert dit voor grootte, opslagcapaciteit, geheugen, problemen, enz.
- Testscenario's voor zowel enkele threads als meerdere threads zijn verschillend.
- Bij testen met meerdere threads moeten reproduceerbare tests voor unit-tests worden geprogrammeerd.
Voordelen / nadelen van multi-threading
Multi-threading heeft veel voor- en nadelen. Als een tester hetzelfde weten, helpt dit hen om het testproces te testen en dienovereenkomstig te doorbreken.
Voordelen
- Multi-threading verhoogt het reactievermogen van de gebruiker. De toepassing kan het programma laten draaien, zelfs als een deel van de toepassing wordt geblokkeerd.
- Het delen van bronnen is een ander voordeel, aangezien threads de bronnen delen van het proces waaraan ze gerelateerd zijn of waartoe ze behoren.
- Het maken van threads is economisch omdat het de bronnen waartoe ze behoren, deelt.
Nadelen
- Complex testproces
- Resultaten zijn erg onvoorspelbaar.
- Het schrijven van een programma wordt moeilijker.
- Deadlock optreden.
Wat is een impasse
Wanneer multi-threading is voltooid, komt de thread in een wachttoestand als de bron niet beschikbaar is.
De wachtstatus verandert mogelijk niet voor de thread omdat de aangevraagde bron wordt vastgehouden door andere wachtende threads. Wanneer een dergelijke situatie zich voordoet, wordt dat Deadlock genoemd.
Verschil tussen draad en processen
Laten we de verschillen tussen Thread en Processes begrijpen:
S.No | Draad | Werkwijze |
---|---|---|
7 | Discussies kunnen niet verder worden verdeeld. | Processen kunnen meerdere threads hebben. |
1 | Draad is een lichtgewicht proces. | Het proces is een zwaar proces. |
twee | Als de server-thread wordt geblokkeerd, kan een tweede thread van dezelfde taak worden uitgevoerd en het proces voltooien. | Als het serverproces wordt geblokkeerd, kunnen andere processen niet worden uitgevoerd totdat het serverproces met tijdsblokkering wordt opgeheven. |
3 | Threads isoleren niet, ze delen het geheugen. | Het proces is geïsoleerd. |
4 | Het maken van threads, het wisselen van context, het beëindigen kost minder tijd in de thread. | Het maken van threads, het wisselen van context, het beëindigen kost meer tijd in processen. |
5 | Thread verwijst naar de specifieke taak van een proces. | Proces verwijst naar de uitvoering van elk programma. |
6 | De gebruikte middelen zijn zeer beperkt in de thread. | Er worden meer middelen gebruikt in processen. |
Verschil tussen op threads gebaseerd en op gebruikers gebaseerd testen
S.No. | Thread-based testen | Op gebruik gebaseerd testen |
---|---|---|
1 | De schroefdraden zijn afzonderlijk geïntegreerd en getest. | Het testen begint met klassen die niet van elkaar afhankelijk zijn, d.w.z. onafhankelijk zijn. |
twee | Regressietesten worden uitgevoerd om ervoor te zorgen dat er niets wordt beïnvloed. | Zodra het testen van onafhankelijke klassen is voltooid, worden afhankelijke klassen getest. Afhankelijke personen zijn degenen die afhankelijk zijn van de onafhankelijke klassen. Deze serie gaat door tot het moment dat het complete systeem is gebouwd. |
3 | Thread-based testing integreert de klassen die essentieel zijn om input of gebeurtenis van het systeem te erkennen. | Use-base testing integreert de klassen die essentieel zijn om te reageren of de use case te erkennen. |
Veel Gestelde Vragen
V # 1) Wat is draadtesten?
hoe svn-plug-in in eclipse te installeren
Antwoord: Thread-based testing is een methodologie die wordt uitgevoerd tijdens de vroege fase van integratietesten. Threads of programma's worden incrementeel geïntegreerd en getest in een subsysteem en vervolgens als een geheel systeem.
V # 2) Welke tests worden het eerst gedaan?
Antwoord : Gewoonlijk wordt eerst een bottom-up-test gedaan en vervolgens een top-down-test.
V # 3) Wat is top-down testen?
Antwoord: Top-down is een integratietesttechniek waarbij het testen wordt gedaan met behulp van stubs, d.w.z. wanneer componenten op een lager niveau nog niet klaar zijn om de integratie te testen, worden stubs (tijdelijke modules) gemaakt om dezelfde output te krijgen als in het geval van daadwerkelijke modules.
Gevolgtrekking
Thread-gebaseerde integratietesten spelen een belangrijke rol bij het testen van de belangrijkste functionaliteiten of de specifieke taak of thread. Deze methode is het beste voor een client-servergebaseerde architectuur.
Bij het uitvoeren van threadtests komt de tester voor veel uitdagingen te staan, maar heeft ook veel voordelen waardoor hij gemakkelijk en betrouwbaar kan worden uitgevoerd. Hiermee konden de testers alle transacties testen en controleren of het werkt zoals verwacht en volgens de vereisten.
Het is onmogelijk om alle transacties / gebeurtenissen te testen om de threadtest te voltooien, daarom is het onderverdeeld in single- en multi-thread-typen.
Aanbevolen literatuur
- Softwaretests kiezen als uw carrière
- Enkele interessante sollicitatievragen voor het testen van software
- Is het testen van software een emotionele taak?
- Java gesynchroniseerd: wat is threadsynchronisatie in Java
- Java-threads met methoden en levenscyclus
- Multithreading in C ++ met voorbeelden
- Multithreading in Java - Tutorial met voorbeelden
- Thread.Sleep () - Thread Sleep () -methode in Java met voorbeelden