how automate repetitive qa tasks using excel macros
Deze uitgebreide gids over de macro-mentaliteit van QA legt uit hoe u herhaalde QA-taken kunt automatiseren met Excel-macro's met voorbeelden en schermafbeeldingen van Excel-bladen:
De behoefte aan automatisering in de wereld van vandaag is een van de essentiële en groeiende eisen. Tegenwoordig is iedereen op zoek naar iets dat zijn / haar werk of de rompslomp van routinewerk verlicht.
Tegenwoordig wil niemand een mobiele winkel bezoeken, in de rij staan om zijn telefoon op te laden, het is handig om nergens fysiek heen te gaan, maar de telefoon binnen een fractie van een seconde online op te laden.
Beginnend met het betalen van uw energierekeningen via internetbankieren, het online boeken en volgen van uw taxi, het online kopen van dingen op verschillende e-commercesites tot het gebruik van verschillende geautomatiseerde apparaten zoals wasmachines, magnetrons, geiser en de steeds evoluerende smartphones enz., De wereld van vandaag is echt verlangen naar slimme en geautomatiseerde producten in de vorm van diensten of gadgets.
In dit artikel gaan we niet in op het gebruik van een automatiseringstool of iets over kunstmatige intelligentie of machine learning, maar de focus zal liggen op het gebruik van Excel voor het automatiseren van de dagelijkse routinetaken van een QA.
Wat je leert:
QA's Macro Mindset
Handmatige testers hebben meestal de gedachte dat ik als handmatige tester niets te maken heb met iets technisch of met andere woorden, ‘kennis van coderen is niet mijn ding’. Dit is waarschijnlijk de verkeerde mentaliteit die onze groei als ingenieur zou kunnen stoppen.
Een handmatige QA heeft veel dagelijkse taken die repetitief kunnen zijn volgens dezelfde workflow. Een QA kan dergelijke taken heel goed identificeren en automatiseren met behulp van Excel-macro's en / of formules.
Dit kan op twee manieren helpen:
- Vermindert de tijd die nodig is voor handmatige inspanningen.
- Het inspireert de QA ook om te leren en zich aan te passen aan logisch denken en bijscholing op technisch vlak.
Dingen kunnen worden geautomatiseerd voor alle onderstaande testfasen:
- Testplanning en -schatting.
- Testontwerp of voorbereiding van een testcase.
- Test de statusupdate van de uitvoering.
- Testrapporten en statistieken maken.
Snelle contextinstelling
# 1) Een Excel opgeslagen met. xlsxm extensie is een macro-enabled Excel.
#twee) Selecteer om macro in Excel in te schakelen Bestand -> Opties -> Vertrouwenscentrum -> Instellingen Vertrouwenscentrum -> Macro-instellingen -> Selecteer keuzerondje 'Schakel alle macro's in' en vink het selectievakje 'Toegang tot het VBA-projectobjectmodel vertrouwen' aan. Klik OK.

# 3) Selecteer het menu Beeld -> Macro's -> Macro's opnemen -> Voer een activiteit uit en stop macro's U kunt de macro bewerken en de VBA-code bekijken die is opgenomen in het VBA-editor venster. Op dezelfde manier kunt u uw codes expliciet toevoegen om een macro te maken.

# 4) We zullen enkele voorbeelden bekijken van dergelijke repetitieve taken die goede kandidaten zouden kunnen zijn voor automatisering via Excel-macro's / -formules.
Voorbeeldgebruik # 1
Aan het einde van elke functionele fase moeten er enkele testgevallen worden geïdentificeerd voor regressie vanuit de functionele suite. Dit is een proces dat in elke sprint of iteratie moet worden gevolgd.
Oplossing
Om de inspanning van het identificeren en handmatig creëren van een regressiesuite te verminderen, kan het onderstaande innovatieve proces worden geïmplementeerd.
- U kunt een blad met functionele testgevallen maken met een extra kolom om de testgevallen / scenario's te markeren als Ja / Nee voor regressie.
- Maak vervolgens een macro voor hetzelfde, zodat wanneer de macro wordt uitgevoerd, alle testgevallen / scenario's met regressie gemarkeerd als ‘Ja’ naar een ander blad worden gekopieerd.
- Dit voorkomt dus een extra oefening om aan het einde van de sprint alle functionele testcases te doorlopen en vervolgens extra inspanningen te leveren om elke testcase in de regressiesuite te krijgen.
Demo
- Het eerste blad ‘FunctionalTestScenarios’ bevat alle functionele testscenario's / testcases.
- Er is een extra kolom ‘Opnemen in regressiesuite?’ toegevoegd aan het einde van de testkolommen om ‘Ja’ of ‘Nee’ te markeren door aan te geven of elk van de testscenario's in de regressiesuite moet worden opgenomen.
- Er is een tweede blad gemaakt als ‘RegressionSuite’ en dit haalt automatisch alle regressietestscenario's op via de macro.
- CTRL + SHIFT + S is ingesteld als de snelkoppeling voor de macro die moet worden uitgevoerd.
FunctionalTestScenarios

