Issuu on Google+

COLUMN

MARKTMONITOR

IT IN BEDRIJF

IT IN BEDRIJF 13

PEOPLEWARE

Crowdtesting: voor alle software

DAAN KALMEIJER

Het grootste systeem

Crowdtesting betekent gebruikmaken van onbekenden bij het testen van software. Softwaretesters zien dan meteen grote problemen. Hoe is zo’n groep te

allerlei onderdelen zo snel slijten dat hij of zij maar net volwassen zou worden. Er zijn geen insecten die zwaarder zijn dan ongeveer 100 gram. Het ademhalingsstelsel van een insect kan gewoon geen grotere insecten ondersteunen. Bomen hoger dan 115 meter zouden uitdrogen omdat de boom geen water naar die hoogte kan transporteren. Ook technische constructies kennen een maximale grootte. Een wolkenkrabber hoger dan een kilometer kan met de huidige technologie gewoon niet. Bovendien, hoe hoger de wolkenkrabber, hoe meer liften je onderaan nodig hebt. Maak een wolkenkrabber nog hoger en je bent meer liftschacht dan wolkenkrabber aan het bouwen. Nog een voorbeeld: raketten. Hoe groter het gewicht van een raket, hoe meer brandstof er nodig is. Ook die brandstof voegt weer gewicht toe. Boven een bepaalde grootte ben je vooral brandstof aan het gebruiken om brandstof de ruimte in te sturen. De Bugatti Veyron heeft 10 radiatoren nodig om 406 km/h te rijden. Hoe harder een auto rijdt, hoe meer hitte er geproduceerd wordt. Op een gegeven moment wordt een auto één grote radiator op wielen.

De laatste 10 procent bouwen kost veel meer moeite dan de eerste 10 procent

N

iet alleen fysieke constructies hebben een grens. Iedereen die ooit heeft meegemaakt hoe een klein

bedrijf uitgroeit tot een steeds groter bedrijf, weet dat zo’n groter bedrijf een andere aanpak vergt. Het is vrijwel onmogelijk om een bedrijf te laten groeien zonder de organisatiestructuur en processen grondig te veranderen. Het aantal medewerkers is misschien een heel eind op te schalen, maar de werkwijze kent zijn grenzen. Op een gegeven moment vallen organisaties gewoon weer uit elkaar in kleinere deelorganisaties. Een van de kenmerken van het ‘eind van de schaalbaarheid’ is dat je voor een klein beetje extra groei steeds meer moeite moet doen. Op een gegeven moment zelfs onredelijk veel moeite. Als alle constructies een maximale grootte kennen, dan geldt dat natuurlijk ook voor onze eigen constructies: computersystemen. Die schaalbaarheid kent twee vormen. Ten eerste is er de schaalbaarheid van het systeem zelf. Kan uw website honderd keer meer bezoekers aan? Kan uw financieel systeem een verdubbeling van het aantal boekingen aan? Dit soort schaalbaarheidsproblemen zijn natuurlijk frustrerend maar zijn wel op te lossen. Gooi er genoeg hardware tegenaan, ‘load balancing’ en nog wat van dat soort trucs en uw website kan dat nieuwe aantal bezoekers echt wel aan. Ik ben maar zelden tegengekomen dat een systeem echt niet groter geschaald kon worden. Het kost een paar centen maar dan hebt je ook wat. en groter probleem is de schaalbaarheid in functionele zin. Kunnen wij ongestraft een systeem maken dat twee

