Wat is datagedreven testen? Leer een raamwerk te creëren

Datagedreven testen

Datagedreven testen is een softwaretestmethode waarbij testgegevens worden opgeslagen in tabel- of spreadsheetformaat. Met datagestuurd testen kunnen testers één testscript invoeren dat tests kan uitvoeren voor alle testgegevens uit een tabel en de testuitvoer in dezelfde tabel kan verwachten. Het wordt ook wel tabelgestuurd testen of geparametriseerd testen genoemd.

Datagedreven raamwerk

Datagedreven raamwerk is een automatiseringstestframework waarin invoerwaarden uit gegevensbestanden worden gelezen en in variabelen in testscripts worden opgeslagen. Het stelt testers in staat om zowel positieve als negatieve testgevallen in één test op te nemen. Invoergegevens in een datagestuurd raamwerk kunnen worden opgeslagen in enkele of meerdere gegevensbronnen zoals .xls, .xml, .csv en databases.

Datagedreven raamwerk

Waarom datagedreven testen?

Datagedreven testen is belangrijk omdat testers vaak meerdere datasets voor één test hebben en het maken van individuele tests voor elke dataset tijdrovend kan zijn. Datagedreven testen helpt om gegevens gescheiden te houden van testscripts en dezelfde testscripts kunnen worden uitgevoerd voor verschillende combinaties van ingevoerde testgegevens en testresultaten kunnen efficiënt worden gegenereerd.

Voorbeeld:

Zo willen we het inlogsysteem testen met meerdere invoervelden met 1000 verschillende datasets.

Om dit te testen, kunt u de volgende verschillende benaderingen gebruiken:

Benadering 1) Maak 1000 scripts, één voor elke dataset, en voer elke test afzonderlijk één voor één uit.

Benadering 2) Wijzig handmatig de waarde in het testscript en voer het meerdere keren uit.

Benadering 3) Importeer de gegevens uit het Excel-blad. Haal testgegevens één voor één op uit Excel-rijen en voer het script uit.

In de gegeven drie scenario's zijn de eerste twee bewerkelijk en tijdrovend. Daarom is het ideaal om de derde benadering te volgen.

De derde benadering is dus niets anders dan een datagestuurd raamwerk.

Hoe u een datagedreven automatiseringsframework creëert

Datagedreven automatiseringsframework

Stel dat u de inlogfunctionaliteit van een applicatie wilt testen.

Stap 1) Identificeer de testgevallen

  • Invoer Correcte gebruikersnaam en wachtwoord – Inloggen succesvol
  • Voer een onjuiste gebruikersnaam en het juiste wachtwoord in – Inloggen mislukt
  • Voer de juiste gebruikersnaam en het onjuiste wachtwoord in – Inloggen mislukt

Stap 2) Maak gedetailleerde teststappen voor de bovenstaande 3 testgevallen

Testcase# BESCHRIJVING Teststappen Testgegevens verwachte resultaten
1 Vink Inloggen aan voor geldige inloggegevens
  1. Start de applicatie
  2. Voer gebruikersnaam wachtwoord in
  3. Klik op Oké
  4. Resultaten controleren
Gebruikersnaam: geldig wachtwoord: geldig Succesvol ingelogd
2 Controleer Inloggen op ongeldige inloggegevens
  1. Start de applicatie
  2. Voer gebruikersnaam wachtwoord in
  3. Klik op Oké
  4. Resultaten controleren
Gebruikersnaam: ongeldig wachtwoord: geldig Inloggen mislukt
3 Controleer Inloggen op ongeldige inloggegevens
  1. Start de applicatie
  2. Voer gebruikersnaam wachtwoord in
  3. Klik op Oké
  4. Resultaten controleren
Gebruikersnaam: geldig wachtwoord: ongeldig Inloggen mislukt

Stap 3) Testscript maken

Als u de teststappen in acht neemt, blijf dan gemeenschappelijk tijdens de drie teststappen. U moet een testscript maken om deze stappen uit te voeren

// This is Pseudo Code 

// Test Step 1: Launch Application 
driver.get("URL of the Application");  

// Test Step 2: Enter Username 
txtbox_username.sendKeys("valid"); 

// Test Step 3: Enter Password 
txtbox_password.sendKeys("invalid"); 

// Test Step 4: Check Results 
If (Next Screen) print success else Fail

Stap 4) Maak een Excel/csv met de invoertestgegevens

Datagedreven automatiseringsframework

Stap 5) Stap Wijzig de Scrip zodat deze wordt herhaald via de invoertestgegevens. De invoercommando's moeten ook worden geparametriseerd

