TestAutomatisering & PerformanceTesten

Wat is het Bug Filter?

Een algemeen gedeelde opvatting over het doel van testen binnen software ontwikkeling is “het tegenhouden van bugs en het afdekken van risico’s”. Over hoe dit vervolgens het best valt te organiseren, bestaan er echter vaak veel meningsverschillen.

In deze 2 minute snack sta ik graag even stil bij een inzicht dat verhelderend werkt in deze discussie, vooral wanneer het budget van belang is… Altijd dus. Mijn dank hiervoor gaat mede uit naar Katrina Clokie, via wie ik de term ‘Het Bug Filter’ als eerste heb gehoord.

De Test Automatiserings Piramide van Cohn/Crispin/Huggins kennen we ondertussen allemaal wel. Maar juist op de plek waar er beslissingen gemaakt worden op budgettair vlak, komt deze piramide nogal abstract over. Een veelgehoorde uitspraak is dan ook, “ja, maar als je de frontend test, dan test je indirect ook de backend toch”? Dit heeft dan vaak als uitkomst dat de, in mijn ogen foute, conclusie luidt: “Alleen (geautomatiseerde) testen op de frontend zou voldoende moeten zijn”.

Wij hebben het daarom graag over het Bug Filter. Deze wordt soms gevisualiseerd als een omgekeerde test piramide, maar in dit geval stellen we de Build en Deployment Pipeline als een echte pijplijn voor. Elke code check-in start links, gaat door de pijplijn en komt er rechts als het product uit. Om te controleren of de kwaliteit voldoende is kunnen we zoveel filters plaatsen als we willen. De zogenaamde bugfilters. Ze bestaan in drie soorten:

De Filters

Als eerste hebben we high-speed filters: Ze zijn snel te plaatsen, ze veroorzaken nauwelijks oponthoud wanneer het product passeert en ze zijn ook nog eens goedkoop.

Dan hebben we standaard filters: Ze houden een aantal bugs tegen die niet worden tegengehouden door de high-speed filters, maar ze zijn wat lastiger te plaatsen, ze veroorzaken wat oponthoud in de pijplijn en ze zijn behoorlijk duur.

Als laatste hebben we ultra-de-luxe filters. Deze zijn nog veel lastiger te plaatsen, ze zorgen voor veel oponthoud en zoals de naam al verraadt zijn ze ook nog eens schreeuwend duur. Waarom je deze aan zou willen schaffen? Nou, omdat ze bugs tegenhouden die niet worden afgevangen door de andere twee filters.

De Case

Stel je staat in de plaatselijke Bouw-en-Laat-Los winkel (wij hebben alles voor uw build proces) met een budget van 1000 euro. De filters komen met een respectievelijke prijs van 1, 10 en 100 euro. Wat is dan de beste inkoopstrategie?

Het Bug Filter gevisualiseerd op de Build Pipeline

Inkoop Strategieën

We kunnen 10 ultra-de-luxe filters kopen en daarmee houden we inderdaad 5 bugs tegen. Maar 3 ervan hadden we ook kunnen tegenhouden met een high-speed filter, 1 met een standaard filter en inderdaad, 1 hadden we nooit kunnen tegenhouden zonder een ultra-de-luxe filter. De vraag is: Hoeveel bugs hebben we níet tegen kunnen houden?

Een andere strategie is eerlijk verdelen: we verdelen het budget (350/350/300) over de verschillende filters voor respectievelijk 350, 35 en 3 filters. Hiermee houden we 87 tegen met het high-speed filter, 6 met het standaard filter en 1 met het ultra-de-luxe filter. Een veel betere score!

Of een voortschrijdend inzicht benadering: We kopen net zoveel high-speed filters in totdat we zien dat extra filters niet meer zoveel zin meer hebben. Vervolgens doen we dat met de standaard filters en daarna met de ultra-de-luxe filters. Dit past ook beter bij een Agile aanpak; het maken van geautomatiseerde testen doe je tijden het ontwikkelproces, niet achteraf.

Filters en Testen

De drie filters staan hier natuurlijk voor unit testen, systeem-en-integratie testen, en de functionele acceptatie testen. Maar praten over “Bug Filters” in plaats van “test soorten” laat veel duidelijker zien waarom alleen frontend automation vaak geen verstandige keus is. Een gebalanceerde benadering biedt better-bang-for-buck, is sneller te bouwen en geeft tijdens build tijd sneller resultaat. Combineer dat met een verstandige plaatsing in de pijplijn en het juiste moment van plaatsing, en je hebt die snelle feedback loop waar al die Continuous Delivery experts het altijd over hebben.

Dit bericht is geplaatst in Testautomatisering en getagd in Bug Filter CI/CD Test Automatisering

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Nieuws

Blijf op de hoogte

TNW 2023

26/06/2023

Het Next Web (TNW) Conference is een jaarlijks evenement dat professionals uit de wereld van technologie, innovatie en ondernemerschap samenbrengt. Dit jaar vond TNW 2023 plaats in Amsterdam (eigenlijk Zaandam). Ik kreeg de kans om aanwezig te zijn en wil graag mijn ervaringen delen in deze blogpost. Het centrale thema van dit tweedaagse evenement was […]

