ORDINA BLOGT

Geschiedenis testautomatisering

Ordina bestaat dit jaar 40 jaar. Maar hoe lang bestaat testautomatisering eigenlijk? Een beknopte geschiedenis van softwaretesten en testautomatisering.

  • Kaspar van Dam
  • 20 september 2013

De begindagen van het testen

In 1822 ontwierp de Engelse uitvinder Charles Babbage een prototype van een mechanische rekenmachine, de zogenaamde "Difference Engine". In feite de eerste 'computer'. Expliciet doel was om het werk dat voorheen gedaan werd door mensen te vervangen door een machine opdat er niet langer fouten gemaakt zouden worden. Ofwel Quality Assurance was een belangrijk onderdeel van het project en testen van hetgeen gebouwd werd een zeer belangrijk onderdeel van het werk aan de machine (in feite unittesten). Helaas bleek de machine dusdanig complex dat deze nooit daadwerkelijk voltooid is.
Na de Difference Engine werkt Babbage aan de ontwikkeling van de zogenaamde Analytical Engine, welke in tegenstelling tot de eerder genoemde machine daadwekrleijk programmeerbaar moest zijn met behulp van ponskaarten.
Voor deze machine schrijft Ada Lovelace in 1843 het eerste computerprogramma ooit. Helaas is ook de Analytical engine nooit daadwerkelijk gebouwd en is de door Lovelace ontwikkelde software nooit getest...

Babbage Difference Engine

Difference Engine van Charles Babbage

De eerste echte testterm is echter te vinden in 1878 toen Thomas Edison een 'bug' beschreef in een brief naar Theodore Puskas waarmee een fout in een systeem aangeduid werd. Maar de grondlegger van het moderne testen kan misschien toch het beste gevonden worden in Alan M. Turing die in 1949 een paper schreef met een antwoord op de vraag hoe een routine gecontroleerd kan worden om zodanig te bepalen of deze daadwerkelijk juist werkt. Een jaar later ontwikkeld Turing de zogenaamde Turing Test waarmee bepaald kan worden of een machine in staat is intelligente beslissingen te nemen.
In 1951 beschrijven zowel Joseph Juran als Armand Feigenbaum de term Quality Control en leggen daarmee de beginselen van quality management en in 1957 is Charles Baker de eerste persoon die een expliciet onderscheid maakt tussen debugging en testen. Mede dankzij dit gegeven wordt een jaar later het eerste software testteam gevormd onder leiding van Gerald Weinberg ten behoeve van het testen van de software binnen het ruimtevaart programma van de VS.

 Edison

Thomas Alva Edison

In de periode daarna maakt software testen een relatief snelle ontwikkeling door en in 1972 is de eerste echte conferentie rondom het thema software testen in Chapel Hill. Hier wordt de basis gelegd van software testen als een discipline welke los staat van de software ontwikkeling. Het duurt echter nog tot eind jaren 80 voordat testen daadwerkelijk als een vak gezien worden. Zaken als testontwerp en de fasen planning, ontwerp, bouw, uitvoering en onderhoud van testen en testomgevingen komen pas echt op in de jaren 90.

De geschiedenis van testautomatisering

Maar hoe verhoudt bovenstaande beknopte geschiedenis van het testvak zich tot de geschiedenis van de testautomatisering? Men zou verwachten dat testautomatisering een vrij recente ontwikkeling is. Echter, testautomatisering bestond al ver voordat het testvak ontstond en is in feite even oud als software ontwikkeling zelf. In beginsel bestond testen met name uit debuggen en unittesten en was onderdeel van het werk van de programmeur. En wegens de eigenschap van programmeurs dat zij herhalende werkzaamheden graag automatiseren werden zo veel mogelijk testactiviteiten geautomatiseerd.
Maar testautomatisering zoals wij dat vandaag de dag kennen kwam pas echt in opkomst midden jaren 80. In die tijd werden de eerste testautomatisering tools ontwikkeld welke in staat waren handmatige activiteiten op te nemen en vervolgens geautomatiseerd weer af te spelen (Record & Playback). Het bleek echter al snel dat iedere wijziging van de te testen software tot gevolg had dat een volledig nieuwe opname gemaakt moest worden en de onderhoudskosten van de geautomatiseerde testscripts waren dan ook astronomisch hoog.