keer zo veel functionaliteit bevat als het vorige systeem? Tien keer? Honderd keer? Kan dat ERP ongestraft tien keer meer functies bevatten? Daar gaat het volgens mij mis. Niet de kwalitatieve schaalbaarheid maar de functionele schaalbaarheid. Dat ligt vooral aan onze werkwijze en architectuur. En ook hierbij geldt dat we – tegen het eind van de schaalgrenzen – heel veel moeite moeten doen om een klein beetje meer te bereiken. De laatste 10 procent van de functionaliteit bouwen kost veel meer moeite dan de eerste 10 procent. Wat gebeurt er als het systeem nóg 10 procent groter moet groeien? Of zelfs tien keer zo groot moet worden? Vele systemen worden nooit echt naar tevredenheid afgebouwd. Ook dat is volgens mij het probleem van beperkte schaalbaarheid van onze werkwijze. Die laatste functionaliteit kost zoveel energie en tijd dat het gewoon niet meer de moeite is. We bouwen een groot systeem precies zoals we een klein systeem bouwen, maar dan met meer mensen, in meer tijd en met meer volharding. Dat houdt natuurlijk op.

O

ok ik kan niet zomaar bedenken hoe we wél eindeloos grote systemen kunnen bouwen. Mijn mentale

vaardigheden kennen natuurlijk ook hun grenzen. Eén tip kan ik u wel geven: Neem nou eens een extreem, belachelijk groot systeem als voorbeeld. Ontwerp uw systeem eens alsof het tien keer zoveel functionaliteit zou moeten bevatten. Ga na wat daarvoor nodig is (aan werkwijze en architectuur). Bouw alsof u het allergrootste ooit systeem gaat bouwen. Dan valt de werkelijkheid vast heel erg mee. Daan Kalmeijer is senior adviseur/docent bij DNV-CIBIT.

25 SEPTEMBER 2009

controleren? Crowdtesting, zegt Ewald Roodenrijs, is niet primair gericht op het vinden van fouten maar op het accepteren van de applicatie.

C

rowdtesting is de nieuwe manier van software testen die een

deel van onze huidige testwerkzaamheden en organisaties zal gaan vervangen. Crowdtesting heeft veel weg van crowdsourcing en is daarmee een andere manier van aansturen en betalen van testers. Hiervoor is een goede organisatie nodig. De wereld om ons heen verandert, grenzen vervagen, iedereen is bijna 24 uur per dag met elkaar verbonden en er zijn steeds meer manieren van communiceren. Steeds vaker is op internet het eerst te vinden wat volgend jaar belangrijk wordt. Een van die onderwerpen is: de cloud. Een cloud kan ook worden toegepast bij softwaretesten, maar is er dan sprake van een crowd? De vraag is: is het cloud testing of crowdtesting? Deze vraag moeten we beantwoorden, het is immers niet hetzelfde. Crowdtesting is afgeleid van crowdsourcing waarbij de community gratis software ontwikkelt. Trekt men dit door naar testen, dan ontstaat er crowdtesting waarbij de community gratis testwerkzaamheden uitvoert. Cloud testing ligt heel dicht bij cloud computing en cloud software, waarbij hardware of software wordt aangeboden als een service en wanneer nodig te gebruiken. De reden om niet te kiezen voor de term cloud testing is dat deze is gekoppeld aan het testen van cloud computing. Natuurlijk kan dit een onderdeel zijn, maar dit is uiteindelijk niet waar het om draait. Crowdtesting is afgeleid van crowdsourcing en houdt zoveel in als: ‘Het gebruikmaken van onbekenden om software te testen.’ Bij softwaretesters gaan er dan direct alarmbellen af: risico’s. Onbekenden zijn immers mensen waar niet direct controle op is uit te oefenen. De mogelijkheid bestaat echter dat er ook experts zijn die de softwaretesten kunnen gaan uitvoeren. Niet alleen testexperts, maar ook materie-experts. Zo zal voor Rijkswaterstaat de tunnel in de A2 bij Utrecht getest gaan worden met auto’s van een crowd. Bij crowdtesting rijst dan de vraag: hoe kunnen bedrijven crowdsourcing effectief inzetten voor het testen van softwareapplicaties? En hoe zorgen testmanagers ervoor dat mensen voor hen gaan crowdtesten? Want crowdtesting lijkt goedkoop en er zijn heel veel mensen beschikbaar die in hun ‘vrije tijd’ testen.