RegressieSuite

VBA-code (macro)
Verklaring van de code
- Sheets ('FunctionalTestScenarios'). Activeren: Als er meerdere bladen in Excel zijn, activeert de Activate-methode het eerste blad en daarom wordt de focus expliciet op het eerste blad gezet.
- Rijen ('1: 1'). Selecteer: Deze instructie selecteert de eerste rij voor alle kolommen van het eerste blad.
- Selectie.AutoFilter: Deze instructie past het filter toe op de geselecteerde eerste rij.
- Sheet1.Range ('$ A $ 1: $ D $ 38 ″). AutoFilter-veld: = 4, Criteria1: =' Ja ': Deze verklaring past het autofilter toe op kolom 4, d.w.z. ‘Opnemen in regressiesuite?’ en filtert de records eruit voor de waarde 'Ja'.
- Lastrow = Sheets ('FunctionalTestScenarios'). Cellen (Sheets ('FunctionalTestScenarios') .Rows.Count, 'A'). End (xlUp) .Row: Deze instructie haalt de laatste rij van het eerste blad op.
- Bereik ('A2: C2' & Lastrow). Selecteer: Deze instructie selecteert alle rijen en kolommen van het eerste blad met Opnemen in regressiesuite? = Ja.
- Selectie. Kopie: Deze verklaring kopieert alle geselecteerde records.
- Spreadsheets ('RegressionSuite'). Selecteer: Deze verklaring opent de 2ndvel.
- Bereik ('A2'). Selecteer: Deze instructie selecteert cel A2 van de 2ndvel.
- Selection.PasteSpecial Paste: = xlPasteValues, Operation: = xlNone, SkipBlanks _: = False, Transpose: = False: Deze instructie kopieert de door de bron geselecteerde celwaarde naar het doelblad. Het doelcelbereik bevat alleen de berekende waarden met behulp van de formules. Als alternatief kan ook Paste: = xlValues worden gebruikt. Er worden geen lege plekken overgeslagen. De broncellen worden niet getransponeerd en er worden geen wiskundige bewerkingen uitgevoerd.
Voorbeeldgebruik # 2
Er zijn momenten waarop u testcases moet hebben gemaakt voor bijvoorbeeld 100 staten of 1000 entiteiten (zoals 1000 verzekeringsformulieren). De teststappen voor deze enorme lijst van staten of entiteiten kunnen hetzelfde en repetitief zijn.
Desondanks kan de voorbereiding van testcases een van de meest tijdrovende activiteiten zijn, dat het hebben van het testcasedocument erg belangrijk is om de vereiste schattingen van de klant in te kopen en het QA-team elk van de testcases binnen te laten testen. de correct geschatte tijdlijnen.
Oplossing
In dergelijke gevallen kunnen lange uren van voorbereiding op testcases worden teruggebracht tot een fractie van seconden met behulp van de macro.
- U kunt een blad maken waarin u alleen de invoer opgeeft als een testcase-ID en de unieke lijst met entiteiten.
- Maak een macro die, wanneer uitgevoerd, repetitieve regels teststappen toevoegt voor elk van deze entiteiten en het testcase-document is binnen enkele seconden klaar zonder de aanzienlijke hoeveelheid handmatige inspanningen te hoeven besteden die nodig zijn om de testcases voor te bereiden.
Demo
- Het eerste blad ‘GetTestcasesASAP’ is het enige macrogestuurde blad hier dat aanvankelijk blanco is.
- Nog een blad ‘Voorbeeldinvoergegevens’ speelt geen rol in de macro. Het bevat alleen de voorbeeldinvoergegevens voor demonstratiedoeleinden.
- Kopieer en plak gegevens uit het gegevensbereik van de voorbeeldinvoer A2 tot en met B12 in het eerste blad.
- U kunt de invoergegevens kopiëren en plakken in het formaat - Kolom A = ……. en kolom B =.
- Zodra de invoergegevens klaar zijn, drukt u op CTRL + SHIFT + T als de sneltoetsen voor de macro die moet worden uitgevoerd.
- Teststappen worden automatisch toegevoegd voor elke testcase-id en het testcase-document wordt in slechts enkele seconden voorbereid.
GetTestcasesASAP

Voorbeeldinvoergegevens

Invoergegevens worden in het eerste blad geplakt.

Afbeelding terwijl macro wordt uitgevoerd door op CTRL + SHIFT + T te drukken.

VBA-code (macro)
Verklaring van de code
(a) Spreadsheets ('GetTestcasesASAP'). Activeren: Deze verklaring activeert het eerste blad.
automatisering testen interviewvragen en antwoorden pdf
(b) lastrow = Sheets ('GetTestcasesASAP'). Cellen (Sheets ('GetTestcasesASAP'). Rows.Count, 'A'). End (xlUp) .Row: Deze instructie haalt de laatste rij op. Deze keer krijgt het het totale aantal rijen voor de initiële testcase-id's die zojuist zijn toegevoegd als onderdeel van de invoergegevens vóór de uitvoering van de macro.
(c) Dim AddRows als geheel getal: Deze instructie declareert de AddRows-variabele als een integer datatype.
(d) AddRows = 5: Deze instructie initialiseert AddRows met 5. De variabele wordt gebruikt om een paar regels na elke testcase-id in te voegen, zodat statische teststappen voor elke testcase kunnen worden toegevoegd.
(e) Dim i als geheel getal: Deze instructie declareert variabele i als het gehele getal.
(f) ik = laatste rij : Deze instructie wijst de eerste laatste rij-telling toe aan de variabele i.
(g) Doe terwijl ik 1 : Dit terwijl de lus 6 lege rijen invoegt na elke testcase-id. Het herhalen begint vanaf de laatste testcase-id en loopt door tot de eerste testcase-id.
Rijen (i & ':' & i + AddRows) .Invoegen
ik = ik - 1
Lus
(h) ScreenUpdating = Waar : Deze verklaring maakt elke schermupdate zichtbaar. Daarom kunnen de prestaties van de macro enigszins traag zijn. Om de prestaties van de macro te optimaliseren, kunt u ook instellen ScreenUpdating = False
Als u ScreenUpdating instelt op False, verbetert u de macroprestaties en versnelt u de uitvoering ervan, maar u zult de periodieke veranderingen die plaatsvinden tijdens de uitvoering van de macro niet kunnen zien. In plaats daarvan worden de wijzigingen pas weergegeven als de uitvoering van de macro is voltooid.
(i) lastrow = Sheets ('GetTestcasesASAP'). Cellen (Sheets ('GetTestcasesASAP'). Rows.Count, 'A'). End (xlUp) .Row : Deze instructie berekent de laatste rij-telling opnieuw na toevoeging van nieuwe 6 rijen voor elke testcase.
(j) ik = 2
(k) Terwijl ik<= lastrow + 6
Spreadsheets ('GetTestcasesASAP'). Cellen (i, 3) = 'Valideer combinaties van koersen en factoren'
Sheets (“GetTestcasesASAP”) Cells (i + 1, 3) = “Batch-taakplanningen en runs.
Sheets ('GetTestcasesASAP'). Cells (i + 2, 3) = 'Afrekeningen van inbedrijfstellingsberekeningen'
Spreadsheets ('GetTestcasesASAP'). Cells (i + 3, 3) = 'Snelle en gedetailleerde offerte'
Sheets ('GetTestcasesASAP'). Cells (i + 4, 3) = 'Benefit illustration'
Spreadsheets ('GetTestcasesASAP'). Cellen (i + 5, 3) = 'Benefit summary validation'
ik = ik + 7
Van toepassing zijn
Dit fragment van de while-lus voegt 6 statische teststappen toe voor elke testcase door deze regels achter elke testcase-id in te stellen.
De statische teststappen die voor elke testcase zijn toegevoegd, zijn als volgt:
- Stap 1: Valideer combinaties van tarieven en factoren.
- Stap 2: Batch taakplanningen en runs.
- Stap 3: Inbedrijfstelling berekeningen afrekeningen.
- Stap 4: Snelle en gedetailleerde offerte.
- Stap 5: Voordeel illustratie.
- Stap 6: Voordelen beknopte validatie.
Bovendien duwt het ook de volgende testcase-id in de reeks naar 6 + 2, d.w.z. 8thrij.
Bijv .: Als TC1 op de eerste rij staat, worden de stappen opgeteld van de tweede tot de zevende rij en wordt TC2 naar de achtste rij geduwd. Een vergelijkbare manier wordt ook gevolgd voor de rest van de testcase-id's.
Voorbeeldgebruik # 3
Er zijn gevallen waarin een enorm gegevensbestand ergens in de buurt van 1000 records of meer wordt aangeleverd door de klant en het schrijven van testcases voor deze gigantische records en het in kaart brengen van elke gegevens tegen elke teststap een vervelende klus is. Macro kan de dagen van inspanning terugbrengen tot enkele minuten, waardoor de voorbereidingstijd van de testcase wordt bespaard.
Oplossing
Het door de klant verstrekte gegevensbestand kan naar het macro-geactiveerde blad worden gekopieerd. Bij het uitvoeren van de macro worden de testgevallen automatisch aangemaakt in het tweede blad door automatisch testgegevens toe te wijzen aan elke teststap voor elke testcase.
Demo
- Het eerste blad 'Invoer bestand' en het tweede blad ‘ReadyTestCases’ zijn de belangrijkste bijdragers aan de macro.
- Een ander blad ‘Sample -InputFile’ speelt geen rol in de macro. Het bevat alleen het voorbeeldinvoergegevensbestand voor demonstratiedoeleinden.
- Zodra de gegevens van ‘Sample-InputFile’ of door de klant aangeleverd gegevensbestand wordt gekopieerd naar het eerste blad, d.w.z. ‘InputFile’,
- Voer de macro uit en de testcases worden automatisch gemaakt voor elke testcase waarbij de order-ID's worden ingesteld als testcase-ID's ( Notitie: Vergeet niet om de unieke identificatie te plaatsen die als eerste kolom in het InputFile is geplaatst).
- Vanaf nu hebben we geen sneltoets ingesteld voor de macro-run, maar moeten we deze door de run-optie op het Beeld -> Macro's -> Selecteer de macro -> Bewerken -> VBA-venster.
- De macrocode verwerkt de toevoeging van de teststappen dynamisch. Het controleert uiteindelijk of een van de veldwaarden leeg is, zo ja, dan verwijdert het de teststap voor dezelfde als de stap die niet nodig zou zijn voor een leeg veld. Bijvoorbeeld, als je naar het onderstaande invoerbestand kijkt, de 2ndrecord heeft geen waarde voor Verzenddatum en de derde rij heeft geen waarde voor Regio. Daarom zullen na de macro-uitvoering de testgevallen die automatisch worden gemaakt geen teststappen hebben die overeenkomen met deze blanco waarden.
Voorbeeld- InputFile

InputFile: na het uitvoeren van het kopiëren en plakken van gegevens uit het voorbeeldinvoerbestand naar het invoerbestand
Notitie:
- Plak de kolomkop niet uit het blad ‘Sample-InputFile’.
- De geel gemarkeerde velden zijn blanco en daarom mogen de teststappen die overeenkomen met deze blanco waarden niet via de macro worden gemaakt.

Afbeelding van het ReadyTestcases-blad na het uitvoeren van een macro.

VBA-code (macro)
Verklaring van de code
# 1) ScreenUpdating = False: Schermupdates zijn niet zichtbaar door ScreenUpdating in te stellen op False.
# 2) ThisWorkbook.Sheets ('InputFile'). Activeren: Deze instructie activeert het blad ‘InputFile’.
# 3) nrow = ThisWorkbook.Sheets ('InputFile'). Cellen (Rows.Count, 1) .End (xlUp) .Row: Deze instructie krijgt het aantal rijen.
# 4) ncol = ThisWorkbook.Sheets ('InputFile'). Cellen (1, Columns.Count) .End (xlToLeft) .Column: Deze instructie krijgt het aantal kolommen.
# 5) ik = 1: Deze verklaring initialiseert i met 1.
# 6) j = 1: Deze instructie initialiseert j met 1.
# 7) For i = 1 Om te nrow
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (i, 1) = ThisWorkbook.Sheets ('InputFile'). Cells (i, 1)
Volgende i: Dit fragment van For-luskopie plakt de eerste kolomwaarde (Order-ID in dit geval) van het ‘InputFile’ -blad in elke rij van het blad ‘ReadyTestCases’ als de testcase-ID.
# 8) lastrow = Sheets ('InputFile'). Cellen (Sheets ('InputFile'). Rows.Count, 'A'). End (xlUp) .Row: Deze instructie herberekent het aantal laatste rijen van het InputFile.
# 9) AddRows = 21: Deze instructie wijst 21 toe aan de AddRows-variabele. Deze variabele is toegewezen aan 21 met de bedoeling om 21 extra lege rijen in te voegen voor elk testgeval voor het toevoegen van teststappen.
# 10) i = laatste rij: Deze instructie wijst het laatste aantal rijen toe aan i.
# 11) Doe terwijl ik 1
Rijen (i & “:” & i + AddRows - 1) .Invoegen
ik = ik - 1
Lus: Deze instructie voegt 20 rijen toe voor elke testcase, beginnend van onder naar boven.
# 12) lastrow = Sheets ('ReadyTestCases'). Cellen (Sheets ('ReadyTestCases'). Rows.Count, 'A'). End (xlUp) .Row: Deze instructie herberekent het laatste totale aantal rijen.
# 13) ThisWorkbook.Sheets ('ReadyTestCases'). Activeren: Het tweede blad wordt geactiveerd door deze verklaring.
# 14) Dimmen naar: Deze verklaring declareert variabele a.
# 15) a = 1: Deze verklaring kent 1 toe aan a.
# 16) Voor a = 1 tot lastrow
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 2)
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a + 1, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 3)
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a + 2, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 4)
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a + 3, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 5)
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a + 4, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 6)
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a + 5, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 7)
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a + 6, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 8)
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a + 7, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 9)
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a + 8, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 10)
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a + 9, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 11)
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a + 10, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 12)
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a + 11, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 13)
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a + 12, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 14)
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a + 13, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 15)
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a + 14, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 16)
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a + 15, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 17)
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a + 16, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 18)
ThisWorkbook.Sheets ('ReadyTestCases'). Cellen (a + 17, 3) = ThisWorkbook.Sheets ('InputFile'). Cellen (a, 19)
a = een + 21
Volgende a: Het fragment van de for-lus wijst de waarden van elke kolom van het InputFile-blad toe aan elke teststap voor elke testcase-id.
# 17) lastrow = Sheets ('ReadyTestCases'). Cellen (Sheets ('ReadyTestCases'). Rows.Count, 'C'). End (xlUp) .Row : Deze instructie herberekent het totale aantal rijen ReadyTestCases-blad na toevoeging van 21 rijen voor elke testcase-ID.
# 18) a = 1: Deze instructie kent 1 toe aan variabele a.
# 19) ThisWorkbook.Sheets ('ReadyTestCases'). Activeren: Deze instructie activeert het ReadyTestCases-blad.
# 20) Voor a = 1 tot lastrow
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a, 2) = 'Controleer orderdatum'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 1, 2) = 'Controleer verzenddatum'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 2, 2) = 'Verifieer verzendmodus'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 3, 2) = 'Verifieer klant-ID'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 4, 2) = 'Verifieer klantnaam'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 5, 2) = 'Verifieer segment'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 6, 2) = 'Verify City'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 7, 2) = 'Verify State'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 8, 2) = 'Controleer postcode'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 9, 2) = 'Verifieer regio'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 10, 2) = 'Verifieer product-ID'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 11, 2) = 'Verifieer categorie'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 12, 2) = 'Verifieer subcategorie'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 13, 2) = 'Verifieer productnaam'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 14, 2) = 'Verkoop verifiëren'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 15, 2) = 'Controleer hoeveelheid'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 16, 2) = 'Korting verifiëren'
ThisWorkbook.Sheets ('ReadyTestCases'). Cells (a + 17, 2) = 'Verifieer winst'
a = een + 21
Volgende a - Dit fragment van de For-lus voegt statische teststappen toe voor elke testcase.
# 21) Bankrijen verwijderen ('ReadyTestCases'): Roep de functie Deleteblankrow-functie aan voor ‘Ready TestCases’-sheet.
# 22) ScreenUpdating = Waar: Hiermee kunt u de schermupdates visualiseren als onderdeel van de macro-uitvoering.
# 23) Sub-verwijderbare bankrijen (ByVal-blad als tekenreeks): De onderstaande code is voor de functie Deletblankrows die dynamisch controleert of er lege waarden in de datavelden staan. Zo ja, dan wordt de teststap die voor de lege gegevens is gemaakt, beurtelings verwijderd door dergelijke rijen te verwijderen.
# 24) Dim wkn als werkblad: Deze verklaring declareert wks-variabele als werkblad.
# 25) Stel wks = ThisWorkbook.Worksheets (Sheet) in: Deze instructie wijst het wks-blad toe dat is opgegeven als invoerparameter.
# 26) Dim ik zolang: Deze voering verklaart I as Long.
# 28) wkn. Activeren: Deze verklaring activeert het blad.
# 29) lastrow = wks.Cells (Sheets (Sheet) .Rows.Count, “C”). End (xlUp) .Row: Deze instructie haalt de telling van de laatste rij op het blad op.
# 30) Voor i = 1 Laatste rij: De For-lus herhaalt zich van de eerste rij tot de laatste rij.
# 31) Als WorksheetFunction.CountBlank (Range (Cells (i, 2), Cells (i, 3))) = 1 Then: Deze voorwaarde controleert of voor elke rij de tweede en derde kolom meetellen voor de blanco waarde als 1.
# 32) Selectie.Rijen (i) .EntireRow.Delete: Deze instructie verwijdert de geselecteerde rij als de voorwaarde waar is.
Voorbeeldgebruik # 4
De Excel-formules in de Test Estimates-sjabloon kunnen ook met een macro worden uitgevoerd. Er wordt ook een diagram gemaakt met behulp van de macro.
Demo
- Er wordt een blad met ‘Schattingen’ bijgehouden waarmee gebruikers geschatte uren voor testfasen kunnen toevoegen, beginnend bij het begrijpen van zakelijke vereisten tot het maken, uitvoeren en herwerken van het bijwerken van testscripts.
- De groen gemarkeerde cellen zijn ingeschakeld voor gebruikersinvoer. Dit zijn de invoervelden.
- De blauw gemarkeerde zijn automatisch afgeleid.
- Het tweede blad bevat Rework-metrieken en het derde blad bevat Complexiteits-metrieken.
- De gebruiker voert de complexiteitsgrootte in in termen van H, L en M in kolom D, en de kolom E haalt automatisch de factor voor complexiteit op met behulp van de vlookup van de ‘Complexiteitsstatistieken’ vel.
- De gebruiker voert de herbewerkingsgrootte in termen van H, L en M in kolom F in, en de kolom G haalt automatisch de factor voor complexiteit op met behulp van de vlookup van het blad ‘Metrische gegevens herwerken’.
- De factoren worden vervolgens in kolom H gebruikt om de totale schattingsinspanningen op te halen.
- Een andere macro bereidt de grafiek voor en voegt deze toe aan het vierde blad ‘Grafiek’.
- De opgenomen formules worden aangestuurd via de macro met behulp van de sneltoets CTRL + SHIFT + E.
Schattingen

