Falsificatie

Redactie: Gerben de la Rambelje

Auteur: Nathalie Rooseboom de Vries – van Delft ● funtestic.fanatic@gmail.com

Nathalie Rooseboom de Vries - van DelftLaatst had ik een discussie met een collega. Een informatieanalist die zowel het (oud) Grieks als het Latijn een beetje machtig is en een leuke, beetje filosofisch onderbouwd gesprek niet uit de weg gaat. We hadden het die keer over één van mijn meest favoriete onderwerpen, namelijk mijn vak: testen.

De discussie was aangewakkerd, omdat ik het V-model illustreerde aan een andere collega op het whiteboard, waarbij ik uitlegde dat het niet alleen een stroom neerwaarts is, maar ook een stroom opwaarts, zodat het een iteratief proces kan zijn. Ik illustreerde het verschil van verificatie en validatie in de stappen. Nadat de collega de kamer uit was, draaide de informatie-Latijn-collega zich om en wees op de MappaTesti, die achter mij als schilderij op de muur hing.

Nu moet je weten dat de MappaTesti een fabrieksel is van een meeting genaamd de TestingRetreat, waar we (ik en de andere testers die daar waren) na een bezoek aan de Mappa Mundi in Hereford geïnspireerd waren, om een soortgelijke kaart te maken over hoe in 2011 de testwereld er uit zag vanuit ons perspectief.  De Mappa Mundi is de oudste nog bestaande middeleeuwse wereldkaart en zoals gebruikelijk in die tijd is die kaart zowel topografisch, religieus als mythisch bedoeld en ook grotendeels om ontzag in te boezemen bij de aanschouwer. De hel of onderwereld staat afgebeeld onderaan de kaart.

Op mijn MappaTesti staat die hel ook onderaan. Met, zoals mijn collega aangaf, in potjeslatijn er bij gezet ‘Infernum Falsificatum Consequitur’.  Ik heb daarmee de (Engelse) frase ‘de hel van de vervalste resultaten’  getracht weer te geven. Oftewel: als je je als tester schuldig maakt aan het vervalsen van je resultaten, dan verdien je het om in de hel terecht te komen!

Mijn collega maakte er echter wat anders van in het licht van de les over het V-model. Hij vroeg zich daadwerkelijk af of ‘falsificeren’ in het testvak niet was toegestaan in relatie tot verificatie en validatie. Hij had zich het al langer afgevraagd, maar nu deed de gelegenheid zich dus voor het ook te vragen in een bepaalde context.

Nadat ik hem had uitgelegd dat de frase op de Mappa wat anders betekende dan hij er aan had toegedicht, bleef er wel de fascinatie voor het falsificeren zelf.  Zeker nadat mijn collega had uitgelegd dat het bij menig thesis een vorm is van bewijsvoering (eigenlijk antibewijsvoering). Als je immers als tester je bezighoudt met verificatie en validatie, dan zou je je ook bezig moeten houden met falsificatie?

Wat is falsificatie dan eigenlijk? Het woord is afkomstig van het Latijn ‘falsificatio’ (laatLatijn) of ‘falsificare’ (klassiek Latijn). Kortweg is het iets aantonen door middel van het tegendeel. Op de wikipedia staat dit wel mooi uitgelegd. Stel dat je zegt dat alle zwanen wit zijn (theorie). Het tegendeel van deze zin, geeft ook de mogelijke ‘fasificator’ aan: ‘Er is ten minste één zwaan die niet wit is’ (ook wel ‘er is ten minste één zwarte zwaan’). Als aanvaard wordt (of bewezen) dat deze zwarte zwaan bestaat, dan kan de uitspraak ‘alle zwanen zijn wit’ worden weerlegd.

Het principe van iets aantonen dat iets waar is door de onwaarheid te presenteren, is afkomstig van een man genaamd ‘Karl Popper’. Hij was een wetenschapsfilosoof en hij vond dat wetenschappelijke theorieën alleen indirect getoetst konden worden door hun implicaties te toetsen door middel van een cruciale test. Als overigens de uitkomst positief was (of eigenlijk negatief: er wordt geen zwarte zwaan gevonden), dan betekent dit niet dat er sprake is van verificatie; er kan immers altijd in de toekomst tóch een zwarte zwaan opduiken. Popper spreekt dan van ‘corrobatie’, wat zoiets betekent als: dat de waarschijnlijkheid dat de bewering juist is, hoger is.

Hoe meer je jezelf verdiept in de materie van de filosofie achter de wetenschap, hoe fascinerender deze wordt. Termen als ‘Inductieve verificatie’, ‘deductieve falsificatie’ passeren de revue. Zo is er ook de bewering over het helemaal niet mogelijk zijn van een cruciale test en heeft men het over paradigmaverschuivingen. Ook kwam het voor sommige al lang bekende, epistemologie, in mijn verdiepingstocht voorbij.

