Bright Answers

Bright Answers biedt branchespecifieke ICT oplossingen en maatwerk aangepast op jouw bedrijfsvoering. Wij helpen bedrijven op het gebied van:

Gerelateerde onderwerpen

Automatisch testen – voorkomen nog altijd beter dan genezen

Dit artikel is gepubliceerd op: 08-02-2016

Nederlandse wetenschappers en bedrijven staan aan de bakermat van automatisch testen van software en lopen voorop met onderzoek naar geautomatiseerd testen. Op zich een logische ontwikkeling, omdat testen van software nog altijd een groot deel van de ontwikkeltijd beslaat. En dus veel geld kost. Uiteraard brengen nieuwe ontwikkelmethoden een andere manier van testen met zich mee, soms ook andere testmethodes. Meestal hebben die ontwikkelmethoden, zoals agile methoden en scrum, als onderliggend doel sneller software te ontwikkelen met minder fouten, die bovendien beter aansluit op de functionele behoefte van gebruikers en opdrachtgevers. Daarom is voorkomen van fouten en functionele onvolkomenheden nog altijd beter dan genezen. Genezen kan nu echter steeds steller door de opkomst van geautomatiseerd testen.

Geschiedenis testen van software

Niet eens zo heel lang geleden was het testen van software meestal het kind van de rekening. In de eerste decennia waarin de beginnende automatisering en programmeertalen ontstonden, vonden nauwelijks tests plaats. Nou ja, in feite werden besturingssystemen en software gewoon meteen in de productieomgeving gebruikt en was het begin één grote testfase met heel veel productieverstorende effecten en irritatie op de werkvloer als gevolg. Wellicht hebben de eerste programmeurs wel aangedrongen op vooraf testen, maar werden niet gehoord vanwege tijdsdruk en de toch al enorme kosten voor automatisering.

Toen in de jaren 90 van de vorige eeuw automatisering en computers overal gemeengoed werden, kwam toch het besef dat software eerst goed getest moet worden voordat het aan gebruikers in de productieomgeving blootgesteld werd. Dat kostte wel veel tijd. In een steeds sneller veranderende wereld met grote technologische vooruitgang en hoge ambities van organisaties en bedrijven begon de druk op testers te groeien. En weer dreigde het testen als kind met het badwater weggegooid te worden. Kosten voor softwareontwikkeling bleken zowel bij de overheid als het bedrijfsleven vooraf te laag ingeschat te zijn.  

Daardoor ontstonden nieuwe meer flexibele softwareontwikkelmethoden, zoals iteratieve en agile ontwikkelmethodes. In het kielzog volgde de transformatie van testmethoden en de positie van testers in een ontwikkelteam. Tegenwoordig maken testers veel meer deel uit van het agile ontwikkelteam. Tot voor kort stonden testers vaak als de gebeten hond of boeman buiten de ontwikkeling in een aparte testafdeling. 

Automatisch testen – model-based testing

Onderzoeker Machiel van der Bijl van de Universiteit promoveerde in 2011 op zijn onderzoek naar en ontwikkeling van testautomatisering. Hij stelde destijds dat het testen van software in de meeste gevallen voor ongeveer de helft van de ontwikkelkosten zorgt. Met een geautomatiseerde testmethode kan de testduur in zijn totaliteit aanzienlijk verkort worden. En dat leidt weer tot sterk gereduceerde ontwikkelkosten. Van der Bijl onderzocht het model-based testing. Op basis van een model van de software en het beoogde systeemgedrag worden automatisch testgevallen gespecificeerd. Dit kan allemaal nog voordat de software gemaakt wordt. Fouten in specificaties kunnen daardoor voortijdig ontdekt worden.

Veel ICT-dienstverleners bieden tegenwoordig geautomatiseerd testen aan op basis van model-based testing. Zo past TomTom dit model toe op zijn testprocedures voor navigatiesystemen.

Automatisch testen – tools

Model-based testing bespaart zoveel tijd en geld omdat het bijna 70% van de oorspronkelijk handmatige unit-tests kan vervangen. Dat wordt goed zichtbaar in de Test Automation Pyramid van Mike Cohn. Unit testing is de basis van de pyramide, waarin het testvolume het grootste is. Tools voor model-based testing zijn afgeleid van Smalltalk’s SUnit en hebben de generieke naam xUnit. Zo bestaat er voor ieder ontwikkelplatform wel een tool voor unit testing. Unit testing geeft uiteindelijk antwoord op de vraag: bouwen we de code juist?

Beklimmen we de pyramide verder, dan komen we aan bij de tests die antwoord geven op de vraag of we de juiste code bouwen. We hebben de API-/servicelaag bereikt, waarin de acceptatietests plaatsvinden. Daarvoor zijn allerlei (veelal open-source)tools verkrijgbaar, zoals CucumberFitness en Specflow.

In de top van de pyramide vinden we het workflow- en featureniveau, waar de gebruikersinterface getest wordt: de GUI-layer. Een veel gebruikte open-source tool voor het testen van webapplicaties is Selenium. Daarmee kun je een webapplicatie voor iedere browser automatisch testen. Selenium is gericht op de gebruikersfunctionaliteit en de bijhorende wisselwerkingen. Dit betekent ook dat testen uitgevoerd worden in dezelfde omgeving als die voor de gebruikers, namelijk de browser.

Closed-source tools zoals Ranorex en Testcomplete van Smartbear zijn ook geschikt voor desktop- en mobiele applicaties.

Tot slot biedt SoapUI (ook van Smartbear) heel veel geautomatiseerde (functionele) testmogelijkheden, waaronder API-tests. 

Bright Answers is helemaal thuis in het web. Wij produceren en bedenken bright answers voor het internet. Wij maken onder andere webapplicaties en websites, en bieden onze opdrachtgevers handige webtools. Met onze AppBuilder kunnen onze klanten zelf webapps en webapplicaties bouwen. Bij de ontwikkeling van apps passen wij ook geautomatiseerd testen toe. Bij de levering van de Appbuilder adviseren wij onze klanten uiteraard over geautomatiseerd testen en kunnen specifieke tools custom made inrichten, zodat testen van jouw apps een fluitje van een cent wordt.

Ben je nieuwsgierig geworden naar onze bright (test)answers voor jou? Maak dan snel een afspraak voor een vrijblijvende kennismaking met ons bedrijf.


Gerelateerde onderwerpen

Front-end services


 

Reacties

Er zijn nog geen reacties.

 

Plaats nieuwe reactie

Velden met een gemarkeerd met een * zijn verplicht.
 
 
 
­