10.09.2013 Views

System Verification

System Verification

System Verification

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Testarens roll i en förunderlig<br />

föränderlig värld<br />

NFI Testforum 2013-04-16


AGENDA<br />

• The man behind the mask<br />

– Vem är jag?<br />

• En historisk tillbakablick<br />

– Testning , silver bullets och testyrkets utveckling<br />

• Olika sätt att se på test<br />

– Testskolor<br />

• Kunskap är viktigt<br />

– Med vad är kunskap och erfarenhet?<br />

• Idag och imorgon<br />

– Dagens och morgondagens utmaningar och hur vi tar oss an dem<br />

• En fallstudie<br />

– Framgångsfaktorer i en föränderlig värld<br />

• Mina budord<br />

– Låt mig få frälsa er från ondo …<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


VEM ÄR JAG?<br />

• Magister i programvaruteknik – BTH<br />

– Yes, jag kan programmera C++!<br />

• Teknologie doktor i programvaruteknik – LTH<br />

– Controlling Fault-Prone Components for Software Evolution<br />

• Konsult hos SAAB Combitech <strong>System</strong>s<br />

– Allt mellan himmel och ”test”<br />

• Chef för testavdelningen på Obigo (Teleca)<br />

– Test och kvalitetssäkring av mobiltelefonapplikationer<br />

• Sektionschef på ST-Ericsson<br />

– Test av signaleringen mellan mobil och fasta nätet<br />

• Teststrateg och kvalitetsspecialist hos <strong>System</strong> <strong>Verification</strong><br />

– Processförbättring, teststrategier, kurser, mentorskap osv.<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


© COPYRIGHT SYSTEM VERIFICATION, 2013


EN TILLBAKABLICK<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


DET HISTORISKA PERSPEKTIVET<br />

• Test är vad programmerare gör för att visa att deras program fungerar (1950)<br />

• Test är processen att exekvera program eller system i avsikt att hitta fel (1979)<br />

• Test är varje aktivitet som syftar till att utvärdera egenskaper och kapacitet hos<br />

ett program eller system och att avgöra om det möter uppsatta krav (1985)<br />

• Test är en process som omfattar alla livscykelaktiviteter för en<br />

programvaruprodukt, både statiska och dynamiska, samt behandlar planering,<br />

förberedelse och utvärdering av programvaruprodukter för att avgöra om de<br />

uppfyller specificerade krav, för att demonstrera att de är klara för användning<br />

och för att hitta fel (2013)<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


SILVER BULLETS<br />

• Programmeringsspråk<br />

– Fortran, C++ och Java<br />

• Formella metoder<br />

– Z, Esterel och VDM<br />

• Verktyg<br />

– CASE, PL/I och BPStruct<br />

• Utvecklingsmetoder<br />

– Spiral, XP och Scrum<br />

• Processramverk<br />

– CMMI, TPI och CTP<br />

• Experience factories<br />

• Search-based testing<br />

• …<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


FEL DET SENASTE ÅRET<br />

• <strong>System</strong>fel hos <strong>System</strong>bolaget (maj 2012). En oplanerad uppdatering skickas ut till<br />

kassaterminalerna mitt under rusningstid kvällen före Kristi himmelsfärdshelgen.<br />

75% av terminalerna var utslagna mellan 10 och 30 minuter.<br />

• Trafikverket tappade signalen från spåren (juli 2012). Ledningscentralen var<br />

tvungen att stoppa tågtrafiken i Västsverige. Sammanlagt 35 tåg stod stilla under<br />

flera timmar. Många passagerare måste evakueras.<br />

• En man i Trondheim lånade ut sin iPhone till sitt barn. Barnet slog in fel siffror i<br />

telefonens kodlås upprepade gånger, vilket låste telefonen för 42 år(!) framåt<br />

(september 2012).<br />

• Kungsbacka kommun upptäckte ett säkerhetsfel i sitt diarium på webbplatsen<br />

(oktober 2012) som gjorde att besökare själva kunde lägga till och ta bort<br />

dokument. Kommunen stängde ned diariet i avvaktan på en lösning.<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


VART SKALL VI BÖRJA?<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


KOMPLEXITETEN HOS TESTYRKET<br />

Kvalitet<br />

Ickefunktionell<br />

testning<br />