andere Microsoft en Google. Deze bedrijven bieden een vooraf geselecteerd gezelschap de mogelijkheid om hun software als eerste uit te proberen, met als resultaat: wat fout is, maar ook wat goed is. Om hier het maximale uit te halen, is het aan te raden het product pas aan te bieden voor crowdtesting wanneer er eigenlijk al een eerdere test op heeft plaatsgevonden en wanneer het product in die staat is dat het minimaal een pretest kan doorstaan. Hierna is het zaak te weten wie er gaan testen, dus welk type mensen wil een bedrijf laten testen? Is dit de uiteindelijke doelgroep of zijn dit juist technische mensen? Zo is het ook mogelijk om voor securitytesten hackers en/of crackers te benaderen. Met hoeveel mensen

is het wenselijk te gaan testen? Als eenmaal bekend is wie de opdrachtgever wil laten testen, is het zaak deze groep (de crowd) te motiveren. Het kan bijvoorbeeld interessant zijn om een nieuwe applicatie als eerste uit te proberen, zoals Google dat doet. Ook kan als mogelijkheid worden ingezet de crowd te beoordelen middels een rating. Deze rating bepaalt wie de beste tester van de crowd is. Het gevolg is een onderlinge competitie om uit te maken wie de beste is. Natuurlijk is er ook altijd nog geld. Als de crowd voor een bedrijf een bepaalde hoeveelheid tijd aan testen besteedt, levert dat geld op. Al deze zaken zijn mogelijke beloningen voor de crowd, beweegredenen voor mensen om in hun vrije tijd applicaties te testen.

Van tevoren dienen deze beloningsvormen te worden bepaald. Misschien is controle wel het allerbelangrijkste. Controle zowel op de

mensen die de testen uitvoeren als op de testwerkzaamheden. Voor het toepassen van crowdtesting is het ten zeerste aan te raden te weten wat er wordt getest. Bij het analyseren van het testen is het belangrijk de testuitvoering te kunnen volgen. Deze analyse dient niet achteraf plaats te vinden maar tijdens de uitvoering van de testen, want achteraf is het niet meer mogelijk te reageren op de uitgevoerde testwerkzaamheden. Gevolg is dat de test dient te worden gevolgd. De mogelijkheid is om na elke dag testen de resultaten te

analyseren. Zodoende is het mogelijk te anticiperen op de uitgevoerde testen. Wanneer bijvoorbeeld tijdens het testen naar boven komt dat mensen steeds hetzelfde onderdeel van de software aan het testen zijn terwijl daar geen noodzaak toe is, moet hierop kunnen worden gereageerd. Een mogelijkheid is om dit onderdeel minder aantrekkelijk te maken, bijvoorbeeld door het tijdelijk verwijderen ervan. Een ander voorbeeld is het laten testen aan de hand van een vragenlijst waarbij de crowd minimaal alle vragen af moet gaan om de testen te voltooien. Dit voorbeeld wordt door Paladin Studios ingezet bij het testen van zijn nieuwste spel. Ook kan een bedrijf opgeven wat er getest moet worden. Van tevoren moeten de testmanager en het

Ewald Roodenrijs is Solution & Innovation Manager bij Sogeti Nederland BV, Software Control (ewald. roodenrijs@sogeti.nl).

Voordelen Voor welke software is crowdtesting beschikbaar? Het antwoord daarop is simpel, namelijk voor alle software. Dit vraagt wel om enige nuancering. Door een bedrijf als opdrachtgever kan er terughoudend worden gereageerd op het gebruik van een crowd bij het testen van gevoelige software. Zowel op het gebied van de functionaliteit als van de inhoud van de data. Alles is immers zomaar voor iedereen beschikbaar. Er is natuurlijk enige mate van controle mogelijk. De crowd kan bestaan uit de eindgebruikers van de te testen applicaties. Voor het testen van zeer geclassificeerde software heeft de crowd geen toegevoegde waarde. Grote voordelen zijn er echter bij andere systemen. Het testen van

