Automation Testing Tutorial: aan de slag

inhoudsopgave

Wat is Automation Testing?

zoals de naam al doet vermoeden. automation testing neemt software testactiviteiten en voert ze uit via een automation toolset of framework. In eenvoudige woorden, het is een type van testen waarbij een gereedschap voert een set van taken in een gedefinieerd patroon automatisch.

het neemt de druk van handmatige testers af en stelt hen in staat zich te concentreren op taken met een hogere waarde-verkennende tests, het beoordelen van testresultaten, enz. In wezen, een machine neemt over en implementeert, alledaagse, repetitieve, tijd-verwarrende taken zoals regressietests. Automatiseringstests zijn essentieel voor het bereiken van een grotere testdekking binnen kortere tijdlijnen, evenals een grotere nauwkeurigheid van de resultaten.

Waarom is automatiseringstests cruciaal in een Softwarelevenscyclus?

stel je voor.

op uw eerste dag als QA moet u een toepassing testen die ongeveer 100 velden bevat die invoer vereisen. Bij het uitvoeren van verkennende tests, moet u invoer handmatig invoegen in elk veld. Dit duurt ongeveer 10 minuten om te doen als je echt snel bent.

u drukt op Submit. Er verschijnt een foutmelding. Het lijkt op een onbehandelde uitzondering. Je rapporteert de bug en voelt je goed over een goed gedaan werk. Je herhaalt het proces, vindt een paar bugs meer en hebben een over het algemeen productieve eerste dag.

de volgende dag lost de ontwikkelaar de problemen op en MOET u de nieuwe versie van de software testen en dezelfde stappen herhalen als de dag ervoor. Bug opgelost. Goed gedaan. Een goede gebruikerservaring verzekerd, dankzij uw inspanningen.

op de derde dag hebben ontwikkelaars een nieuwere versie uitgebracht met nieuwere functies. Maar om ervoor te zorgen dat de nieuwe functies niet de oudere werkende functies hebben gebroken, moet u het proces opnieuw te herhalen. Geen problemen gevonden.

een maand later geven ontwikkelaars continu nieuwere versies uit, wat betekent dat u de software moet blijven testen en steeds hetzelfde proces moet herhalen (het invoegen van veldinvoer). Je verveelt je en bent moe. Je nauwkeurigheid begint te wankelen, waardoor je uiteindelijk een bug mist – mogelijk een nogal voor de hand liggende.

geloof het of niet, dit is een vrij algemeen scenario voor de meeste QAs. Het is niet mogelijk om steeds weer hetzelfde te doen en er altijd perfect in te zijn. Dit is waar automatiseringstests van belang zijn.

kan een software een andere software testen?

Ja. Dat is het hele punt van automatiseringstests. Als het gaat om regressie testen, investeren handmatige inspanning is zinloos en verspillend. In plaats van te verwachten dat mensen dezelfde stappen herhalen met dezelfde snelheid, nauwkeurigheid en energie, is het veel logischer om een machine te programmeren om hetzelfde te doen.

welke tests moeten worden geautomatiseerd?

alvorens een test automatiseringsstrategie te ontwikkelen, laten we eens kijken welke tests het meest haalbaar zijn voor automatisering:

  • regressie testen: regressie suites worden steeds groter en vereisen dat dezelfde variabelen meerdere keren worden gevuld om ervoor te zorgen dat nieuwe functies niet knoeien met oudere functies. Dit kan eenvoudig worden geautomatiseerd.
  • testen van complexe functionaliteiten: Automatiseer alle tests waarvoor complexe berekeningen nodig zijn, iets dat vatbaar is voor menselijke fouten.
  • rooktest: Voer geautomatiseerde suites uit om de kwaliteit van de belangrijkste functionaliteiten te controleren. Dit bespaart tijd door het aanbieden van een snelle analyse van de vraag of een build vereist meer diepgaande testen.
  • Data-driven testing: Automatiseer tests om functionaliteiten te valideren die herhaaldelijk moeten worden getest met talrijke datasets.
  • prestatietest: automatiseer tests die de prestaties van software onder verschillende omstandigheden controleren. Dit handmatig doen zou uiterst nauwgezet en tijdrovend zijn.
  • functionele tests: Elke keer dat een ontwikkelaar een PR indient, moeten functionele testen snel worden uitgevoerd en directe feedback geven. Dit is onmogelijk te bereiken zonder automatisering, vooral als organisaties opschalen.

