Test och Check – Komplex och KompliceradJames Bach och Michael Bolton har tillsammans precis skrivit en artikelom testning...
Även fullständigt slumpmässiga händelseförlopp är förutsägbara. De ärförutsägbart slumpmässiga.När någonting är förutsägba...
SlutsatsSå vad leder resonemanget ovan mig till?Check – Systemet på vilket aktiviteten utförs, är enkelt ellerkomplicerat,...
Referenser[1] Testing and Checking Redefinedhttp://www.satisfice.com/blog/archives/856[2]Automated vs. Exploratoryhttp://w...
Upcoming SlideShare
Loading in …5
×

Test och check komplex och komplicerad

434 views
361 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
434
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Test och check komplex och komplicerad

  1. 1. Test och Check – Komplex och KompliceradJames Bach och Michael Bolton har tillsammans precis skrivit en artikelom testning och checkning [1], där de utvecklar definitionerna av ochdistinktionen mellan de två termerna. Flera i den svenska testgemenskapenhar varit delaktiga i processen och hjälpt James Bach att hamra utdefinitionen ytterligare på SWET 5.Även andra kända testare har skrivit kring begreppen den senaste tiden.Marcus Gärtner skrev en artikel som diskuterade behovet av bådeautomatisering och utforskande testning och hur de kompletterar varandra.Hur automatisering kodifierar det vi redan vet och hur utforskande testninglär oss nya saker.[2]Marcus artikel fick mig att fundera över hur testning och checkning kankopplas till specifikationen eller kraven och hur all testning mer och merdetaljerar specifikationen genom att utforska okända scenarion ochdokumentera hur produkten beter sig, medan checkning mer konfirmerar attspecifikationen stämmer [4]. Egentligen bara en omformulering av Marcustankar.I denna diskussion är det så klart alltid viktigt att ha Cem Kaners ord ibakhuvudet [3]. Det handlar inte om automatisering och dess värde. Allaborde vara överens om att automatisering är önskvärt när det är effektivtoch att skriva automatiska testfall är lika mycket test, och kräver lika storförståelse för test, som någonting annat. Testning och checkning handlar inteom automatisering mot utforskande testning. Båda har sitt värde i olikasammanhang och båda kräver en extensiv kunskap inom test.Frågan är om det finns ytterligare sätt att formulera skillnaden mellantestning och checkning. Inte som en alternativ definition, utan som enkompletterande eller omformulerad definition, som kanske i vissa fall kanvara användbar. Detta är mitt försök till en sådan definition, som kanske harnågot värde för någon – åtminstone för mig själv.Orden komplex och komplicerad har olika innebörd [5]. Ett magnifikturverk är väldigt komplicerat, men också väldigt förutsägbart. Varje insignal,varje tillstånd, och varje utsignal är känd. Luffarschack kan också varakomplicerat, men med lite erfarenhet av spelet kan man implementerastrategier som gör att man åtminstone aldrig kan förlora. Varje drag ärförutsägbart.
  2. 2. Även fullständigt slumpmässiga händelseförlopp är förutsägbara. De ärförutsägbart slumpmässiga.När någonting är förutsägbart så kan det antingen uppföra sig som detborde göra, eller ha ett felaktigt beteende. Då finns det goda möjligheteratt skriva ner och exekvera ett automatiskt testfall, eller ett skriptatmanuellt testfall, som säkrar att beteendet följer prediktionerna. Detta ärvad jag definierar som en check.En människa, till skillnad från ett urverk, är långt ifrån förutsägbar.Insignaler är oklara, tillstånden dunkla, och utsignalerna överraskande.Människan är en komplex varelse. Detsamma gäller tyvärr för många av desystem som vi jobbar med idag. En mobiltelefon med sina miljoner raderkod, interagerande subsystem, komplicerade hårdvaruplattformar,mängder av kopplingar till omgivningen, oklara beroenden, integreradkod från tredje part, och så vidare, blir också omöjlig att förutsäga. Ettkomplext system, om än inte lika komplext som en människa.I vissa fall kan man avgränsa sitt testobjekt från den omliggande osäkerheteni systemet. Om man bara kör ett detaljerat komplicerat testfall steg för stegutan att bry sig om vad som händer runt omkring, så har man utfört en check.Det samma gäller om man exekverar ett redan skapat automatiskt testfall.Man bryr sig inte om komplexiteten runt omkring, utan följer ett icke-komplext scenario som man exekverar. Man väljer att begränsa systemet manbetraktar till någonting icke-komplext och förutsägbart. Det har definitivtsitt värde, men någon gång måste man ta sig an systemets komplexitet.Det är när man gör detta som man utför tester.Det kan vara när man noggrant designar automatiska tester för att nå insikt ihur systemet reagerar på dem, det kan vara när man exekverar utforskandetester för att kartlägga systemets komplexitet, eller när man kör ett skriptattestfall utan att begränsa sig till de teststeg som finns, utan låter systemetskomplexitet skölja över en.Man kan kombinera användandet av checker och tester genom att t.ex. förstanvända sig av ett set med checker för att identifiera vilka områden som intemöter grundläggande förväntningar, för att sen övergå till tester för attkartlägga komplexiteten och systemets beteende.
  3. 3. SlutsatsSå vad leder resonemanget ovan mig till?Check – Systemet på vilket aktiviteten utförs, är enkelt ellerkomplicerat, men förutsägbartTest – Systemet på vilket aktiviteten utförs är komplext ochoförutsägbartOfta utförs dock tester och checker på samma komplexa system. För attkunna göra en check måste man därför då medvetet begränsa den del avsystemet man betraktar, och inte ta hänsyn till många av de variabler ochutfall som gör systemet så komplext.Hoppas detta resonemang har väckt några tankar hos läsaren, som i sin turkanske genererar ytterligare en kompletterande definition av testning ochcheckning som jag kan se fram emot att läsa.Johan Hoberg
  4. 4. Referenser[1] Testing and Checking Redefinedhttp://www.satisfice.com/blog/archives/856[2]Automated vs. Exploratoryhttp://www.shino.de/2013/03/21/automated-vs-exploratory-we-got-it-wrong/[3] The Insapience of Anti-Automationismhttp://context-driven-testing.com/?p=69[4] Testing vs. Checking Rephrasedhttp://www.slideshare.net/JohanHoberg/testing-vs-checking-rephrased/[5] Komplexitethttp://sv.wikipedia.org/wiki/KomplexitetsteoriChrister Hoberg – Komplexitetsmaxhttp://kth.diva-portal.org/smash/record.jsf?searchId=1&pid=diva2:10395Tor Nörretranders – Märk Världenhttp://www.bokus.com/bok/9789100570705/mark-varlden/

×