06/06/2023

Work hard, play hard! Dat laatste hebben we vrijdag 2 juni letterlijk genomen. We zijn naar een museum geweest, het Nationaal Videogame Museum in het stadshart van Zoetermeer. Voor gamefanaten is dit echt een feestje. We kregen een interessante rondleiding waarbij we van alles te weten kwamen over de ontwikkeling van videogames, vanaf de vroege […]

testRigor

17/05/2023

Zijn we klaar voor AI-gestuurde testautomatiseringstools? Een blik op testRigor. Bij PerformanceArchitecten vinden we het belangrijk om continu onze kennis te ontwikkelen en bij te houden. Daarom organiseren we elke maand een kennismiddag waarbij we ons verdiepen in verschillende onderwerpen die relevant zijn voor ons werk. Onze laatste kennismiddag stond in het teken van testRigor. […]

SRE – Site Reliability Engineering

19/04/2023

Tijdens de laatste maandelijkse kennismiddag van PerformanceArchitecten hebben we ons verdiept in het onderwerp SRE (Site Reliability Engineering). SRE combineert software engineering en operationele principes om grootschalige en complexe systemen te bouwen en beheren.   Ter introductie hebben we verschillende video’s bekeken waarin de definitie van SRE werd gegeven en het verschil tussen SRE en […]

NeoLoad RealBrowser

02/04/2023

Bij PerformanceArchitecten vinden we het belangrijk om continu onze kennis te ontwikkelen en bij te houden. Daarom organiseren we elke maand een kennismiddag, waarbij we ons verdiepen in verschillende onderwerpen die relevant zijn voor ons werk. Onze laatste kennismiddag stond in het teken van het RealBrowser “protocol” binnen het performancetesttool NeoLoad van Tricentis. Voor degenen […]

JMeter en Groovy

06/03/2023

Als je binnen JMeter iets wilt doen wat niet standaard in de tool zit, gebruik je plugins of ga je zelf code schrijven. In het geval dat je zelf code gaat schrijven, wordt aangeraden de groovy functie en JSR223 sampler te gebruiken. Ik wil hieronder graag bespreken welke mogelijkheden deze 2 opties je bieden, maar […]

Kennismiddag: ChatGPT

19/02/2023

Tijdens de maandelijkse kennismiddag op 14 februari bespraken collega’s de ontwikkelingen rondom ChatGPT, een tool die AI gegenereerde resultaten kan opleveren. Het werd onderzocht of ChatGPT ondersteuning kon bieden bij SEO en scripting. Hoewel de tool potentieel heeft, is verdere input en domeinkennis nog steeds nodig. ChatGPT is geen perfecte oplossing, maar kan wel handig zijn bij de uitvoering van werk. Het was een geslaagde middag en er wordt uitgekeken naar nieuwe onderwerpen voor de volgende kennismiddag.

16/09/2022

Performancetesten overdragen naar teams We zien bij onze klanten een duidelijke verschuiving van verantwoordelijkheden van centrale teams naar DevOps teams. “You build it, you run it” zorgt ervoor dat teams niet alleen zelf software moeten bouwen, testen en in productie brengen, maar ook verantwoordelijk zijn voor hoe de applicatie in productie draait. Eén van de […]

Azure Bicep

09/12/2021

Introductie Binnen de Azure omgeving is er veel mogelijk zoals bijvoorbeeld het runnen van pipelines en het creëren van infrastructuur. Maar om van deze mogelijkheden gebruik te kunnen maken zijn er uiteraard resources nodig. Deze resources zijn manueel via de portal aan te maken, maar ook door gebruik te maken van ARM (Azure Resource Manager) […]

Azure DevOps pipeline performance quality gate

31/10/2021

In mijn vorige blogs heb ik geschreven over Gatling simulaties in een executable jar en Azure DevOps pipeline met gatling. In het laatste blog had ik al aangegeven dat ik de performancetest onderdeel wilde laten zijn van de CD pipeline door het toevoegen van quality gates. Oftewel, ik wil dat de resultaten van de performance […]

Introductie in Pytest

07/04/2021

Inleiding Voor mijn huidige project ben ik bezig met het aspect kwaliteit in combinatie met Big Data. In zo’n modern project wordt hierbij ook AI gebruikt. Het inrichten van AI wordt vaak niet gedaan door ontwikkelaars, maar door data scientists die een omgeving nodig hebben wat het AI werk kan doen. De programmeertaal Python is […]

Website performance, belangrijker dan je denkt

27/11/2020

Inleiding We kennen het allemaal: je bent aan het surfen om iets te kopen. Duurt het langer dan 1 à 2 seconden dan haak je al snel af. Desondanks is performance is vaak onderbelicht in web-ontwikkeling. De nadruk ligt vaak op functionaliteit en minder op performance. Dat terwijl een slechte performance behoorlijke impact heeft op […]