Testautomatiseringsframework: wat is, architectuur en typen

Wat is een raamwerk voor automatiseringstesten?

A Kader voor testautomatisering is een reeks richtlijnen zoals coderingsstandaarden, verwerking van testgegevens, behandeling van objectrepository enz. die, wanneer gevolgd tijdens automatiseringsscripting, gunstige resultaten oplevert, zoals meer hergebruik van code, hogere portabiliteit, lagere onderhoudskosten voor scripts enz. Dit zijn slechts richtlijnen en niet reglement; ze zijn niet verplicht en je kunt nog steeds scripten zonder following de richtlijnen. Maar u zult de voordelen van een raamwerk missen.

Waarom heb je een raamwerk nodig?

Laten we een voorbeeld bekijken om te begrijpen waarom u een raamwerk nodig heeft.

Ik weet zeker dat u een seminar/lezing/conferentie hebt bijgewoond waar de deelnemers werd gevraagd de volgende stappen te observerenwing richtlijnen –

  • Deelnemers dienen 5 minuten voor aanvang van een lezing op hun plaats te zitten.
  • Neem een ​​notitieboekje en een pen mee om aantekeningen te maken.
  • Lees de samenvatting, zodat je een idee hebt waar de presentatie over gaat.
  • Mobiele telefoons moeten op stil staan.
  • Gebruik de uitgangspoorten aan de andere kant van de spreker als u midden in de lezing wilt vertrekken.
  • Aan het einde van de sessie worden vragen gesteld.

Denkt u dat u een seminar kunt houden? ZONDER het naleven van deze richtlijnen👍

Het antwoord is een grote JA! Zeker, u kunt een seminar/lezing/conferentie/demonstratie houden zonder de bovenstaande richtlijnen. Sterker nog, sommigen van ons zullen ze niet volgen, ook al zijn ze vastgelegd!

Maar als de richtlijnen worden gevolgd, zal dit resulteren in een gunstig resultaat, zoals minder afleiding van het publiek tijdens lezingen, een groter deelnemersbehoud en een beter begrip van het onderwerp.

Op grond van het bovenstaande is een Het raamwerk kan worden gedefinieerd als een reeks richtlijnen die, wanneer ze worden gevolgd, gunstige resultaten opleveren.

Soorten testautomatiseringsframeworks

Hieronder staan ​​de verschillende soorten geautomatiseerde testframeworks:

  • 1) Lineaire scripting
  • 2) Het architectuurframework voor de testbibliotheek.
  • 3) Datagedreven Testen Kader.
  • 4) Het trefwoordgestuurde of tabelgestuurde testframework.
  • 5) Het hybride testautomatiseringsframework.

Laten we ze in detail bekijken –

1) Lineaire scripting – Opnemen en afspelen

Het is het eenvoudigste van alle Testing Automation Frameworks en staat ook wel bekend als “Opnemen en afspelen”. In deze Automatisering testen Framework, Tester registreert handmatig elke stap (navigatie en gebruikersinvoer), voegt controlepunten in (validatiestappen) in de eerste ronde. Vervolgens speelt hij het opgenomen script af in de volgende rondes.

Voorbeeld: Overweeg om in te loggen Aanvraag vluchtreservering en controleren of de applicatie is geladen bij succesvol inloggen. Hier registreert de tester eenvoudig de stappen en voegt validatiestappen toe.

SystemUtil.Run "flight4a.exe","","","open"
Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
Dialog("Login").WinEdit("Password:").Set "Mercury"
Dialog("Login").WinButton("OK").Click
'Check Flight Reservation Window has loaded after successful log-on
Window("Flight Reservation").Check CheckPoint("Flight Reservation")

voordelen

  • Snelste manier om een ​​script te genereren
  • Automatiseringsexpertise is niet vereist
  • De eenvoudigste manier om de functies van de Testtool te leren kennen

Nadelen

  • Weinig hergebruik van scripts
  • Testgegevens zijn hardgecodeerd in het script
  • Onderhoud nachtmerrie