Funktionell<br />

testning<br />

Utveckling<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


TESTROLLER<br />

• Testare<br />

• Avancerad testdesigner<br />

• Testledare<br />

• Teststrateg<br />

• Automatiseringsarkitekt<br />

• Testarkitekt<br />

• Prestandatestare<br />

• Säkerhetstestare<br />

• Användbarhetsspecialist<br />

• Förbättringsspecialist<br />

• …<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


TESTSKOLOR<br />

Analytiska<br />

Akademiskt<br />

Rigoröst<br />

Specifikationer<br />

Kontextdrivna<br />

Hitta viktiga problem<br />

Arbetssättet beror på<br />

sammanhanget<br />

Standard<br />

Processer<br />

Mätbart<br />

Certifieringar<br />

Styrande/tvingande<br />

arbetssätt<br />

CMMI, TPI och ISO<br />

Kvalitet<br />

Automatiserade<br />

enhetstester<br />

Leveranser<br />

XP, Scrum och TDD<br />

Agila<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


INDIVIDENS FÖRMÅGA<br />

Modeller<br />

Vision<br />

Strategier<br />

Processer<br />

Planer<br />

Organisation<br />

Q-system<br />

Skapa<br />

Använd<br />

Tillämpning<br />

Förmåga<br />

Skapa<br />

Använd<br />

Produkt<br />

Arkitektur<br />

Design<br />

Mjukvara<br />

Hårdvara<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


KUNSKAPSTYPER<br />

• Explicit kunskap (påståendekunskap)<br />

– Teoretisk, objektiv kunskap, lätt att förstå, samla in och dokumentera<br />

– Det som man lär ut på en kurs eller en föreläsning<br />

• Implicit kunskap (färdighets- och förtrogenhetskunskap)<br />

– Tyst eller outtalad kunskap, t.ex. knyta skorna eller cykla<br />

– Inte kunna förklara hur det ska gå till utan måste visa<br />

– Den är praktisk och erhålls genom övning<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


DREYFUS STEGE<br />

• Novis<br />

– Följer strikt givna regler för varje typ av uppgift<br />

• Avancerad nybörjare<br />

– Samlar fakta och börjar lära sig rätt saker samt är igenkännande<br />

• Kompetent<br />

– Sammanvägande av olika aspekter i situationen till en helhet<br />

– Gör saker systematiskt och målinriktat<br />

– Ser på sammanhangen vad som krävs<br />

• Professionell<br />

– Helhetsstyrt upplevande av situationer<br />

– Viktigt och oviktigt direkt skiljs ut från varandra, dvs. man är insatt i området<br />

– Fattar beslut efter medveten överläggning med sig själv om effekter av olika åtgärder<br />

• Expert<br />

– Intuitiv uppfattning med mängder av samtidiga överväganden och bedömningar<br />

– Inga medvetna överläggningar med sig själv utan förstår direkt<br />

– Om det inte fungerar som tänkt löser man problemet som Professionell<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


IDAG OCH IMORGON<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


DAGSLÄGET<br />

• Kundnytta<br />

– Leverera kundnytta och så tidigt som möjligt<br />

– Kvalitetsaspekter och icke-funktionella krav<br />

• Situationsanpassat<br />

– Hitta de problem som intressenterna bryr sig om<br />

– Ökad feltolerans<br />

– Personlig skicklighet – kombinera utforskande tester och klassisk testdesign<br />

• Agila arbetssätt<br />

– Processerna påverkar både arbetssätt och projektorganisationens utformning<br />

– Lokalisera och rätta fel samt implementera viss funktionalitet<br />

– Tvärvetenskapligt – krav, arkitektur, programmering, test och verksamhetskunskap<br />

• Beställande organisationer<br />

– Kravställer, integrerar, testar och rullar ut<br />

– Distribuerad utveckling hos olika leverantörer<br />

– Standardisering av komponenter, plattformar och system<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


FÖRUTSÄTTNINGAR OCH KRAV<br />

• Testaren<br />

– Lyfta frågor om krav tidigt<br />

– Efterfråga testbarhet<br />

– Möjlighet att testa under utvecklingen<br />

– Möjlighet att pröva olika lösningar – test ger snabb återkoppling<br />

– Närma sig utveckling<br />

