En inrutad vardag eller nya möjligheter

I maj 2007 planterades fröet till det träd som ska bära frukt för första gången omkring september månad. Då bildades en arbetsgrupp med uppgift att ta fram en samling nya standarder för mjukvarutestning och som nu kommer att publiceras om någon månad. Som en av de två personer som utgör den svenska arbetsgruppen vill jag därför göra er uppmärksamma på vad som väntar, så att ni inte blir tagna på sängen när saker väl börjar hända.

Gamla klassiker

Det finns en mängd domänspecifika standarder som till exempel DO-178-B för flygindustrin, MISRA för fordonsindustrin och EN 50128 för järnvägsindustrin. Med andra ord är de flesta relaterade till säkerhetskritiska system. Problemet är dock att en del av dessa standarder har besynnerliga krav för hur saker ska testas. I några av dem finns det specificerat att test ska utföras, vissa tekniker ska användas och specifika kodtäckningsnivåer ska uppnås, men då saknas definitioner för processer, tekniker och hur man ska mäta täckningsnivån.

Om man lyfter blicken och tittar på mer generella standarder hittar vi ”klassiska” standarder som IEEE 829 för dokumentation och BS-7925-2, som innehåller en testprocess för enhetstestning, men i huvudsak definierar olika tekniker för att designa testfall. Problemet med dessa är att de har några år på nacken. IEEE 829 reviderades senast 2008 och BS 7925-2 har inte reviderats sedan den publicerades 1998.

ISO/IEC/IEEE 29119 – Den nya standarden

Målet med ISO/IEC/IEEE 29119 är att den ska vara en heltäckande internationell standard som täcker in områden som tidigare varit förbisedda eller motstridiga. Målet är också att den ska kunna appliceras på både traditionell och agil utveckling. För att undvika att uppfinna hjulet på nytt har man därför ärvt in både IEEE 829 och BS 7925-2 då IEEE inte avser att fortsätta underhålla denna och ett antal andra standarder.

I dagsläget består standarden av fem delar plus en utvärderingsmodell. Denna modell är under utveckling och kommer heta ISO 33063. De fem delarna och deras status är följande:

  1. Concepts & Vocabulary (ligger ute för slutomröstning)
  2. Processes (ligger ute för slutomröstning)
  3. Documentation (ligger ute för slutomröstning)
  4. Testing Techniques (kommer att genomgå slutomröstning i slutet av året)
  5. Keyword-Driven Testing (under utveckling)

En intressant resa

I januari 2011 anslöt jag mig själv till arbetsgruppen för att få bättre inblick i vad standarden innehöll och framför allt kunna påverka innehållet. Vid den tidpunkten var Ola Perman från Tieto i Karlstad den enda aktiva svenska delegaten.

Under mina aktiva år har vår stora stötesten varit att få fram en standard som verkligen ska passa både traditionella och agila utvecklingsprojekt, samt att det ska vara enkelt att finna alla ”shall” krav för att organisationer och företag i slutändan ska kunna certifiera sig.  Eftersom projektet snurrat sedan 2007 har det inte varit helt enkelt att i efterhand förstå alla besluten och den politik som omger framtagandet av en standard. Men efterhand har vi fått mer och mer gehör för våra synpunkter.

I slutet av maj fick jag omsider själv möjlighet att deltaga på arbetsmötet som ägde rum i Montreal. Planen var att framföra ytterligare synpunkter på hur man skulle kunna förbättra standarden. Tyvärr gick detta om intet då tre av delarna låg ute för slutomröstning (som nämnts ovan). Istället kom arbetet att handla om vad som hade gått bra och mindre bra under framtagande av dessa delar samt vad som behöver göras framöver.

Med spåkulan i handen

sis3Vad kommer då framtiden och ISO/IEC/IEEE 29119 erbjuda, en inrutad vardag eller nya möjligheter? Många företag och organisationer försöker idag arbeta agilt medan andra är mer eller mindre tvingade att följa uppsatta processer.  Men även om man arbetar agilt finns det i grund och botten någon form av process. Utöver detta ska man även basera sitt arbete på ”sunda tekniska principer”. Man kan också se det som att även den mest erfarne personen behöver en ledstång att hålla sig i ibland. Vidare finns det organisationer som inte utvecklar systemen själva utan beställer och integrerar dem med sina befintliga och vissa har, eller funderar på att ha, utlokaliserade testavdelningar. Dessa organisationer behöver försäkra sig om att leverantörerna tar testningen seriöst.

Oavsett vilken situation eller roll organisationen eller företagen befinner sig i kan standarden, eller delar av den, vara till stort stöd vid upphandlingar, processförbättring och en rad andra aktiviteter. Exakt vilken påverkan standarden kommer att få på din organisation går inte att förutspå idag. En möjlighet är att det kommer som ett krav, i upphandlingar eller val av partners, att man ska vara certifierad enligt ISO/IEC/IEEE 29119. Självklart finns många frågor kvar att besvara. Det som arbetsgruppen diskuterade var att ta fram ett antal tekniska rapporter för att belysa och hjälpa till att applicera dem inom olika områden, som till exempel agil utveckling, outsourcing samt dess förhållande till förbättringsramverk som TPI Next.

Det primära är att redan nu börja fördjupa sig i innehållet för att förbereda sig och skapa affärsmöjligheter istället för att få en inrutad vardag när det blir ett krav att följa standarden. Det är nu det finns utrymme att komma med åsikter, inte när kraven på att följa standarden trillar in som ett brev på posten.

About Magnus C. Ohlsson

Dr. Magnus C. Ohlsson har fokuserat på utveckling och kvalitetssäkring av programvara i snart 20 år och arbetar idag som kvalitetsspecialist och teststrateg hos System Verification med inriktning mot processförbättring. Han innehar en magisterexamen från Högskolan Karlskrona/Ronneby i programvaruteknik samt doktorsexamen från Lunds Tekniska Högskola. Titeln på avhandlingen är ”Controlling Fault-Prone Components for Software Evolution”. Han har publicerat flertalet artiklar och är medförfattare till boken “Experimentation in Software Engineering”. Hans främsta intresseområde är förbättring av verifierings- och valideringsaktiviteter för att på ett effektivt sätt uppnå rätt kvalitetsnivå inom alla delar av utvecklingsprocessen.