2) Het architectuurframework voor de testbibliotheek

Het is ook bekend als “Gestructureerde scripting” or "Functionele ontleding".

In dit Automation Testing Framework worden testscripts in eerste instantie vastgelegd door “Opnemen en afspelenmethode. Later worden algemene taken binnen de scripts geïdentificeerd en gegroepeerd in Functies. Deze functies worden aangeroepen door het zogenaamde hoofdtestscript bestuurder op verschillende manieren testgevallen creëren.

Voorbeeld: Met hetzelfde voorbeeld als hierboven ziet de functie voor het inloggen op Vluchtreservering er als volgt uit.

Function Login()
SystemUtil.Run "flight4a.exe","","","open"
Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
Dialog("Login").WinEdit("Password:").Set "Mercury"
Dialog("Login").WinButton("OK").Click
End Function

Nu roept u deze functie in het hoofdscript als volgt aan

Call Login()
---------------------------
Other Function calls / Test Steps.
---------------------------

voordelen

  • Bij Structured Scripting wordt een hoger niveau van hergebruik van code bereikt in vergelijking met "Opnemen en afspelen"
  • De automatiseringsscripts zijn minder duur om te ontwikkelen vanwege het hogere hergebruik van code
  • Eenvoudiger scriptonderhoud

Nadelen

  • Technische expertise is nodig om scripts te schrijven met behulp van Test Library Framework
  • Er is meer tijd nodig om testscripts te plannen en op te stellen.
  • Testgegevens zijn hard gecodeerd in de scripts

3) Het datagestuurde testframework

In dit kader, terwijl Testgeval logica zit in testscripts, de testgegevens worden gescheiden en buiten de testscripts gehouden. Testgegevens worden gelezen uit de externe bestanden (Excel-bestanden, tekstbestanden, CSV-bestanden, ODBC-bronnen, DAO-objecten, ADO-objecten) en worden in de variabelen in het testscript geladen. Variabelen worden zowel voor invoerwaarden als voor verificatiewaarden gebruikt. Testscripts zelf worden voorbereid met behulp van Linear Scripting of Test Library Framework.

Voorbeeld: Het ontwikkelen van het inlogscript voor vluchtreserveringen met behulp van deze methode omvat twee stappen.

Stap 1) Maak een test – Gegevensbestand dat Excel, CSV of een andere databasebron kan zijn.

Agentnaam Wachtwoord
Jimmy kwik
Tina KWIK
Bill Kwik

Stap 2) Ontwikkel een testscript en verwijs naar uw testgegevensbron.

SystemUtil.Run "flight4a.exe","","","open"
Dialog("Login").WinEdit("Agent Name:").Set DataTable("AgentName", dtGlobalSheet)
Dialog("Login").WinEdit("Password:").Set DataTable("Password", dtGlobalSheet)
Dialog("Login").WinButton("OK").Click
'Check Flight Reservation Window has loaded
Window("Flight Reservation").Check CheckPoint("Flight Reservation")
**Note "dtGlobalSheet" is the default excel sheet provided by QTP.

voordelen

  • Wijzigingen in de testscripts hebben geen invloed op de testgegevens
  • Testgevallen kunnen worden uitgevoerd met meerdere gegevenssets
  • Er kan een verscheidenheid aan testscenario's worden uitgevoerd door eenvoudigweg de testgegevens in het externe gegevensbestand te variëren

Nadelen

  • Er is meer tijd nodig om zowel testscripts als testgegevens te plannen en voor te bereiden

4) Het trefwoordgestuurde of tabelgestuurde testframework

De ontwikkeling van een trefwoord- of tabelgestuurd automatiseringsframework vereist gegevenstabellen en trefwoorden, onafhankelijk van de testautomatiseringstool gebruikt om ze uit te voeren. Tests kunnen met of zonder de Applicatie worden ontworpen. Bij een trefwoordgestuurde test wordt de functionaliteit van de te testen applicatie gedocumenteerd in een tabel en in stapsgewijze instructies voor elke test.