– Teamwork minskat oberoende<br />

• Testledaren<br />

– Definiera övergripande teststrategi<br />

– Se till att olika testtyper och områden täcks<br />

– Ansvara för övergripande styrning och rapportering<br />

– Främja bra arbetssätt i teamen<br />

– Samla erfarenheter (t.ex. Scrum of Scrums ur ett testperspektiv)<br />

– Testprocessförbättring<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


VÄRLDEN BLIR ALLT MER KOMPLEX<br />

• Nya krav, nya teknologier och ökad komplexitet<br />

– Mer och mer fokus på icke-funktionella krav<br />

• Allt högre grad av integration<br />

– Webb- och molnbaserade tjänster<br />

– Trådlös och mobil teknologi<br />

– ”Something as a Service” (SaaS, IaaS, PaaS...)<br />

• Affärsfall skall demonstrera nyttan med testning<br />

– Test måste bli bättre på att stödja verksamhetsmålen<br />

• Krav att tillhandahålla fler och mer definierade mätetal<br />

– Mer effektivt testarbete<br />

– Sänkta kostnader<br />

• Hur möter vi den här utmaningen som kravställare, utvecklare och testare?<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


TEAMWORK PÅ RIKTIGT<br />

• Hitta och involvera alla intressenter så tidigt som möjligt<br />

• Närmare samarbete mellan krav, utveckling och test<br />

• Rollerna smälter samman<br />

• Kvalitet är allas ansvar<br />

• Virtuella team arbetar tillsammans på distans<br />

• Utnyttjar teknikens möjligheter<br />

– HD-video – nättelefoni och email<br />

– 3D-video – virtuell desktop<br />

• Crowd sourcing blir allt vanligare<br />

Utveckling<br />

Krav<br />

Test<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


ETT EXEMPELSCENARIO – COACHNING<br />

• Vårt arbete handlar om att identifiera fel och brister samt informera människor<br />

om risker …<br />

• Testning är inte en aktivitet eller en avdelning alternativt ett team<br />

– Det är en rollaspekt och inte en jobbtitel<br />

• Hjälpa andra fokusera på detaljerna<br />

• Fokus på att förbättra servicen till kunderna istället för testningen samt att<br />

hjälpa andra förbättra sig istället för att öka behovet av vår egen inblandning<br />

• Fokusera vår passion på helhetsbilden och hjälpa andra fokusera på detaljerna<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


ETT EXEMPELSCENARIO – COACHNING<br />

Utvecklare (design-<br />

granskningar och teknisk test)<br />

Managers (QP och mätdef.)<br />

Kunder (uppgiftsbaserad test<br />

och kravgranskningar)<br />

Användare (beta test och PIR )<br />

Mätningar – behöver vi denna roll?<br />

Support (kravgranskningar,<br />

teknisk test och OAT)<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


BEHOV AV HÖG KOMPETENS<br />

• Alla inblandade behöver hög kompetens<br />

– Allmänna kunskaper<br />

– Domänkunskaper<br />

– Specialistkunskaper<br />

• Testare behöver förstå både tekniken och användarna<br />

• Vi kommer att möta ökad konkurrens<br />

• Nå framgång genom att sticka ut från mängden<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


RESULTAT FRÅN EN FALLSTUDIE<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


FRAMGÅNGSFAKTORERNA<br />

• Lång erfarenhet<br />

• Testkunskap<br />

• Kunskapsutbyte (t.ex. demos och dokumentation av koden)<br />

• Minimera antalet varianter<br />

• Teststrategi /testplan<br />

• Kombination av olika testangreppssätt (t.ex. automatiserade och utforskande<br />

tester)<br />

• Kodgranskningar<br />

• Utökade integrationskriterier samt kriterier för underhåll<br />

• Aktiva chefer med uppsatta mål<br />

• Släpper ingenting om man inte känner att kvaliteten är tillräckligt bra<br />

• Accepterar inga “snabbfixar” och är beslutna att leverera hög kvalitet<br />

• Man arbetar proaktivt med kvalitet<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


HUR LÄR NI ER NYA SAKER?<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


FÖR ATT KOMMA VIDARE KRÄVS…<br />

• Kunskap<br />

– Att känna till fakta och metoder<br />

• Erfarenhet<br />

– Att lära av misstag och framgång<br />