Herwerk statistieken

Complexiteitsstatistieken

Grafiek

VBA-code (macro) voor schattingenblad
Verklaring van de code
(a) ThisWorkbook.Sheets (1) .Activat: Het eerste blad ‘Schattingen’ wordt geactiveerd.
(b) Bladen ('Schattingen'). Cellen (4, 8) = Bladen ('Schattingen'). Cellen (4, 2) * Bladen ('Schattingen'). Cellen (4, 3) * Bladen ('Schattingen' ). Cellen (4, 5) * Bladen ('Schattingen'). Cellen (4, 7): Deze instructie berekent kolom B * kolom C * kolom E * kolom G en wijst toe aan kolom H voor rij 4.
(c) Bladen ('Schattingen'). Cellen (5, 8) = Bladen ('Schattingen'). Cellen (5, 2) * Bladen ('Schattingen'). Cellen (5, 3) * Bladen ('Schattingen' ) .Cellen (5, 5) * Bladen ('Schattingen'). Cellen (5, 7): Deze instructie berekent kolom B * kolom C * kolom E * kolom G en wijst toe aan kolom H voor rij 5.
(d) Bladen ('Schattingen'). Cellen (6, 8) = Bladen ('Schattingen'). Cellen (6, 2) * Bladen ('Schattingen'). Cellen (6, 3) * Bladen ('Schattingen' ). Cellen (6, 5) * Bladen ('Schattingen'). Cellen (6, 7): Deze instructie berekent kolom B * kolom C * kolom E * kolom G en wijst toe aan kolom H voor rij 6.
(e) Bladen ('Schattingen'). Cellen (7, 8) = Bladen ('Schattingen'). Cellen (7, 2) * Bladen ('Schattingen'). Cellen (7, 3) * Bladen ('Schattingen' ). Cellen (7, 5) * Bladen ('Schattingen'). Cellen (7, 7): Deze instructie berekent kolom B * kolom C * kolom E * kolom G en wijst toe aan kolom H voor rij 7.
(f) Bladen ('Schattingen'). Cellen (8, 8) = Bladen ('Schattingen'). Cellen (8, 2) * Bladen ('Schattingen'). Cellen (8, 3) * Bladen ('Schattingen' ). Cellen (8, 5) * Bladen ('Schattingen'). Cellen (8, 7): Deze instructie berekent kolom B * kolom C * kolom E * kolom G en wijst toe aan kolom H voor rij 8.
(g) Bladen ('Schattingen'). Cellen (9, 8) = Bladen ('Schattingen'). Cellen (9, 2) * Bladen ('Schattingen'). Cellen (9, 3) * Bladen ('Schattingen' ) .Cellen (9, 5) * Bladen ('Schattingen'). Cellen (9, 7): Deze instructie berekent kolom B * kolom C * kolom E * kolom G en wijst toe aan kolom H voor rij 9.
(h) Bladen ('Schattingen'). Cellen (10, 8) = Bladen ('Schattingen'). Cellen (10, 2) * Bladen ('Schattingen'). Cellen (10, 3) * Bladen ('Schattingen' ) .Cellen (10, 5) * Bladen ('schattingen'). Cellen (10, 7): Deze instructie berekent kolom B * kolom C * kolom E * kolom G en wijst toe aan kolom H voor rij 10.
(i) Spreadsheets ('Schattingen'). Cellen (11, 8) = Spreadsheets ('Schattingen'). Cellen (4, 8) + Spreadsheets ('Schattingen'). Cellen (5, 8) + Spreadsheets ('Schattingen' ). Cellen (6, 8) + bladen ('schattingen'). Cellen (7, 8) + bladen ('schattingen'). Cellen (8, 8) + bladen ('schattingen'). Cellen (9, 8) + Bladen ('schattingen'). Cellen (10, 8): Deze instructie vat cel H2 tot H10 samen en wijst de uiteindelijke waarde toe aan H11. Deze waarde geeft de totale inspanning (in uren).
(j) Voor i = 3 tot 10
Bladen ('Grafiek'). Cellen (i - 2, 1) = Bladen ('Schattingen'). Cellen (i, 1)
Bladen ('Grafiek'). Cellen (i - 2, 2) = Bladen ('Schattingen'). Cellen (i, 8)
Volgende I: Deze For Loop-kopie plakt gegevens uit kolom 1 en kolom 8 van het schattingsblad naar het diagramblad. Dit wordt gedaan zodat de gegevens uit het grafiekblad kunnen worden gebruikt om een cirkeldiagram voor te bereiden. Er is nog een macro geschreven voor blad 'Grafiek' die een grafiek voor hetzelfde voorbereidt.
VBA-code (macro) voor grafiekenblad
Verklaring van de code
- Dim rng als bereik: Deze instructie declareert rng als een bereikwaarde.
- Dim is als object: Deze instructie declareert est als objectwaarde.
- Deze Workbook.Sheets ('Chart'). Activeer: Deze verklaring activeert het kaartblad.
- Stel rng = ActiveSheet.Range ('A2: B8') in: Het bereik van A2 tot B8 van Sheet-Chart is ingesteld op rng.
- Stel est = ThisWorkbook.Sheets ('Grafiek'). Shapes.AddChart2: Deze instructie wordt gebruikt om het maken van een nieuwe grafiek op de bladgrafiek te starten.
- est.Chart.SetSourceData Bron: = rng: Deze verklaring biedt een gegevensbereik voor contemplatie in de grafiek.
- est.Chart.ChartType = xl3DPieExploded: Het diagramtype is ingesteld op 3D Pie of Exploded type. xl3DPieExploded helpt om dit diagramtype te bepalen.
- est.Chart.HasTitle = Waar: Deze verklaring verifieert of de grafiek al een titel heeft.
- est.Chart.ChartTitle.Text = 'Testschattingen': Deze verklaring overschrijft de titel van het diagram naar ‘Test schattingen’.
- est.Chart.SetElement (msoElementDataLabelCenter): Deze instructie stelt de gegevenslabels en legenda's voor het diagram in.
- est.Chart.SetElement (msoElementLegendBottom): Met deze instructie worden de gegevenslabels onder aan het diagram geplaatst.
Manieren om een macro uit te voeren
Een macro kan worden uitgevoerd op 4 manieren:
- Gebruik het pictogram Uitvoeren in het VBA-editorvenster.
- Selecteer de menuoptie in het Excel-bestand Beeld -> Macro's -> Bekijk macro -> Selecteer de macronaam en selecteer Uitvoeren.
- Maak een snelkoppeling tijdens het maken van de macro, en door op de sneltoetsen te drukken, wordt de macro uitgevoerd.
- De meest gebruiksvriendelijke manier is het maken van een actieknop ( Bijv. Commandoknop) waaraan een macro zou worden toegewezen die, wanneer erop wordt geklikt, de uitvoering van de macro zou activeren.
We zullen zien hoe u een opdrachtknop kunt toevoegen en een macro aan de knop kunt toewijzen. De knop wanneer erop wordt geklikt, zal de uitvoering van de macro uitvoeren.
Voeg een formuliercontroleknop toe in Excel
- Selecteer Menu ‘Ontwikkelaar’ -> Invoegen -> Formulierbesturing -> Knop pictogram selecteren en voeg de knop toe aan het Excel-blad.
- Voer de naam en tekstwaarde voor de knop in. De naam van de knop wordt gebruikt in de VBA-codering om deze opdrachtknop te herkennen, terwijl de tekst wordt weergegeven op de knop.