Wat ik me vooral afvroeg in deze hele kwestie: wat is de significantie van falsificeren binnen het testvak?

In de praktijk krijg ik regelmatig als testdoelstelling: ‘Toon aan door middel van het uitvoeren van een test dat het systeem geschikt is voor gebruik’ of ‘Toon aan door middel van het uitvoeren van een test dat de gebouwde functionaliteit werkt zoals beschreven’. We laten even, voor ‘arguments sake’ in het midden of dit juiste doelstellingen zijn. Door het laten zien van één enkele fout in een systeem tonen we echter aan dat bijvoorbeeld de bewering ‘het systeem is foutloos’ aanvaard kan worden en dus doen we aan falsificatie en niet aan verificatie. De bugs zijn in wezen onze falsificatoren.

Falsificeren maakt dus een essentieel onderdeel uit van ons vak, naast valideren en verifiëren. Hoewel… dit laatste kan natuurlijk nooit volgens Popperiaanse principes!

 

8 comments on “Falsificatie
  1. Supertester schreef:

    Het toeval wil dat ik tijdens mijn studie in het kader van wetenschapsfillosofie een aantal boeken van Popper heb gelezen. Een onderwerp uit één van die boeken ‘Of Clouds and Clocks’ heb ik zelfs eens gebruikt in een presentatie over ketentesten.

    Na het lezen van ‘Falsificatie’ realiseer ik me dat ik van Popper toch nog meer (impliciet) geleerd hab dan ik ooit had bedacht. Zo zal hij wellicht ook behoorlijk wat invloed gehad in mijn ontwikkeling als tester. Ik heb me dat nooit eerder gerealiseerd. Thanks !

    • Nathalie schreef:

      Hallo Supertester,

      Ik zal het boek ‘Of Clouds and Clocks’ op mijn leeslijst gaan zetten! Leuk te lezen dat Popper invloed heeft gehad, misschien dat dit indirect ook van invloed is geweest op hoe mij het testen is geleerd en gecoached 😉

  2. CeesJan schreef:

    Heb ik altijd al op mijn visite kaartje willen schrijven:
    Senior Falsification Engineer. Jouw artikel lezende ben ik van mening
    dat iedereen die metrics hanteert in de hel thuishoort (figuurlijk dan,
    vrij gededuceerd uit Lies, Damned Lies, Statistics, and Metric of course).
    De principes van Popper spreken mij ook aan. Als je gevraagd wordt iets te verifieren dan wel te valideren, dan is het vaak voldoende om met enkel bewijzen van het tegendeel te komen.
    Testers noemen dat dan bevindingen, bugs of defects.
    Vraag is alleen hoe erg (sevirty, priority) dat dan weer is. Daar heb je dan weer een orakel
    voor nodig, of diegene die de bezwaren tegen een release “overruled” moet zijn zonden gaan overdenken. Nu de Griekese orakels teloor gaan (Grexit op testgebied dankzij fuzzy methodieken (onvolledige (domein)kennis) als in Agile/Scrum) moeten we misschien maar weer terug naar een degelijke set van requirements. Maar ja zoland we alleen sunny day scenarios blijven beschrijven zal falsificatie altijd iets zoiets als prijsschieten op de kermis blijven. Je doet een hoop moeite en je moet maar afwachten of je daar credits voor krijgt.
    Genoeg gefilosofeerd… Wat ik wel zeker weet is dat falsificatie een geweldige techniek is om snel fouten te ontdekken (aangezien veel systemen niet robuust genoeg gebouwd zij, waar hackers dan weer slim gebruik van maken). Maar sunny positivo’s kunnen daar waarschijnlijk geen applaus voor geven…

    • Nathalie schreef:

      Hallo CeesJan,

      Ik kon een glimlach niet onderdrukken bij “Senior Falsification Engineer”, dat zal zeker prikkelen als je dat op je CV zet en is wellicht een mooie binnenkomer en gespreksstarter.

      Het verdwijnen van orakels c.q. de schijnbaar groeiende aversie voor domein/vak experts (men moet immers multidisciplinair zijn tegenwoordig), maar des te meer de steeds meer afnemende dieptekennis van het domein waarin een Agile team ontwikkelt als zijnde een order-and-do entiteit (de goede daargelaten), wordt een steeds nijpender probleem voor organisaties. Met name het vertrouwen dat er iets wordt neergezet dat de juiste businessvalue heeft. Het terugschuiven met ‘ja maar die productowner zit er toch bij?’ is naar mijn idee, maar volgens mij ben ik niet de enige, een zeer onwenselijke gang van zaken; te meer omdat je juist verantwoordelijkheid bij het SCRUM team had neergelegd die deze nu niet willen pakken of dragen, maar dit is een andere materie dan de falsificatie en wellicht een mooi onderwerp voor een volgende column.

      Ik pleit voor falsificatie als één van de eerste in je testaanpak gebruiken om de gelederen weer op scherp te zetten of op zijn minst een stevig signaal af te geven naar de organisatie (en naar eigen ontwikkelende achterban) dat het allemaal niet zo rooskleurig is als dat men bij het slagen van een enkele happyflow-case reeds in het hoofd heeft, het zou het gesoebat en allerlei ja-maar discussies met de eeuwige ‘het werkt toch?’ inhoud een stuk minder maken.

  3. Maarten Beks schreef:

    Nathalie,
    Leuk stukje. Temeer omdat ik vanuit mijn wiskundige achtergrond dit soort technieken vaak heb toegepast om stellingen te bewijzen of te weerleggen.

  4. Sander schreef:

    Mooi artikel Nathalie, bedankt. Wetenschap gebruikt falsificatie en alternatieve hypothesen, maar de vraag (die ik mezelf ook vaak heb gesteld) is in hoeverre toepasbaar is in de testwereld. Om het voorbeeld van de zwanen te gebruiken; een bedrijf zou misschien alleen maar witte zwanen willen, maar als er uiteindelijk 5 of 10 zwarte zwanen over de afdeling lopen vinden ze het meestal nog steeds prima.

    Ofwel; ik merk dat het goed en nuttig is om ook de zwarte zwanen te zoeken (en zoals Cees Jan aangeeft, dat is vaak prijsschieten) maar het totaal aantal gevonden witten én zwarte zwanen moet worden gerapporteerd. En uiteindelijk blijft het mensenwerk / politiek om te bepalen of we daarmee live gaan. En vaak wordt van de tester gevraagd om dat overzicht mede te beoordelen en te interpreteren. Zo blijven we in beginsel objectief, maar denken we mee waar dat gevraagd wordt.

    • Gerard Numan schreef:

      Ik denk dat Popper en het begrip falsificatie toch wat scherper is te gebruiken in testen.

      Wat m.i. in deze discussie wordt gemist is de notie van Popper dat een theorie alleen maar zinvol is als hij falsifieerbaar is én voldoende pogingen tot falsificatie heeft doorstaan.
      “Alle zwanen zijn wit” was praktisch niet falsifieerbaar omdat je eindeloos moet wachten of er eens en zwarte zwaan opduikt. Wat is de status van de stelling zolang de zwarte zwaan er niet is? Dan weet je nog niets over de waarheid of onwaarheid van de stelling.
      “Alles is subjectief” is ook zo’n uitspraak: het voegt niets toe aan ons kennisbestand en er is ook niet in een aantal experimenten vast te stellen of het waar of onwaar is.

      Popper’s inzichten zijn wel degelijk op testen toe te passen:
      1. requirements/ specificaties zijn niet zinvol als er geen concrete testgevallen uit zijn af te leiden op basis waarvan de kwaliteit van het systeem hier en nu is vast te stellen.

      2. stug falsifiëren (negatief testen) levert een positieve bijdrage aan het eindproduct: pas dan kan er een redelijk vertrouwen in de kwaliteit bestaan én het oplossen van alle falsificaties maakt het product sterker (dit geldt net zo voor theorieën).

      3. Aan 2 kan nog worden toegevoegd dat bugs (daadwerkelijke falsificaties) ook positief zijn. Stel je voor dat je een week test, maar geen bugs vindt. Dit kan komen doordat er geen bugs zijn of doordat je niet goed test. Je weet dan nog niet zo veel. In de praktijk zie je dan ook dat managers dan geen vertrouwen hebben en gaan twijfelen aan de testen. Je weet alleen maar of je goed falsifieert als je daadwerkelijk falsificaties doet (bugs vindt). Lullig als die er niet zijn….

      Ook dit geldt voor wetenschappelijke theorieën: de aanvankelijke daadwerkelijke falsificaties van de eerste versies van de evolutietheorie hebben uiteindelijk de theorie alleen maar sterker en aannemelijker gemaakt, doordat de falsificaties uiteindelijk zijn “opgelost” en zijn opgenomen in een nieuwe versie van de theorie waarin ze verificatie werden ipv falsificatie (het feit dat alle tussenstadia in de ontwikkeling van bijvoorbeeld een complex orgaan als een oog onmogelijk allemaal elk het resultaat van survival of the fittest kunnen zijn geweest was een soort falsificatie. Later heeft men kunnen aantonen dat elke tussenfase van het oog (maar ook het vliegen van bv vleermuizen) functioneel genoeg was om het organisme niet te hinderen en dat er geen intelligent design nodig is om tot complexe ontwikkelingen te komen.)

Geef een reactie

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