aan de slag met automatiseringstests

houd bij de overgang van handmatige naar automatiseringstests de volgende punten in gedachten::

  • streef niet naar 100% testautomatisering. Niet alle tests kunnen geautomatiseerd worden. Zelfs onder tests die kunnen worden geautomatiseerd, niet een eerste doel van volledige automatisering.
  • Stel een realistisch doel. Begin bijvoorbeeld met het verplaatsen van een paar tests naar automatisering. Schrijf kleinere testcases die gemakkelijk kunnen worden hergebruikt in toekomstige tests van dezelfde software. Kaart testcases met bijbehorende functies om een betere testdekking te bieden. Label testcases zodat teams duidelijkheid kunnen hebben over wat ze moeten automatiseren en effectiever kunnen rapporteren.
  • Verken nieuwe toepassingsgebieden met automatisering. Zorg er bij het uitstippelen van automatiseringsstrategieën voor dat zakelijke vereisten net zo serieus worden genomen als technische overwegingen.
  • weet wat niet te automatiseren. Dit helpt bij het bepalen van de omvang van de automatisering vroeg in het ideatieproces. De volgende tests kunnen het best handmatig worden uitgevoerd:
  1. User experience testing: Tools kunnen geen gebruikersreis in zijn geheel repliceren. Het is onmogelijk voor een algoritme om te voorspellen hoe individuele gebruikers zullen communiceren met een toepassing. Om daadwerkelijk de kwaliteit van de gebruikerservaring te beoordelen, vasthouden aan menselijke testers. Probeer het gebruik van handmatige interactieve testtools zoals BrowserStack Live.
  2. Toegankelijkheidstests: Bij het testen hoe toegankelijk een toepassing is, is er geen vervanging voor menselijk gebruik. Een instrument kan toegankelijkheid niet meten omdat mensen vaak verschillende meningen hebben over wat toegankelijk is. Het is niet mogelijk voor een tool om te herkennen of software workflow is het verstrekken van gemakkelijke toegang voor de werkelijke mensen.

  • Selecteer de juiste toolsautomatisering testen is volledig afhankelijk van tools. Hier is wat te overwegen bij het kiezen van de juiste tool:
  1. de aard van de software: wordt de applicatie op het web of mobiel getest?
    om de eerste te testen, gebruik je een tool als Selenium om je tests te automatiseren. Voor deze laatste is Appium een van de best mogelijke tools voor automatisering.
  2. programmeerervaring: kies frameworks, talen en tools die overeenkomen met het comfort en de ervaring van testers. Enkele van de meest populaire talen die worden gebruikt voor automatiseringstests zijn Java, JavaScript, Ruby, C#, enz.
  3. Open Source of niet: afhankelijk van budgetbeperkingen, kan men ervoor kiezen om open-source tools zoals Selenium of Appium te gebruiken voor automatiseringsdoeleinden. Het is echter belangrijk om te onthouden dat alle open-source tools niet inferieur zijn aan hun commercieel beschikbare tegenhangers. Bijvoorbeeld, Selenium Webdriver is een open-source tool die het meest wordt begunstigd door geautomatiseerde testers over de hele wereld.
  • Kies het juiste testrooster

het testrooster verwijst naar de infrastructuur waarop alle geautomatiseerde tests zullen worden uitgevoerd. Het bestaat uit een reeks apparaten, browsers en besturingssystemen (meerdere versies) waarop software moet worden getest. Het is altijd het beste om tests te automatiseren op echte apparaten en browsers. Dit zal ervoor zorgen dat software wordt getest in echte gebruikersomstandigheden.

bovendien moet het ideale testrooster parallelle tests mogelijk maken. Dit betekent dat testers meerdere tests op meerdere apparaten tegelijkertijd moeten kunnen uitvoeren. Dit verkort de testtijd, versnelt de resultaten en biedt resultaten binnen kortere deadlines.

