Software: Testet og funnet skyldig

'Den nyeste versjonen inneholder feilrettinger og ytelsesforbedringer' høres unektelig fint ut - første gang, kanskje fem ganger. Tiende gang blir det platt. Etter 40+ ganger og flere år virker det useriøst: Hvorfor blir produktene aldri raskere og aldri feilfrie?

Tidlig på 2000-tallet ble software-testing vitenskap. Eget fag med spesialister og spesialverktøy. På høy tid. ’Software is eating the world’ spådommen var allerede et faktum. Siden har det gått slag i slag med både verktøyene og faget - inklusive ‘smoke testing’, én av de siste tilvekstene til stammespråket. Men er softwaren blitt bedre? 

Dersom oppdaterings-frekvensen for apper er en målestokk, går det feil vei. Ukentlig eller månedlig - i årevis - har millioner av brukere mer eller mindre automatisk trykket på oppdatér-knappen og fått omtrent den samme meldingen:  ‘Den nyeste versjonen inneholder feilrettinger og ytelsesforbedringer ...'. I praksis er opplevelsen ofte det motsatte – flere feil og dårligere ytelse. Den eneste merkbare ytelsesforbedringen kommer hver gang vi bytter telefon eller brett. 

Dette lover ikke godt. Kompleksiteten vokser, feilene kommer minst like hyppig som før, sårbarheten øker og robustheten faller, som vi diskuterte i analysen ‘What if it breaks’ for noen uker siden. Hvor er resultatene av 20 år med utvikling av smarte hjelpeverktøy, ikke bare til testing, men organisering, bygging, kontroll, sammenstilling, utrulling, reversering/‘innrulling’, og mye mer? Facebooks fadese med utrulling av ny/oppdatert software tidligere i sommer er ett av mange eksempler: Selskapet er blant de beste i klassen, men 'katastrofene' skjer like fullt. Verktøyene leverer ikke robusthet, verken i prosess eller resultat – i alle fall ikke på egen hånd.

Verktøyene er blitt et problem i seg selv. Så komplekse, uoversiktlige og krevende at de til tider reduserer kvaliteten i stedet for å øke den. Hva gjør vi? De fleste venter og ser – og håper på bedring. De mest 'foroverlente' miljøene handler, noen ganger brutalt. ‘Vi har kastet alt av slike verktøy, vi bruker lint og regexp’ kom det lakonisk fra lederen for et av verdens største utviklingsmiljøer forleden. Lint og regexp er tekstorienterte verktøy med opprinnelse fra Unix på 70-tallet, løpende videreutviklet siden, uten å bli overvektige eller uoversiktlige. Gamle kjenninger for utallige utviklere, og ‘underutnyttet’ i mange år. 

Lint was the name originally given to a particular program that flagged some suspicious and non-portable constructs (likely to be bugs) in C language source code. The term is now applied generically to tools that flag suspicious usage in software written in any computer language.Wikipedia

Forklaringen fra vår software-direktør - som forblir anonym, men hører hjemme i et ‘FAMGA’ selskap,  fortsetter: ‘Utviklerne forstår verktøyene, vet hva som skal testes/kontrolleres, tvinges til å tenke riktig og unngår kompleksitet. De scripter seg til bedre kvalitet’. Realiteten er mer sammensatt, inklusive retningslinjer og sjekklister, men poenget er tydelig og viktig:

Kontrollerbar kvalitet forutsetter kontrollert kompleksitet. 
Kontrollerbar kvalitet forutsetter kontrollert kompleksitet.

Lint, regexp og scripting passer ikke for alle, men tankegangen er viktig for en hel verden. En verden som er mer software-avhengig enn de fleste er klar over, og som fortjener større seriøsitet fra leverandørsiden enn stadige 'feilrettinger og ytelsesforbedringer'.

Legg igjen kommentar

Dette nettstedet bruker Akismet for å redusere spam. Lær om hvordan dine kommentar-data prosesseres.