Bugs detecteren in je software: weg met dat ongedierte!

02/06/2021

De voordelen van Software Reliability

Software optimaal ontwikkelen, zonder dat er enige bugs in zitten, is een hele lastige klus. Software Reliability noemen we dat. Er zijn allerlei methodieken die bugs kunnen tracken, zodat je er zo min mogelijk maakt en weinig vertraging oploopt. Er is echter een belangrijk aspect waar je weinig over leest: of je op basis van data kunt voorspellen hoeveel bugs je tegen gaat komen en hoeveel ontwikkeltijd het kost totdat je vrijwel geen bugs meer hebt. Deze onzekerheidsfactor en tegelijkertijd betrouwbaarheidsfactor wordt vaak overgeslagen bij de ontwikkeling van software. En laat CQM daar nu een algoritme voor ontwikkeld hebben! Daarom in deze blog: hoe kan je inschatten hoeveel bugs je gaat vinden en wat levert je dat op? Tipje van de sluier: heel weinig ongedierte ;-)
 

Voordelen toekomstige bugs voorspellen

Het algoritme dat we ontwikkelden werkt twee kanten op, die van betrouwbaarheid en voorspellen:

  • Analyse beschikbare data: hoeveel bugs zouden er nu nog in de software kunnen zitten?
  • Voorspellen toekomst: hoeveel tijd gaat het kosten om alle bugs te verwijderen?


Hierdoor kan je de kansen op een bug inschatten. Als je inzicht hebt in de hoeveelheid en je vinkt ze daarna af van je lijstje, wordt je ontwikkelproces veel gerichter. Een voorbeeld: het algoritme zegt bijvoorbeeld ‘als je nog 2 weken doorontwikkelt op de manier zoals je dat nu doet, zal je nog 5 bugs tegenkomen’ of ‘binnen een week doorontwikkelen is er een kans van 50% dat er nog 1 bug in zit’. Dit soort inzichten geven je houvast tijdens het ontwikkelproces zodat je gericht keuzes kan maken waar je aan wilt sleutelen.

 

Innovatie en doorontwikkelen

De normale methodieken kijken alleen naar oude data waarmee je bestaande bugs oplost of ziet welke bugs zijn opgelost. Echter, tijdens een ontwikkelproces verbeter je continu, je voegt constant zaken toe en daardoor kunnen er nieuwe bugs ontstaan. Hoe handig is het als je die op voorhand weet te moeten tackelen doordat je er inzage in hebt? Juist, heel handig. Dan ga je van reactief naar proactief, wat versnelling oplevert en onvoorziene zaken voorkomt.


Eigenlijk is dit algoritme een soort van Digital Twin, waar we zo’n fan van zijn. Je bouwt namelijk digitaal een voorspelmodel die scenario’s op mogelijke bugs voorspelt, waardoor ze in de software sneller gevonden en getackled kunnen worden. Maar vooruit, het pas niet helemaal bij de letterlijke definitie van een Digital Twin, maar wij wiskundigen analyseren nou eenmaal graag.

 

Wat levert je dit nog meer op?

Zoals we al zeiden kan je voorspellen met het algoritme, waardoor je sneller en eenvoudig kunt ontwikkelen. Maar bovenal wordt software nog betrouwbaarder. En daarmee je product ook. Hierdoor heb je een minder grote kans op ontevreden klanten en is de kans op winst maken aanzienlijk groot.


Elke softwareontwikkelaar wil altijd dat zijn software betrouwbaar is. Niets zo vervelend als een applicatie die niet goed werkt of die regelmatig blijft hangen. Denk aan een lamp of airco op afstand besturen: dat moet gemakkelijk en correct werken. Met een algoritme dat voorspelt kan je dit voorkomen! Ik hoor je denken: dat kan altijd toch, als je je software goed test? Maar niet elk scenario is uit te schetsen of in kaart te brengen, daardoor zit er in elk stuk (nieuwe) software toch nog bugs. Kortweg: er zijn te veel situaties mogelijk (laat staan degenen waar je niet eens aan hebt gedacht). Door deze situaties te kunnen voorspellen, kan je daar proactief op inspelen (hallo Digital Twin, issie weer!) en wordt het product dat je levert bijna perfect… In ieder geval ongediertevrij, dat is zeker.


We hebben onlangs samen met een opdrachtgever en TU/e een technisch artikel gepubliceerd  over een toepassing en diepe wiskundige details: 
https://www.researchgate.net/publication/341355505_mathematics_Software_Reliability_for_Agile_Testing 
Meer weten over Software Reliability? Neem contact op met Matthijs.


Wil je daarnaast op de hoogte blijven van het laatste nieuws van CQM, volg ons op LinkedIn of meld je aan voor onze digitale nieuwsbrief

 

Fotocredit: Pixabay.

 

Matthijs Tijink MSc

Matthijs Tijink MSc

Consultant