iets anders om te beslissen is of het testrooster on-premise of op de cloud moet worden gehost. Houd er rekening mee dat on-premise infrastructuur is bijna altijd duur op te zetten en te onderhouden. Het vereist het bijhouden van nieuwe apparaten, browsers en besturingssystemen, het updaten en onderhouden van hen dienovereenkomstig. Dit is een uitdaging omdat er elke maand meerdere versies van elk worden uitgebracht.

omgekeerd is het testen op een cloudgebaseerd raster eenvoudiger, aangezien het updaten en onderhouden wordt verzorgd door de organisatie die het raster aanbiedt. Bijvoorbeeld, BrowserStack biedt een cloud Selenium grid dat is aangesloten op 2000 + echte apparaten en browsers voor het testen. Gebruikers moeten zich gewoon aanmelden en beginnen met testen op een robuust selenium rooster dat voortdurend wordt bijgewerkt voor de best mogelijke resultaten.

BrowserStack ‘ s real device cloud biedt meer dan 2000 echte browsers en apparaten voor directe, on-demand testen. De cloud biedt ook integraties met populaire CI / CD tools zoals Jira, Jenkins, TeamCity, Travis CI, en nog veel meer. Daarnaast zijn er ingebouwde debuggereedschappen waarmee testers bugs onmiddellijk kunnen identificeren en oplossen. BrowserStack vergemakkelijkt ook Cypress testen op 30 + browserversies met onmiddellijke, probleemloze parallellisatie.

Probeer gratis automatiseringstests

voorbeeld van testautomatisering

bij het handmatig testen van software gebruikt de tester een mount en toetsenbord om ermee te communiceren. Automatisering scripts en tools repliceren deze interactie, stap-voor-stap.

in dit voorbeeld wordt een rekenmachine getest om te zien of hij twee getallen kan toevoegen en het resultaat kan weergeven. Handmatig worden de volgende stappen gezet:

Stap 1: Startcalculator
Stap 2: Druk op 2
Stap 3: Druk op +
Stap 4: Druk op 3
Stap 5: Druk op =
Stap 6: het scherm geeft 5
Stap 7: Sluit Calculator

een automatiseringsprogramma kan dezelfde stappen uitvoeren met het volgende script:

//the example is written in MS Coded UI using c# language.public void TestCalculator(){//launch the applicationvar app = ApplicationUnderTest.Launch("C:\Windows\System32\calc.exe");//do all the operationsMouse.Click(button2);Mouse.Click(buttonAdd);Mouse.Click(button3);Mouse.Click(buttonEqual); //evaluate the resultsAssert.AreEqual("5", txtResult.DisplayText,"Calculator is not showing 5");//close the applicationapp.Close();}

bij het uitvoeren van het bovenstaande script wordt exact hetzelfde resultaat (5) weergegeven. In plaats van te gaan door de handmatige stappen, gewoon schrijven het script en laat de tool zorgen voor de rest.

overschakelen van handmatige naar automatiseringstests

om te beginnen: stel twee vragen.

  1. wat te automatiseren?
  2. hoe automatiseren?

Wat Te Automatiseren?

  • Automatiseer de tests die nodig zijn voor een cyclus met frequente afgifte. Dat kan rooktesten, regressietesten en dergelijke omvatten. Automatiseer testen die de hele testcyclus versnellen. Vergeet niet, lagere handmatige interventie betekent snellere resultaten.
  • automatiseer tests op basis van technische en zakelijke prioriteit. Denk als volgt: zou de automatisering van deze test helpen het bedrijf? Zou het automatiseren van deze test helpen om technische complexiteit te vereenvoudigen? Als het antwoord ja is op een van beide vragen, automatiseren.
  • automatiseren op basis van bruikbaarheid. Sommige tests, zoals cross browser compatibiliteitstests werken gewoon beter wanneer ze handmatig worden uitgevoerd. Gereedschapsafhankelijkheid kan ook het automatiseringspotentieel van een bepaald testteam of organisatie beperken.

Lees meer: 10 Test Automation Best Practices to follow

hoe te automatiseren?