• Gott omdöme<br />

– Att kunna urskilja och bedöma<br />

• Färdigheter<br />

– Att kunna göra och hantera<br />

• Kontakter<br />

– Att ha kontaktnät och social förmåga<br />

• Självförtroende<br />

– Att tro på sin förmåga<br />

• Engagemang och motivation<br />

– Att ha lust och vilja, att ha fysisk och psykisk energi<br />

• ”Lär-aktiv”<br />

– Att vilja och kunna vidareutvecklas<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


STEGET VIDARE<br />

• Deltaga på kurser<br />

– Grunden för att få grundläggande kunskap att arbeta vidare med<br />

• Lärgrupper<br />

– Kan jämföras med studiecirkeln<br />

– Metodiken är självlärande grupper, där initiativ och planering görs gemensamt av<br />

varje grupp<br />

– Lärande sker i planerade studier över tid med utgångspunkt från ett lärande material<br />

som alla deltagare har tillgång till<br />

• Konferenspresentationer<br />

– Sammanställa den erfarenhet man samlat på sig och få den nedskriven<br />

– Frågor från konferensdeltagare ger möjlighet till djupare reflektion<br />

• Standarder och forum<br />

– Genom diskussion med andra erfarna personer inom området lär man sig mer och<br />

man tvingas argumentera för sina ståndpunkter<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


STEGET VIDARE<br />

• Mentorskap<br />

– En mentor ansvarar för en adepts personliga<br />

utveckling<br />

– Svara på mentorns frågor, eller beakta mentorn som<br />

föredöme, för att komma fram till vad som är rätt<br />

och fel<br />

– Därmed utvecklas till en mer framgångsrik individ,<br />

både i det personligen och i yrkeslivet<br />

• Coachning<br />

– En stödjande verksamhet som går ut på att<br />

hjälpa en person eller en grupp personer<br />

att nå vissa mål<br />

– Vanligt inom idrotten men numera även yrkeslivet<br />

– Kan utövas på många olika sätt t.ex. att sätta upp<br />

delmål, uppmuntra och ställa frågor<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


I DET STORA HELA …<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


MINA BUDORD<br />

1. Kvalitetssäkring är situationsanpassat<br />

2. Hög kvalitet är resultatet av ett målinriktat arbete<br />

3. En variation av olika sätt att testa är nyckeln till framgång<br />

4. Kvalitetssäkring måste utföras genom ett systems hela livscykel<br />

5. Ett fruktsamt samarbete kräver en öppen och tydlig kommunikation<br />

6. Alla personer kan bidra till att öka kvaliteten oavsett tidigare erfarenhet men på<br />

olika sätt<br />

7. Kvalitetssäkring är ett hantverk med en bas i teoretiska kunskaper<br />

8. Vägen till erfarenhet går genom praktisk tillämpning och reflektion<br />

9. Utmaningen ligger i att utmana konventionerna och att tillse att affärsvärde och<br />

kundnytta levereras<br />

10. Kontinuerlig förbättring är av största vikt men bara en sak åt gången<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


SUMMERING<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


© COPYRIGHT SYSTEM VERIFICATION, 2013


SUMMERING<br />

• Alla dessa lessons learned och retrospectives …<br />

– … men man missar individens förmåga!<br />

• Många omogna företag och fler skall den vägen vandra …<br />

– … det finns många som behöver vår hjälp och kunskap!<br />

• Du ser flisan i din broders öga …<br />

– … rannsaka dig själv först vart du och ditt företag befinner sig!<br />

• Det handlar om att lära sig dansa argentinsk tango …<br />

– … att vara lättrörlig och anpassningsbar!<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


SIST MEN INTE MINST …<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


KONTAKTINFORMATION<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013


KONTAKTINFORMATION (OLD SCHOOL)<br />

Magnus C. Ohlsson<br />

<strong>System</strong> <strong>Verification</strong> Sweden AB<br />

Hyllie Stationstorg 13<br />

SE-215 32 Malmö, Sweden<br />

magnus.c.ohlsson@systemverification.com<br />

+46 73 661 28 60<br />

PS. Ni vet väl att det är en ny teststandard på gång, ISO/IEC 29119 DS.<br />

© COPYRIGHT SYSTEM VERIFICATION, 2013

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!