Test i sin enkelhetTestning är i sig en väldigt komplex aktivitet med många variabler sompåverkar vad, när och hur den ska...
Detaljstyrning från toppenFör att driva en effektiv testorganisation på ett stort företag är det därförkritiskt att hela t...
Komplicerade lösningarDet finns ett egenvärde i enkelhet, och enkelhet kostar [6]. För hur perfekten komplicerad lösning p...
scenarion är en omöjlig uppgift. Den typen av komplexitet som enautomatiseringslösning innebär kan bara växa fram evolutio...
SlutsatsTest är tyvärr mycket mer komplext än de flesta som inte är insatta i detförstår. Problemen, som beskrivits i arti...
Referenser[1] Wicked Problemhttp://en.wikipedia.org/wiki/Wicked_problem[2] Komplexitethttp://sv.wikipedia.org/wiki/Komplex...
Upcoming SlideShare
Loading in...5
×

Test i sin enkelhet

307

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
307
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 i sin enkelhet

  1. 1. Test i sin enkelhetTestning är i sig en väldigt komplex aktivitet med många variabler sompåverkar vad, när och hur den ska utföras. Testning av ett väldigt stortsystem, som t.ex. en mobiltelefon ökar komplexiteten ytterligare. I kontextenav ett internationellt företag med tusentals ● ● ●anställda på olika kontinenter görtidskillnader, kulturskillnader, parallellt Komplex och komplicerad[2]testande, ansvarsfördelning mellan kontor och En kort begreppsdefinition kanandra faktorer att komplexiteten blir mindre vara på sin plats. Ett komplextöverskådlig. Om företaget dessutom integrerar system är ett system som inte ärmycket kod från tredje part, blir det ännu förutsägbart, utan mer spontantsvårare att förutse hur systemet kommer att och oordnat och har en dynamikbete sig. som gör att det skiljer sig från statiska och förutsägbara objektDet är svårt för människor att hantera denna som endast är komplicerade tilltyp av komplexitet, men på något sätt må ste skillnad från komplexa. Ett stort mjukvarusystem har just dessadetta göras hanterbart för testare ute i egenskaper, med många subsystemorganisationen. som interagerar med varandra, och med hårdvaran den kör på. EnSom testare står vi ofta inför vad som brukar urvalsmetod som kräver att mankallas ett ”wicked problem” [1]. D.v.s. ett tar hänsyn till en mängd data ochkomplext problem som inte har en optimal går igenom långa processflöden ärlösning, utan flera, och inte kan lösas utan att komplicerad, men inteta hänsyn till en mängd olika perspektiv. nödvändigtvis komplex. När någonting antingen är fullständigtEtt sätt att försöka lösa denna komplexitet är förutsägbart, eller heltatt skapa processer, strategier och slumpmässigt är det inte komplext.kontrollmekanismer för att kunna styra olikaaktiviteter som utförs av testare. ● ● ●Problematiken kring detta är tudelad; delslåter komplexa system sig sällan detaljstyras från toppen, dels blirlösningarna på komplexiteten ofta väldigt komplicerade i sig, vilket skaparen mängd följdproblem.
  2. 2. Detaljstyrning från toppenFör att driva en effektiv testorganisation på ett stort företag är det därförkritiskt att hela tiden trycka beslut och ägandeskap så långt ner iorganisationen som möjligt. Det finns flera anledningar till detta. Att tabeslut i komplexa frågor kräver djupare, erfarenhetsmässigt förankradförståelse, vilket gör att den abstraherade förståelse som managers,testledare, gruppledare, eller teststrateger ibland besitter inte räcker för attta de detaljbeslut som behövs. Men det är också såatt de faktiska testarna är de som hela tiden ser ● ● ●förändringarna i systemet och måste anpassa sigtill dem, vilket gör att de som grupp blir mer Antifragile [3]antifragile än andra grupper vars bild av systemet En lekmansdefinition avär så abstrakt att de inte påverkas av dessa dagliga , antifragile är någontingsmå, evolutionära förändringar. Detta gör att (person, objekt,testarna, till skillnad från de andra grupperna, är organisation, etc.) sommer förberedda på att hantera okända problem på blir starkare av påfrestning (inom rimligaett effektivt sätt och inte blir överraskade på gränser). DNA ochsamma sätt eftersom de har stött på så många muskler är två exempel.okända faktorer i systemet tidigare. De har ocksåen helt annan möjlighet att se systematik i ● ● ●problemen de måste hantera, och kan utformalösningen efter det. Slutligen driver ägandeskap över sitt eget arbete enmotivation och ett engagemang som överstiger vad t.ex. pengar kanåstadkomma[4][5]. Engagemang i sig är en förutsättning för t.ex. innovationoch kompetensutveckling, vilka båda är kritiska för en fortsatt effektivtestorganisation.Managers, testledare, gruppledare, teststrateger och andra liknande rollermåste därför veta sina begränsningar och lämna denna typ av detaljbeslut tillde som har bäst förutsättningar för att kunna ta dem för sina respektiveexpertisområden. Konsekvensen om man inte gör det är en suboptimering avtestorganisationen som blir mer eller mindre allvarlig beroende på kontexten.Ett följdproblem av att inte lägga besluten i testarnas händer är att deraskarriärutveckling ofta då går via dessa ledarroller och att färre och färrespecialiserar sig på den faktiska testningen, vi lket får ödesdigrakonsekvenser på sikt, då avancerad testkompetens går förlorad.
  3. 3. Komplicerade lösningarDet finns ett egenvärde i enkelhet, och enkelhet kostar [6]. För hur perfekten komplicerad lösning på ett komplext problem än är så fallerar den ofta aven enkel anledning – den mänskliga faktorn. Man kan göra miss tag, mankanske inte orkar, man kanske inte förstår, man kanske inte ser värdet. Detfinns mängder av förklaringar. Och detta gäller för processer, metoder,strategier, verktyg och så vidare. En komplicerad metod eller process kanockså göra sken av att vara mer heltäckande än en enkel sådan, vilketbegränsar möjligheten och motivationen för testaren att utnyttja sin egenerfarenhet och tysta kunskap.Effektivt urval av testfall är något som universiteten har undersökt . De hartagit fram olika typer av algoritmer för att plocka fram de testfall (jaganvänder ordet här utan att begränsa mig till den traditionella synen påtestfall) ur en mängd som är mest effektiva [7]. Det är också något som drivssom effektiviseringsåtgärder på företag. Om man har 1000 testfall och intehar råd att köra alla 1000 så måste man göra ett urval som minimerar denökade risken. Problematiken ligger ofta i hur komplicerat det är att göradessa urval. Om denna urvalsmetod är för svår att förstå, eller är i för mångasteg, så kanske testaren istället väljer att gå på instinkt och erfarenhet, elleråteranvända tidigare gjorda urval. Men det är inget alternativ att inte göranågot urval alls, eftersom man inte kan köra alla testerna.Lösningen borde alltså vara att göra urvalsmetoden så enkel att den faktisktanvänds, men mer effektiv än ingen formell urvalsmetod alls. En metod, medett fåtal steg som är enkla att förstå och kan tillämpas oavsett erfarenhetutan att begränsa eller stjälpa, som tillför värde. Det är också viktigt attmetoden lämnar utrymme för testarens expertkunskap som komplement ochinte gör sken av att urvalsmetoden tar hänsyn till alla variabler i detkomplexa problem som urvalsmetoden försöker lösa. En magisk urvalsmetodsom alltid ger det optimala urvalet av te ster i alla olika situationer existerarinte om urvalet är komplext, och att ge sken av att vara magisk ger bara enfalsk trygghet. Komplicerade metoder har i många fall svårare att anpassa sigtill nya kontexter, medan enklare met oder inte står inför samma problem,eftersom komplexa metoder ofta har fler parametrar som kan variera mellanolika kontexter.Ett annat exempel på när komplexitet ställer till det ärautomatiseringslösningar. Att fö rsöka designa en massiv, kompliceradautomatiseringslösning som t äcker alla eventuella behov är dömt från börjanatt misslyckas. Problemet är för komplext, och att försöka förutse hurautomatiseringslösningen kommer att behöva bete sig i alla möjliga
  4. 4. scenarion är en omöjlig uppgift. Den typen av komplexitet som enautomatiseringslösning innebär kan bara växa fram evolutionärt. Så klartmåste man ha någon slags riktlinjer och tankar från början, men man måstestarta med en enkel lösning som löser en liten delmängd av de behov man har,för att sedan låta lösningen växa fra m. Man kommer att stöta på problem påvägen, och nå nya insikter baserat på de framgångar och misslyckanden ma nmöter, men det är också det som kommer att göra automatiseringslösningenså mycket mer antifragile. Ett system som kan anpassas till nya problem somuppstår och inte har målat in sig i ett evolutionärt hörn. Modularitet är ettexempel på en sådan systemegenskap. Lösningen blir baserad på praktiskistället för teoretisk erfarenhet.I både urvals- och automatiseringsdiskussionen finns det en möjlighet attförenkla för testaren via effektiva verktyg. Om testar en har ett enkelt,välfungerande verktyg i vilket man bara trycker på en knapp och får tillbakaett förslag till urval, så kan de underligga nde algoritmerna vara hurkomplicerade som helst – för testaren är det fortfarande enkelt. Sa mma sakkan gälla för skapandet av automatiska testfall.Den stora risken med detta är att testaren då plötsligt abstraherar sig fråndet faktiska urvalet eller det faktiska skapandet av testfallet, och inte förstårkomplexiteten i aktiviteten, vilket gör testaren mindre antifragile och harsämre förmåga att anpassa sig till okända framtida problem. Dessutom stårverktygen själva inför samma komplexitetsproblem som testaren . Det finnsalltid risker för att den mänskliga faktorn ställer till det för verktygen också.Även teststrategier står inför detta komplexitetsproblem. Teststrategin skage stöd och riktning i komplexa frågeställningar, men o m teststrategin ärkomplicerad kommer testare att helt enkelt strunta i de delar av den som deinte förstår, och tolka strategin olika. Konsekvensen av detta blir attorganisationen inte har en enhetlig strategi. Vad organisationen måste göraär helt enkelt att skapa en enklare, kanske något mindre fullständig strategi,för att säkra att den faktiskt följs. Det kostar som sagt att förenkla, men detär värt den kostnaden i slutändan. Det är också viktigt att låta testaren självsköta detaljeringen av strategin, eftersom det endast är här kompetensenfinns för detta. Här bör organisationen se till att det är enkelt för testaren attgöra denna detaljering, i form av mallar och riktlinjer som stöd i arbete t.Att en komplicerad process bara är en pappersprodukt är också något somkan inträffa om det faktiskt går att förenkla processen. Ofta skrivs en sådankomplicerad process av någon som inte är tillräckligt praktiskt insatt iverksamheten, och det som händer då är att testare jobbar efter en informellenklare process som uppnår samma mål. Att sen lägga tid på att underhållaprocesser som inte används är fullständigt bortkastat.
  5. 5. SlutsatsTest är tyvärr mycket mer komplext än de flesta som inte är insatta i detförstår. Problemen, som beskrivits i artikeln, uppstår när man tror sig kunnai detalj toppstyra en testorganisation baserad p å en abstraherad, förenkladmodell av verkligheten, eller försöker skapa komplicerade lösningar för attman tror att det behövs komplicerade strategier för att lösa komplexaproblem.Att förenkla kostar – resurser, tid, ansträngning – men det finns egentligeninga andra effektiva alternativ när man står inför alltför komplexa problem.Komplicerade lösningar där man tror sig ta hänsyn till alla de variabler manidentifierar blir svåranvända och känsliga för de variabler man inte kännertill. Enkla lösningar som tar hänsyn till att problemen inte är heltförutsägbara blir istället antifragile och ger oss verktyg som är flexibla nogatt vara användbara i en värld fylld av komplexitet och osäkerhet, samtidigtsom testare får mer incitament att använda dem ofta i sin vardag , eftersomde kräver mindre ansträngning och är lättare att förstå.En enkel lösning kan karakteriseras av t.ex. färre antal steg i en process ellermetod, färre antal in- och utdata, färre beroenden, färre variabler, färreinteraktioner, osv., men det är kritiskt att lösningen fortfarande upp fyllersitt mål tillräckligt väl.Det finns gränser för hur mycket man kan förenkla någonting. Och det gälleratt vara medveten om den gränsen. Enkelhet tillför värde, men också enkostnad. Värdet måste alltid överstiga kostnaden. Grafen nedan är ettexempel på hur det skulle kunna se ut.
  6. 6. Referenser[1] Wicked Problemhttp://en.wikipedia.org/wiki/Wicked_problem[2] 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/[3] Nassim Nicholas Taleb - Antifragilehttp://www.slideshare.net/andrefaria/antifragile-16611267http://en.wikipedia.org/wiki/Antifragile:_Things_That_Gain_from_Disorderhttp://www.amazon.com/Antifragile-Things-That-Gain-Disorder/dp/1400067820/[4] Jurgen Appelo – Agile Management 3.0http://www.noop.nl/people-motivation/http://www.noop.nl/2009/10/people-motivation-target-intrinsic-desires.html[5] Dan Pink – Drivehttp://www.danpink.com/books/drivehttp://www.youtube.com/watch?v=u6XAPnuFjJc[6] Edward de Bono – Simplicity Principleshttp://noscope.com/2005/de-bonos-simplicity-principles/http://www.amazon.com/Simplicity-Edward-De-Bono/dp/0140258396[7] Emelie Engström – Decision support for test management and scope selection in a softwareproduct line contexthttp://www.avhandlingar.se/avhandling/b5a61f2e46/http://dl.acm.org/citation.cfm?id=2005507

×