Toen in de jaren 90 het testvak meer gestructureerd werd was het ook mogelijk meer na te denken over testautomatisering en hoe dit meer flexibel toegepast kon worden. De eerste tools kwamen op de markt waarmee niet enkel handmatige acties opegnomen en afgespeeld konden worden, maar waarmee het afspelen ook beïnvloed kon worden door het toevoegen van de mogelijkheid de testscripts aan te passen. In eerste instantie gebeurde dit volledig door de broncode van het script aan te passen en was daardoor enkel weggelegd voor programmeurs. Gelijktijdig ontstonden ook de testmanagement tools en de eerste performance testtools. Hiermee werd het meer en meer mogelijk om een steeds groter deel van het testproces te automatiseren en werd de computer een hulpmiddel die het testen van software efficiënter en/of effectiever kon maken.

Eind jaren 90 kwam keyword driven testautomatisering op en werd het mogelijk geautomatiseerde testscripts flexibel aan te sturen via keywords welke meegegeven worden aan het geautomatiseerde testscript. Hiermee ontstond de mogelijkheid om testautomatisering toe te passen, zelfs zonder inhoudelijke kennis van programmeren. Al was een programmeur nog wel noodzakelijk om in eerste instantie de testen op te zetten.
Pas de laatste grofweg 10 jaar zijn er steeds meer tools op de markt waarbij programmeren geen vereiste is om een geautomatiseerd testscript op te zetten. De meest recente ontwikkeling hierbij is het zogenaamde Model Based Testen waarbij een tool in staat is om op basis van het model van te ontwikkelen software zelf de testgevallen te genereren. Dit wordt heden ten dagen echter nog altijd niet breed toegepast.

De toekomst van testautomatisering

Wanneer we de geschiedenis van de testautomatisering verder doorvertalen richting de toekomst zijn er vele trends zichtbaar die grote invloed zouden kunnen hebben op het vakgebied. Testautomatisering neemt een steeds grotere rol in binnen het testvak en het is daarom ook de verwachting dat iedere tester er vroeg of laat mee te maken gaat krijgen. Er zal een steeds sterker onderscheid zijn tussen de technische tester die ook geautomatiseerde testscripts kan ontwikkelen en de business tester die de business goed begrijpt en daardoor in staat is vroegtijdig testgevallen te maken (bijvoorbeeld ten behoeve van test driven development). Ook het testen op verschillende platformen is van steeds groter belang nu er dankzij de snelle groei van de mobiele markt vele platformen zijn in vele versies en op vele resoluties. Hierbij zal testautomatisering ook een grote rol gaan spelen. En kijken we nog verder naar de toekomst dan komt er mogelijk ooit een punt waar software in staat is zichzelf te testen op basis van kunstmatige intelligentie. Maar voorlopig is dat nog toekomstmuziek.

Samen duurzaam innoveren

Zaken als Mobile, Social Media, Security, Smart sourcing, big data en cloud computing zullen in de toekomst van steeds groter belang zijn en zullen van grote invloed zijn op de verdere ontwikkeling van het testvak en testautomatisering. Deze thema's zullen op 30 oktober aan de orde komen tijdens het evenement voor klanten "40 jaar Ordina: Samen duurzaam ondernemen".

 

Bronnen:
Charles Babbage website (http://www.charlesbabbage.net/)
Computer History (http://www.computerhistory.org/babbage/adalovelace/)
Did you Know? Edison coined the term 'Bug'(http://theinstitute.ieee.org/technology-focus/technology-history/did-you-know-edison-coined-the-term-bug)
The Turing Digital Archive - 'Checking a large Routine' (http://www.turingarchive.org/browse.php/B/8)
Wikipedia - 'Turing Test' (http://nl.wikipedia.org/wiki/Turingtest)
Joseph M. Juran (http://asq.org/about-asq/who-we-are/bio_juran.html)
QualityGurus - Armand Feigenbaum (http://www.qualitygurus.com/gurus/list-of-gurus/armand-v-feigenbaum/)
The Growth of Software Testing (http://clearspecs.com/joomla15/downloads/ClearSpecs16V01_GrowthOfSoftwareTest.pdf)
What is test Automation? (http://www.satisfice.com/blog/archives/118)
History of test Automation (http://tstr.nl/cover-h/index.php?s=History_Test_Automation_01)



Over de auteur:

Kaspar van Dam

Kaspar van Dam is test(automatisering) consultant bij Ordina en adviseert collega's en klanten over vraagstukken rondom de thema's agile testing, behavior driven development (BDD), testautomatisering en meer.