geduld, performancetest, agile, devops, testproces, azure, ci/cd

Geduld is goed, alleen jouw app moet snel zijn

Geplaatst door

Geduld is een schone zaak

Het is zo’n bekend spreekwoord. Als je rustig afwacht word je beloond. Ik heb die uitdrukking nooit begrepen. Dat heeft ook alles te maken met het feit dat ik allesbehalve geduldig ben. Je herkent dat vast wel, dat als een applicatie super traag is. We dan boos worden op onze telefoon of computer. Alsof het dan veranderd. Dan is geduld ineens ver te zoeken. Technologie is mooi, alleen willen we er niet op wachten.

In mijn vorige blog schreef ik dat de Developers als een van de eerste de behoefte van verandering voelen. Omdat de DevOps-methode als een lemniscaat wordt uitgedrukt kan ik niet een groep aanwijzen. Dit geldt natuurlijk net zo goed voor de testers, analisten en alle andere betrokkenen. Want bij de ontwikkeling van nieuwe applicaties is snelheid en stabiliteit een steeds belangrijker wordend thema. Want hoe irritant is het als je een ticket voor dat ene concert wilt kopen en de website is overbelast. Ook onze overheid heeft geregeld last van overbelaste systemen. Bekende voorbeelden zijn het UWV en de Belastingdienst.

test, automation, agile, devops, geduld

Bij te veel geduld neemt de gebruikersadoptie af

Het testen van de snelheid en verborgen fouten willen we steeds vaker vooraf doen. Hiermee willen we liever onze gebruikers niet meer mee lastigvallen. Toch zien we in de praktijk dat de nieuwe applicatie de test succesvol doorstaat. Maar, dat deze in het echt toch problemen veroorzaakt. Er kunnen in het echt altijd afhankelijkheden veranderen. Denk aan nieuwe code, meer gebruikers of processen die gelijktijdig draaien terwijl dat niet zo bedacht was. Daarom is een Agile-aanpak (denk aan de DevOps-methode) een wenselijke. Testen van je applicatie zou een doorlopend proces moeten zijn. Kortom, fail fast, fail cheap.

Ook lijken fouten of problemen in een productieomgeving altijd meerdere sub-problemen met zich mee te brengen. Oftewel een sneeuwbaleffect. Dit is heel vervelend en tijdrovend om op te lossen, temeer omdat je gebruikers dan ook nog gaan bellen, mailen en tweeten. Door het test-proces te automatiseren en een wezenlijk onderdeel te maken van je ontwikkelproces wordt het leven makkelijker en tarten we niet het geduld van onze gebruikers. Toch is testen een ondergeschoven proces, terwijl het juist zoveel kan brengen.

Gebruikers kijken allang niet meer hoe mooi je applicatie eruitziet. Efficiëntie en gebruikersvriendelijkheid is steeds betlanger. Dat je meteen begrijpt wat je moet doen is daarin een belangrijk onderdeel. Echter snelheid is belangrijker dan een super fancy interface. Ik durf te stellen dat het succes van een applicatie staat of valt met zijn snelheid en stabiliteit. Heb je dat op orde, zullen gebruikers het eerder gaan gebruiken. Men haakt anders veelal af.

Je geduld wordt geregeld op de proef gesteld

test, performance
Bron: Geek and Poke

In de praktijk zien we helaas nog vaak websites die wel getest zijn, maar toch na lancering ons geduld aardig op proef stellen. De IB-aangifte website van de Belastingdienst bijvoorbeeld. Of het “Meldpunt Volle Treinen”. Deze applicatie raakte op de eerste dag overbelast door de stroom aan klachten die binnenkwam.

Aan de andere kant staat continuïteit bij veel bedrijven op de agenda. De applicatie moet het gewoon doen. Om allerlei redenen. In ieder geval omdat de applicatie bijdraagt aan het bedrijfsproces. Omdat het goed is voor het vertrouwen van de klant in je applicatie of oplossing. Een overbelaste server, is dan alleen al vanuit merk beleving schadelijk. Tijdens de ontwikkeling van je applicatie heb je doorlopend inzage nodig in de volgende vragen:

  1. Hoeveel bezoekers kunnen we maximaal aan?
  2. Kan onze applicatie mee schalen met de technologie?
  3. Wat gaat onze applicatie in de cloud doen?
  4. Hoe borgen we de snelheid van de applicatie in ons ontwikkeltraject?
  5. Wat zijn de bottlenecks voor ons platform bij groei?

Bovendien kunnen de antwoorden op deze vragen bijdragen aan het ontwerp. Je kent zo de mogelijke risico’s, daardoor kan je bij het ontwerpen van de motor rekening houden met allerlei omstandigheden. Een van de bijwerkingen is dat je soms meer geduld moet hebben met het beschikbaar stellen van een nieuwe versie.

Slimme manier van testen voorkomt ongeduld

test plan, azure test, devops, continous testing
Dashboard Azure testplannen, overzicht van hoe je applicatie zich gedraagt.

Het ontwikkelen en publiceren van een applicatie doe je niet alleen. Het is zeker niet alleen het spel van de producteigenaar of de ontwikkelaar. Er komen meerdere aspecten bij kijken. Denk bijvoorbeeld eens aan de beschikbaarheid. Of de configuratie van het platform. Je zal ook te maken krijgen met allerlei omgevingsvariabelen. Een gebruiker zal je applicatie anders gebruiken dan je had bedacht. Kortom die schone zaak van geduld is ook niets minder van toepassing voor het DevOps-team. Om dit samenspel naadloos te laten integreren is het hebben van een oplossing voor een continu testplan een waardevolle bijdragen aan je ontwikkelproces.

Oké, en waar begin je dan? Wat dat er gaat zijn hiervoor de nodige bomen die het bos onvindbaar maken. Alleen Google geeft alleen al meer dan 4 miljoen resultaten op het woord “performance test”. Op “performance test tools” krijg je nog steeds meer dan 1 miljoen resultaten. Zoals met zoveel zaken, ga je het zelf doen of vraag je een expert? Vanuit mijn persoonlijke interesse kan ik in ieder geval met je delen dat binnen Azure een oplossing beschikbaar is. Binnen Azure DevOps is daarom Azure Test Plans beschikbaar. Hiermee krijg je een “test managementoplossing” voor verschillende testmethoden tot je beschikking. Denk hierbij aan geplande testen of gebruikersacceptatie-testen. Dankzij een browserextensie kan je ook feedback verzamelen van gebruikers. Dit allemaal komt terug in een helder dashboard waarin je – net als in de auto – zicht hebt op je brandstoftank, het verbruik, snelheid en temperatuur.

Testen van je applicatie onderdeel van DevOps

testen, geduld, performance, test, azure, testplan

Het testen van je applicatie is wat mij betreft een van de elementen van de DevOps cultuur. Geïnspireerd door deze zelfde methode is het gezegde: “automatiseer zoveel mogelijk”. Met Azure testplannen kan je continu bepaalde testen uitvoeren. En tegelijkertijd testen uitvoeren om de kwaliteit in moderne softwareontwikkelingsprocessen te maximaliseren met exploratieve testsessies.

En dit alles om de bedrijfswaarde, klantwaarde en IT-waarde te maximaliseren.

Credits

Bedankt Cordny Nederkoorn voor je bijdrage aan deze blog.

Referenties

[1] SweedCode (2019). Best Practices for Shifting Performance Testing Left
[2] Microsoft (2018). Deep dive into Azure Test Plans
[3] Microsoft (2018). Exploratory and manual testing scenarios and capabilities