houd er om te beginnen rekening mee dat niet alle tests geautomatiseerd kunnen worden. Door vast te houden aan de drie strategieën in de vorige paragraaf, wordt het gemakkelijker om geautomatiseerd testen op een praktische manier te starten.

  • begin klein. 100% Automatisering is niet het doel, en ook niet mogelijk. Schrijf kleinere testcases omdat ze gemakkelijker te onderhouden en te hergebruiken zijn. Verplaats een klein aantal tests naar een automatiseringsplatform, voer de tests uit, analyseer de resultaten en beslis of het proces gunstig is gebleken voor het softwareontwikkelingsproces.
  • indien de werking significante voordelen oplevert, verplaats dan meer tests naar automatisering. Begin met het verplaatsen van tests niet alleen in volume, maar ook het verhogen van het type tests worden geautomatiseerd. Vergeet niet dat dit nog steeds een experimentele fase is. Het is mogelijk dat bepaalde tests inefficiënt blijken te zijn in de automatisering, en moeten worden verplaatst naar handmatige tests.
  • breng testgevallen in kaart met elke methode of functie om een betere testdekking te verkrijgen. Label uw testcases voor eenvoudiger identificatie, zodat het team snel kan weten welke tests te automatiseren. Dit helpt ook bij het implementeren van een betere rapportage.
  • begin bij het starten van automatiseringstests met het handmatig verkennen van nieuwe toepassingsgebieden. Maak vervolgens een risicoplan waarin wordt beschreven wat er moet worden geautomatiseerd, op basis van zakelijke en technische prioriteiten.
  • gebruik analytics om de voorkeuren van de eindgebruiker te bepalen. Maak een lijst met browsers en apparaten waarmee gebruikers waarschijnlijk toegang hebben tot de software. Dit helpt automatiseringstests de juiste interfaces te dekken en optimaliseert de softwareprestaties op de juiste gebruikerswegen.

probeer geautomatiseerd testen op Real Device Cloud

Test Automation Maintenance

eenmaal gemaakt, moeten automation testsuites worden onderhouden. Naarmate de software evolueert en de codebase uitbreidt, moeten automatiseringsscripts worden aangepast en bijgewerkt om nieuwe functies en functies op te nemen. Zelfs minuscule veranderingen in de gebruikersinterface kunnen testen verstoren en ervoor zorgen dat ze mislukken. Bij het ontwerpen van testcases moeten automatiseringstesters rekening houden met onderhoudsinspanningen en kosten.

de test automation maintenance approach work from two main perspectives:

  • testfout: bij foutopsporing van mislukte tests, zoekt u naar mogelijke onderhoudsproblemen. Is het testscript niet voldoende bijgewerkt? Verstoorde een verandering in de softwarecode het testscript? Dit is een eenvoudige manier om te bepalen welke gebieden onderhoud nodig hebben.
  • verandering in afhankelijkheden of hulpmiddelen: Heeft het team of de organisatie API ‘ s, rapportagetools, databases, enz.? Als dat zo is, moeten tests mogelijk worden gewijzigd of bijgewerkt om uit te lijnen met nieuwe toolsets. Om dit te bereiken, zullen ontwikkelaars en testers uiteraard getraind moeten worden op de nieuwe infrastructuur, zodat ze in de toekomst gelijke tred kunnen houden met de onderhoudsinspanningen.

Wat zijn de belangrijkste elementen van een effectieve testautomatiseringsstrategie?

automatiseringstests maken integraal deel uit van elk testecosysteem. Zonder over te stappen op een automatisering setup, uitgebreide testen wordt moeilijk, net als de vergadering van steeds kortere deadlines. Daarom is het belangrijk om automatiseringsprotocollen zo vroeg mogelijk te starten op een manier die handmatig testen in balans brengt en aanvult.

probeer de hierboven beschreven stappen en experimenteer voldoende om uit te vinden welke benaderingen optimale resultaten opleveren. Maak je geen zorgen om te falen een paar keer voor het vinden van de sweet spot die effectieve automatisering mogelijk maakt zonder afbreuk te doen aan menselijke validatie.

Write a Comment

Het e-mailadres wordt niet gepubliceerd.