- Klik nu met de rechtermuisknop op de opdrachtknop en selecteer de optie ‘Macro toewijzen’ , de lijst met macro's verschijnt, selecteer de naam van de macro die u wilt toewijzen.
- Zodra de macro is toegewezen, activeert het klikken op de knop de uitvoering van de toegewezen macro.
- In dit voorbeeld is de ‘Testschattingen opvragen’ knop is toegewezen aan ‘Schattingen’ macro.
- Evenzo zullen we een opdrachtknop voor het diagramblad toevoegen en de macro voor diagram toewijzen om het genereren van het diagram te activeren.

- Klikken op het ‘Grafiek maken’ knop voert de macro voor Chart uit. Dit verbetert de bruikbaarheid van de macro.
Gevolgtrekking
Dit waren enkele real-time voorbeelden die deel konden uitmaken van de dagelijkse routine van de tester op het werk, die slim konden worden geïdentificeerd voor het genereren van macro's en daarom veel tijd konden besparen op irrelevante en repetitieve handmatige inspanningen door de taak te automatiseren.
De relevante schermafbeeldingen, de VBA-code en gedetailleerd begrip van elke regel code zijn in dit artikel behandeld. Ik hoop dat dit een goede voorsprong zal geven voor de QA's over hoe je jezelf kunt transformeren van een handmatige testmentaliteit naar een macro-mentaliteit.
Voor de mensen die geloven dat het werk van handmatige testers puur een niet-technische baan is, laten we bewijzen dat ze ongelijk hebben door de vereiste toepassing van technische kennis om de productiviteit te verbeteren.
Auteur: Deze diepgaande nuttige post is geschreven door Shobha D. Ze werkt als projectleider en heeft meer dan 9 jaar ervaring in Manual, Automation (IBM RFT en Selenium met Java) en API-testen.
Aanbevolen literatuur
- Werken met VBScript Excel-objecten
- Selenium Framework maken en toegang krijgen tot testgegevens vanuit Excel - Selenium Tutorial # 21
- 5 meest voorkomende testtaken Testers vergeten te testen (en hoe ze dat kunnen vermijden)
- Top 5 dingen die een tester moet hebben om te Excel (en de veranderende perspectieven van de softwaretester)
- JIRA-subtaak met voorbeeld (JIRA-subtaak maken)