multiplatformsoftware wordt steeds belangrijker. Dit doordat mensen steeds flexibeler worden en meer en meer software hebben draaien op verschillende systemen. Met als gevolg dat er een grotere vraag ontstaat naar applicaties die op meer dan één platform werken. Binnen de crowd zijn deze verschillende platformen beschikbaar. Testen waarvoor crowdtesting grote voordelen oplevert, zijn: ▪ testen waar veel feedback wenselijk of noodzakelijk is; ▪ testen op software waar geen gevoelige data of functionaliteit in is verwerkt; ▪ testen op multiplatformsoftware; ▪ testen van spelletjes ▪ testen van bètasoftware.

Beloningen betaling aan bedrijf

lid zijn van een sociaal netwerk interactie met andere culturen

gratis product

kennismaking onderlinge competitie korting bij uitbrengen software

Er zijn veel mensen beschikbaar die in hun vrije tijd testen

inkomen

sociale erkenning voor werken goed doel bonnen

de ‘leuke’ testen

niet financieel

financieel

De verdeling van mogelijke beloningen binnen crowdtesting. Deze beloningen kunnen worden gebruikt bij het overhalen van de crowd om testen uit te voeren. Bijvoorbeeld om professionele testers testen te laten uitvoeren waar ze goed in zijn of die zij leuker vinden dan de opgelegde testgevallen bij hun directe opdrachtgever.

Controle hoog

Bij het inzetten van crowdtesting voor het testen van applicaties is het

allereerst van belang te bepalen op welk moment de test moet plaatsvinden. Natuurlijk, testen moet zo vroeg mogelijk in het ontwikkelproces worden opgepakt, maar hier betreft het de status van het product om ‘in de crowd’ te zetten. Bij crowdtesting is het van belang dat het product zo goed is dat er geen imagoschade kan plaatsvinden als het product wordt aangeboden. Oftewel, de leverancier heeft vertrouwen in zijn product. Crowdtesting is namelijk niet direct gericht op het vinden van fouten in de applicatie, maar juist op het accepteren van de applicatie. Voorbeelden hiervan zijn het bètatesten van onder

bedrijf, als opdrachtgever, erover nadenken hoe zij dit gaan aanpakken. Natuurlijk moet er ook een testomgeving beschikbaar zijn voor crowdtesting. Dit moet een platform op het internet zijn. Testers kunnen namelijk van over de hele wereld helpen bij het testen en daarbij elk mogelijk systeem gebruiken dat er bestaat. Zodoende is het sterk aan te raden de beschikbaarheid van de testomgeving via het internet te laten lopen. Het internet is namelijk de meest toegankelijke optie voor al deze systemen om verbinding te maken met de testomgeving.

groep

lle constructies hebben een maximale grootte. Van een mens langer dan ongeveer tweeënhalve meter zouden

Producten moeten zó goed zijn dat er geen imagoschade kan optreden

persoonlijk

A

E

TECHNOLOGIE

CONTROLE

12 ACTUEEL

nationale veiligheidssysteem

hypotheekberekening

update software door derden

Beschikbaarheid van testomgeving moet via internet lopen

webshop

laag open

 Voor reacties en nieuwe bijdragen van deskundigen: Henk Ester (h.ester@sdu.nl, (070) 378 03 97).

GEVOELIGHEID videogame

usability controle

vertrouwelijk

privé

De verdeling van de mate van controle ten opzichte van de gevoeligheid van de data of functionaliteit. Als regel kan worden gesteld dat hoe hoger de gevoeligheid van het werk dat moet worden getest, des te groter de controle op de crowd. Bij een te hoge gevoeligheid heeft het minder toegevoegde waarde om gebruik te maken van crowdtesting. Het niet bekendmaken van een hypotheekberekening kan voor een bankbedrijf van het allergrootste belang zijn. Er dient dan een grote controle op de crowd te zijn. Dit kan bijvoorbeeld door de crowd vanuit de interne organisatie op te bouwen. 25 SEPTEMBER 2009


Ag crowdtesten