Testarens roll i en förunderlig föränderlig värld NFI Testforum 2013-04-16
AGENDA The man behind the mask Vem är jag? En historisk tillbakablick Testning, silver bullets och testyrkets utveckling Olika sätt att se på test Testskolor Kunskap är viktigt Med vad är kunskap och erfarenhet? Idag och imorgon Dagens och morgondagens utmaningar och hur vi tar oss an dem En fallstudie Framgångsfaktorer i en föränderlig värld Mina budord Låt mig få frälsa er från ondo
VEM ÄR JAG? Magister i programvaruteknik BTH Yes, jag kan programmera C++! Teknologie doktor i programvaruteknik LTH Controlling Fault-Prone Components for Software Evolution Konsult hos SAAB Combitech Systems Allt mellan himmel och test Chef för testavdelningen på Obigo (Teleca) Test och kvalitetssäkring av mobiltelefonapplikationer Sektionschef på ST-Ericsson Test av signaleringen mellan mobil och fasta nätet Teststrateg och kvalitetsspecialist hos System Verification Processförbättring, teststrategier, kurser, mentorskap osv.
EN TILLBAKABLICK
DET HISTORISKA PERSPEKTIVET Test är vad programmerare gör för att visa att deras program fungerar (1950) Test är processen att exekvera program eller system i avsikt att hitta fel (1979) Test är varje aktivitet som syftar till att utvärdera egenskaper och kapacitet hos ett program eller system och att avgöra om det möter uppsatta krav (1985) Test är en process som omfattar alla livscykelaktiviteter för en programvaruprodukt, både statiska och dynamiska, samt behandlar planering, förberedelse och utvärdering av programvaruprodukter för att avgöra om de uppfyller specificerade krav, för att demonstrera att de är klara för användning och för att hitta fel (2013)
SILVER BULLETS Programmeringsspråk Fortran, C++ och Java Formella metoder Z, Esterel och VDM Verktyg CASE, PL/I och BPStruct Utvecklingsmetoder Spiral, XP och Scrum Processramverk CMMI, TPI och CTP Experience factories Search-based testing
FEL DET SENASTE ÅRET Systemfel hos Systembolaget (maj 2012). En oplanerad uppdatering skickas ut till kassaterminalerna mitt under rusningstid kvällen före Kristi himmelsfärdshelgen. 75% av terminalerna var utslagna mellan 10 och 30 minuter. Trafikverket tappade signalen från spåren (juli 2012). Ledningscentralen var tvungen att stoppa tågtrafiken i Västsverige. Sammanlagt 35 tåg stod stilla under flera timmar. Många passagerare måste evakueras. En man i Trondheim lånade ut sin iphone till sitt barn. Barnet slog in fel siffror i telefonens kodlås upprepade gånger, vilket låste telefonen för 42 år(!) framåt (september 2012). Kungsbacka kommun upptäckte ett säkerhetsfel i sitt diarium på webbplatsen (oktober 2012) som gjorde att besökare själva kunde lägga till och ta bort dokument. Kommunen stängde ned diariet i avvaktan på en lösning.
VART SKALL VI BÖRJA?
KOMPLEXITETEN HOS TESTYRKET Kvalitet Ickefunktionell testning Funktionell testning Utveckling
TESTROLLER Testare Avancerad testdesigner Testledare Teststrateg Automatiseringsarkitekt Testarkitekt Prestandatestare Säkerhetstestare Användbarhetsspecialist Förbättringsspecialist
TESTSKOLOR Styrande/tvingande arbetssätt CMMI, TPI och ISO Analytiska Kvalitet Akademiskt Rigoröst Specifikationer Kontextdrivna Hitta viktiga problem Arbetssättet beror på sammanhanget Standard Processer Mätbart Certifieringar Automatiserade enhetstester Leveranser XP, Scrum och TDD Agila
INDIVIDENS FÖRMÅGA Modeller Tillämpning Produkt Vision Strategier Processer Planer Organisation Q-system Skapa Använd Förmåga Skapa Använd Arkitektur Design Mjukvara Hårdvara
KUNSKAPSTYPER Explicit kunskap (påståendekunskap) Teoretisk, objektiv kunskap, lätt att förstå, samla in och dokumentera Det som man lär ut på en kurs eller en föreläsning Implicit kunskap (färdighets- och förtrogenhetskunskap) Tyst eller outtalad kunskap, t.ex. knyta skorna eller cykla Inte kunna förklara hur det ska gå till utan måste visa Den är praktisk och erhålls genom övning
DREYFUS STEGE Novis Följer strikt givna regler för varje typ av uppgift Avancerad nybörjare Samlar fakta och börjar lära sig rätt saker samt är igenkännande Kompetent Sammanvägande av olika aspekter i situationen till en helhet Gör saker systematiskt och målinriktat Ser på sammanhangen vad som krävs Professionell Helhetsstyrt upplevande av situationer Viktigt och oviktigt direkt skiljs ut från varandra, dvs. man är insatt i området Fattar beslut efter medveten överläggning med sig själv om effekter av olika åtgärder Expert Intuitiv uppfattning med mängder av samtidiga överväganden och bedömningar Inga medvetna överläggningar med sig själv utan förstår direkt Om det inte fungerar som tänkt löser man problemet som Professionell
IDAG OCH IMORGON
DAGSLÄGET Kundnytta Leverera kundnytta och så tidigt som möjligt Kvalitetsaspekter och icke-funktionella krav Situationsanpassat Hitta de problem som intressenterna bryr sig om Ökad feltolerans Personlig skicklighet kombinera utforskande tester och klassisk testdesign Agila arbetssätt Processerna påverkar både arbetssätt och projektorganisationens utformning Lokalisera och rätta fel samt implementera viss funktionalitet Tvärvetenskapligt krav, arkitektur, programmering, test och verksamhetskunskap Beställande organisationer Kravställer, integrerar, testar och rullar ut Distribuerad utveckling hos olika leverantörer Standardisering av komponenter, plattformar och system
FÖRUTSÄTTNINGAR OCH KRAV Testaren Lyfta frågor om krav tidigt Efterfråga testbarhet Möjlighet att testa under utvecklingen Möjlighet att pröva olika lösningar test ger snabb återkoppling Närma sig utveckling Teamwork minskat oberoende Testledaren Definiera övergripande teststrategi Se till att olika testtyper och områden täcks Ansvara för övergripande styrning och rapportering Främja bra arbetssätt i teamen Samla erfarenheter (t.ex. Scrum of Scrums ur ett testperspektiv) Testprocessförbättring
VÄRLDEN BLIR ALLT MER KOMPLEX Nya krav, nya teknologier och ökad komplexitet Mer och mer fokus på icke-funktionella krav Allt högre grad av integration Webb- och molnbaserade tjänster Trådlös och mobil teknologi Something as a Service (SaaS, IaaS, PaaS...) Affärsfall skall demonstrera nyttan med testning Test måste bli bättre på att stödja verksamhetsmålen Krav att tillhandahålla fler och mer definierade mätetal Mer effektivt testarbete Sänkta kostnader Hur möter vi den här utmaningen som kravställare, utvecklare och testare?
TEAMWORK PÅ RIKTIGT Hitta och involvera alla intressenter så tidigt som möjligt Närmare samarbete mellan krav, utveckling och test Rollerna smälter samman Kvalitet är allas ansvar Virtuella team arbetar tillsammans på distans Utnyttjar teknikens möjligheter HD-video nättelefoni och email 3D-video virtuell desktop Crowd sourcing blir allt vanligare Utveckling Krav Test
ETT EXEMPELSCENARIO COACHNING Vårt arbete handlar om att identifiera fel och brister samt informera människor om risker Testning är inte en aktivitet eller en avdelning alternativt ett team Det är en rollaspekt och inte en jobbtitel Hjälpa andra fokusera på detaljerna Fokus på att förbättra servicen till kunderna istället för testningen samt att hjälpa andra förbättra sig istället för att öka behovet av vår egen inblandning Fokusera vår passion på helhetsbilden och hjälpa andra fokusera på detaljerna
ETT EXEMPELSCENARIO COACHNING Kunder (uppgiftsbaserad test och kravgranskningar) Utvecklare (designgranskningar och teknisk test) Managers (QP och mätdef.) Mätningar behöver vi denna roll? Support (kravgranskningar, teknisk test och OAT) Användare (beta test och PIR )
BEHOV AV HÖG KOMPETENS Alla inblandade behöver hög kompetens Allmänna kunskaper Domänkunskaper Specialistkunskaper Testare behöver förstå både tekniken och användarna Vi kommer att möta ökad konkurrens Nå framgång genom att sticka ut från mängden
RESULTAT FRÅN EN FALLSTUDIE
FRAMGÅNGSFAKTORERNA Lång erfarenhet Testkunskap Kunskapsutbyte (t.ex. demos och dokumentation av koden) Minimera antalet varianter Teststrategi /testplan Kombination av olika testangreppssätt (t.ex. automatiserade och utforskande tester) Kodgranskningar Utökade integrationskriterier samt kriterier för underhåll Aktiva chefer med uppsatta mål Släpper ingenting om man inte känner att kvaliteten är tillräckligt bra Accepterar inga snabbfixar och är beslutna att leverera hög kvalitet Man arbetar proaktivt med kvalitet
HUR LÄR NI ER NYA SAKER?
FÖR ATT KOMMA VIDARE KRÄVS Kunskap Att känna till fakta och metoder Erfarenhet Att lära av misstag och framgång Gott omdöme Att kunna urskilja och bedöma Färdigheter Att kunna göra och hantera Kontakter Att ha kontaktnät och social förmåga Självförtroende Att tro på sin förmåga Engagemang och motivation Att ha lust och vilja, att ha fysisk och psykisk energi Lär-aktiv Att vilja och kunna vidareutvecklas
STEGET VIDARE Deltaga på kurser Grunden för att få grundläggande kunskap att arbeta vidare med Lärgrupper Kan jämföras med studiecirkeln Metodiken är självlärande grupper, där initiativ och planering görs gemensamt av varje grupp Lärande sker i planerade studier över tid med utgångspunkt från ett lärande material som alla deltagare har tillgång till Konferenspresentationer Sammanställa den erfarenhet man samlat på sig och få den nedskriven Frågor från konferensdeltagare ger möjlighet till djupare reflektion Standarder och forum Genom diskussion med andra erfarna personer inom området lär man sig mer och man tvingas argumentera för sina ståndpunkter
STEGET VIDARE Mentorskap En mentor ansvarar för en adepts personliga utveckling Svara på mentorns frågor, eller beakta mentorn som föredöme, för att komma fram till vad som är rätt och fel Därmed utvecklas till en mer framgångsrik individ, både i det personligen och i yrkeslivet Coachning En stödjande verksamhet som går ut på att hjälpa en person eller en grupp personer att nå vissa mål Vanligt inom idrotten men numera även yrkeslivet Kan utövas på många olika sätt t.ex. att sätta upp delmål, uppmuntra och ställa frågor
I DET STORA HELA
MINA BUDORD 1. Kvalitetssäkring är situationsanpassat 2. Hög kvalitet är resultatet av ett målinriktat arbete 3. En variation av olika sätt att testa är nyckeln till framgång 4. Kvalitetssäkring måste utföras genom ett systems hela livscykel 5. Ett fruktsamt samarbete kräver en öppen och tydlig kommunikation 6. Alla personer kan bidra till att öka kvaliteten oavsett tidigare erfarenhet men på olika sätt 7. Kvalitetssäkring är ett hantverk med en bas i teoretiska kunskaper 8. Vägen till erfarenhet går genom praktisk tillämpning och reflektion 9. Utmaningen ligger i att utmana konventionerna och att tillse att affärsvärde och kundnytta levereras 10. Kontinuerlig förbättring är av största vikt men bara en sak åt gången
SUMMERING
SUMMERING Alla dessa lessons learned och retrospectives men man missar individens förmåga! Många omogna företag och fler skall den vägen vandra det finns många som behöver vår hjälp och kunskap! Du ser flisan i din broders öga rannsaka dig själv först vart du och ditt företag befinner sig! Det handlar om att lära sig dansa argentinsk tango att vara lättrörlig och anpassningsbar!
SIST MEN INTE MINST
KONTAKTINFORMATION
KONTAKTINFORMATION (OLD SCHOOL) Magnus C. Ohlsson System Verification Sweden AB Hyllie Stationstorg 13 SE-215 32 Malmö, Sweden magnus.c.ohlsson@systemverification.com +46 73 661 28 60 PS. Ni vet väl att det är en ny teststandard på gång, ISO/IEC 29119 DS.