Er zijn 3 basiscomponenten van een Keyword Driven Framework viz. Trefwoord , Applicatiekaart , Componentfunctie.

Wat is een trefwoord?

Trefwoord is een actie die kan worden uitgevoerd op een GUI-component. Ex. Voor GUI-componenttekstbox sommige trefwoorden (actie) zijn InputText, VerifyValue, VerifyProperty enzovoort.

Wat is de applicatiekaart?

Een applicatiekaart biedt benoemde referenties voor GUI-componenten. Applicatiekaarten zijn niets anders dan “Object-opslagplaats"

Wat is componentfunctie?

Componentfuncties zijn functies die de GUI-component actief manipuleren of ondervragen. Een voorbeeld van een functie is: klikken op een webknop met alle foutafhandeling, gegevens invoeren in een webbewerking met alle foutafhandeling. Componentfuncties kunnen toepassingsafhankelijk of onafhankelijk zijn.

Voorbeeld: Laten we hetzelfde voorbeeld nemen om de Keyword View te begrijpen. Het gaat om 2 stappen

Stap 1: Gegevenstabel maken (anders dan de testgegevenstabel gemaakt in Data Driven Framework). Deze gegevenstabel bevat acties die moeten worden uitgevoerd op GUI-objecten en eventuele bijbehorende argumenten. Elke rij vertegenwoordigt één teststap.

Object Actie
(Toepassingskaart) (SLEUTELWOORDEN) Argument
WinEdit(agentnaam) Zet de Guru99
WinEdit (wachtwoord) Zet de kwik
Winknop(OK) Klik
Venster (vluchtreservering) Controleren Bestaat


Stap 2: Code schrijven in de vorm van componentfuncties.

Nadat u uw gegevenstabel(len) heeft gemaakt, schrijft u eenvoudigweg een programma of een reeks scripts die elke stap inlezen, voert u de stap uit op basis van het trefwoord in het veld Actie, voert u een foutcontrole uit en registreert u alle relevante informatie. Dit programma of deze set scripts zou er ongeveer zo uitzien als de onderstaande pseudocode:

Function main()
{
  Call ConnectTable(Name of the Table) { //Calling Function for connecting to the table.
    while (Call TableParser() != -1) //Calling function for Parsing and extracting values from the table.
    {
      Pass values to appropriate COMPONENT functions.Like Set(Object Name, Argument) ex.Set(Agent Name, Guru99).
    }
  }
  Call CloseConnection() //Function for Closing connection after all the operation has been performed.
} //End of main

Dat is alles voor Keyword Driven Framework.

Het voordeel van Keyword Driven Framework is dat de trefwoorden herbruikbaar zijn. Om dit te begrijpen, moet u overwegen dat u de inlogbewerking voor een website, bijvoorbeeld Yahoo, wilt verifiëren MAIL. De tabel ziet er als volgt uit:

Object Actie
(TOEPASSINGSKAART) (TREFWOORD) Argument
WebEdit(gebruikersnaam) Zet de abc@yahoo.com
WebEdit (wachtwoord) Zet de xxxxx
Webknop(OK) Klik
Venster (Yahoo Mail) Controleren massa

Als u in dit geval ziet dat de trefwoordenset, klik en verificatie hetzelfde blijven, waarvoor de overeenkomstige componentfuncties al zijn ontwikkeld. Het enige wat u hoeft te doen is de Application Mapping (Object Repository) van eerdere vluchtreserveringen naar Yahoo te wijzigen Mail , met een verandering in argumentwaarden en hetzelfde script zal werken!

voordelen

  • Biedt hoge herbruikbaarheid van code
  • Testinstrument onafhankelijk
  • Onafhankelijk van de applicatie die wordt getest, werkt hetzelfde script voor AUT (met enkele beperkingen)
  • Tests kunnen worden ontworpen met of zonder AUT