// This is Pseudo Code
// Loop 3 Times
for (i = 0; i & lt; = 3; i++) {
    // Read data from Excel and store into variables
    int input_1 = ReadExcel(i, 0);
    int input_2 = ReadExcel(i, 1);

    // Test Step 1: Launch Application
    driver.get("URL of the Application");

    // Test Step 2: Enter Username
    txtbox_username.sendKeys(input_1);
    // Test Step 3: Enter Password

    txtbox_password.sendKeys(input_2);
    // Test Step 4: Check Results
    If(Next Screen) print success
    else Fail
}

Hierboven staan ​​slechts 3 testcases. Het testscript kan worden gebruikt om over de volgende testcases te loopen door testdatawaarden toe te voegen aan Excel

  • Voer een onjuiste gebruikersnaam en een onjuist wachtwoord in – Inloggen mislukt
  • Voer de juiste gebruikersnaam en wachtwoord in, blanco – Inloggen mislukt
  • Voer een lege gebruikersnaam en een leeg wachtwoord in – Inloggen mislukt

En zo voort

Best practices van datagedreven testen

Hieronder vindt u de beste testpraktijken voor datagestuurd testen:

  • Het is ideaal om realistische informatie te gebruiken tijdens het datagedreven testproces
  • Teststroomnavigatie moet in het testscript worden gecodeerd
  • Stimuleer virtuele API's met betekenisvolle gegevens
  • Gebruik data om dynamische beweringen te stimuleren
  • Test zowel positieve als negatieve uitkomsten
  • Hergebruik datagestuurde functionele tests voor beveiliging en prestaties

Voordelen van datagedreven testen

Data-Driven biedt veel voordelen, waaronder:

  1. Maakt het mogelijk om applicaties te testen met meerdere sets gegevenswaarden tijdens regressietests
  2. Testgegevens en verificatiegegevens kunnen in slechts één bestand worden georganiseerd en staan ​​los van de testcaselogica.
  3. Op basis van de tool is het mogelijk om de testscripts in één repository te hebben. Hierdoor zijn de teksten gemakkelijk te begrijpen, te onderhouden en te beheren.
  4. Acties en functies kunnen in verschillende tests worden hergebruikt.
  5. Sommige tools genereren automatisch testgegevens. Dit is handig wanneer grote hoeveelheden willekeurige testgegevens nodig zijn, waardoor tijd wordt bespaard.
  6. Data-driven testing kan elke fase van de ontwikkeling uitvoeren. Een data-driven test cares worden over het algemeen samengevoegd in één proces. Het kan echter in meerdere testcases worden gebruikt.
  7. Hiermee kunnen ontwikkelaars en testers een duidelijke scheiding aanbrengen tussen de logica van hun testcases/scripts en de testgegevens.
  8. Dezelfde testgevallen kunnen meerdere keren worden uitgevoerd, waardoor het aantal testgevallen en scripts wordt verminderd.
  9. Eventuele wijzigingen in het testscript hebben geen invloed op de testgegevens

Nadelen van datagestuurd testen

Enkele nadelen van de datagestuurde automatiseringstestmethode zijn:

  1. De kwaliteit van de test is afhankelijk van de automatiseringsvaardigheden van het implementatieteam
  2. Gegevensvalidatie is een tijdrovende taak bij het testen van grote hoeveelheden gegevens.
  3. Onderhoud is een groot probleem, omdat er een grote hoeveelheid codering nodig is voor datagestuurd testen.
  4. Technische vaardigheden op hoog niveau zijn vereist. Het kan zijn dat een tester een geheel nieuwe scripttaal moet leren.
  5. Er zal meer documentatie zijn. Meestal gerelateerd aan scriptbeheer, testinfrastructuur en testresultaten.
  6. Voor het maken en onderhouden van gegevensbestanden is een teksteditor zoals Kladblok vereist.

Conclusie

  • Data-driven is een testautomatiseringsframework dat testgegevens opslaat in een tabel- of spreadsheetformaat.
  • In een datagestuurd testautomatiseringsframework kunnen invoergegevens worden opgeslagen in enkele of meerdere gegevensbronnen zoals xls, XML, csv en databases.
  • Het maken van een individuele test voor elke dataset is een langdurig en tijdrovend proces. Het Data Driven Testing-framework lost dit probleem op door de gegevens gescheiden te houden van functionele tests.
  • Bij Data Driven Testing is het een ideale optie om realistische informatie te gebruiken
  • Hiermee kunt u toepassingen testen met meerdere sets gegevenswaarden tijdens Regressietesten
  • Het nadeel van deze methode is dat deze afhankelijk is van de automatiseringsvaardigheden van het implementatieteam