Nadelen

  • Omdat de initiële investering behoorlijk hoog is, kunnen de voordelen hiervan alleen worden gerealiseerd als de applicatie aanzienlijk groot is en de testscripts een flink aantal jaren moeten worden onderhouden.
  • Er is een hoge mate van automatiseringsexpertise vereist om het Keyword Driven Framework te creëren.

LET OP: Hoewel Micro Focus UFT zichzelf adverteert als KeyWord Driven Framework, kunt u met HP UFT geen volledige onafhankelijkheid van testtools en applicaties bereiken.

5) Het hybride testautomatiseringsframework

Zoals de naam doet vermoeden is dit raamwerk de combinatie van een of meer Automation Frameworks die hierboven zijn besproken, waarbij ze hun sterke punten benutten en proberen hun zwakke punten te verzachten. Het hybride test-QA-automatiseringsframework is waar de meeste testautomatiseringsframeworks in de loop van de tijd en meerdere projecten naar evolueren. Maximale industrie gebruikt Keyword Framework in een combinatie van functie-decompositiemethoden.

PS: Andere automatiseringsframeworks die het vermelden waard zijn, zijn

Modulariteitsframework testen

In dit raamwerk wordt een gemeenschappelijke taak in het testscript gegroepeerd als modules.

Voorbeeld: Met behulp van acties in QTP kunt u modulaire scripts maken

Voorbeeldscript voor inloggen

SystemUtil.Run "flight4a.exe","","","open"
Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
Dialog("Login").WinEdit("Password:").Set "Mercury"
Dialog("Login").WinButton("OK").Click
'End of Script

Nu kunt u deze actie in het hoofdscript als volgt aanroepen:

RunAction ("Login[Argument]", oneIteration)

Bedrijfsprocestesten (BPT)

Deze automatiseringsframeworks verdelen grote bedrijfsprocessen in componenten die meerdere keren kunnen worden hergebruikt in dezelfde of verschillende testscripts. Het bedrijfsproces voor het boeken van een vlucht is bijvoorbeeld opgesplitst in componenten zoals Inloggen, Vluchten zoeken, Boeken, Betaling en uitloggen, die opnieuw kunnen worden gebruikt in hetzelfde bedrijfsproces of in verschillende processen. Bovendien faciliteert BPT een nauwere coördinatie tussen het MKB en automatiseringsingenieurs.

Voordelen van de testautomatiseringsframeworkarchitectuur

Following zijn de voordelen van de raamwerkarchitectuur voor testautomatisering:

  • Een raamwerk voor testautomatisering helpt de risico's en kosten te verlagen
  • Het verbetert de efficiëntie van tests
  • Het helpt de onderhoudskosten te verlagen
  • Maakt hergebruik van code mogelijk
  • Hiermee wordt een maximale testdekking bereikt
  • Het maximaliseert de functionaliteit van de applicatie
  • Helpt duplicatie van testgevallen te verminderen
  • Het helpt de testefficiëntie en -prestaties te verbeteren met testautomatisering

Samengevat

  • Een Framework is een reeks richtlijnen zoals coderingsstandaarden, verwerking van testgegevens, behandeling van objectrepository enz. die, wanneer gevolgd tijdens automatiseringsscripting, gunstige resultaten oplevert, zoals meer hergebruik van code, hogere portabiliteit, lagere onderhoudskosten voor scripts, enz.
  • Lineaire scripting is het eenvoudigste van alle automatiseringsframeworks en wordt ook wel “Record & Playback” genoemd.
  • Test Library Architecture Framework wordt ook wel ‘Structured Scripting’ of ‘Functional Decomposition’ genoemd.
  • In Data-Driven Testing Framework bevindt de testcaselogica zich in testscripts en worden de testgegevens gescheiden en buiten de testscripts gehouden.
  • Het Keyword-Driven of Table-Driven-framework vereist de ontwikkeling van datatabellen en trefwoorden, onafhankelijk van de testautomatiseringstool die wordt gebruikt om deze uit te voeren.
  • Het Hybrid Automation Framework is waar de meeste testautomatiseringsframeworks in de loop van de tijd en meerdere projecten naartoe evolueren.