Varje organisation på planeten arbetar med kvalitetsteknik, oavsett om de vet om det eller inte. Själva handlingen att skapa en produkt eller tjänst innebär att brottas med utmaningen att leverera hög kvalitet. Att ignorera kvalitet har nästan alltid lett till katastrofala resultat.
Faktum är att kostnaden för programvara av låg kvalitet i USA enbart uppgick till 2,8 biljoner dollar under 2018.
Alla söker efter den heliga graalen för kvalitetsprodukter och -tjänster: fler kunder och tillväxt, lägre kostnader och ökade vinstmarginaler. Disciplinen kvalitetsteknik är ett resultat av denna strävan, som långt ifrån är avslutad.
Kvalitetsteknik är en uppsättning metoder, processer och principer som hjälper en organisation att förbättra sina affärsprocesser för att uppnå en viss kvalitetsnivå för sina produkter eller tjänster. Som en klok yrkesperson inom kvalitetssäkring har du säkert lagt märke till den cirkulära definitionen som innehåller ordet kvalitet, vilket leder oss till nästa fråga:
Vad är kvalitet? Vilka aspekter av kvalitet finns det?
Kvalitet är inte lätt att definiera eftersom den har flera aspekter som är subjektiva. Filosofen och författaren Robert Pirsig skrev faktiskt en bok om kvalitet: ”Zen och konsten att sköta en motorcykel”, där han formulerade sin metafysik om kvalitet.
Intressant nog refuserades hans bok av 121 förlag som ansåg att den höll låg kvalitet. Pirsig gav dock inte upp, och förlag nummer 122 ansåg att ”Den här boken är otroligt briljant, den är förmodligen ett geniverk …” och publicerade den. Därefter såldes den i över 5 miljoner exemplar.
Pirsig kan ha varit något på spåren när han sade att kvalitet är svår att definiera, men vi förstår den alla intuitivt. Som ingenjörer kan och vill vi dock inte bara låta saken bero, så vi kommer att försöka ta fram en lista över kvalitetsaspekterna.

Över hela världen använder tillverkningsindustrin olika kvalitetsstandarder och metoder för att bättre standardisera kvalitet, såsom ISO 9001, Six Sigma och Total Quality Management.
Kvalitetsteknik inom programvara
Programvaruindustrin har insett att den korrigerande metod som föreskrivs av kvalitetssäkring och kvalitetskontroll – att hitta och åtgärda buggar i efterhand – har nått så långt den kan.
Kvalitetsteknik erbjuder en väg framåt genom ett proaktivt och förebyggande angreppssätt för att implementera kvalitetssystem som löser det kvalitetsproblem som programvaruutveckling i allmänhet och produktutveckling i synnerhet står inför.
Om vi bortser från filosofin att ”kvalitet ligger i betraktarens öga” hanterar kvalitetsteknik inom programvara två aspekter av att säkerställa hög kvalitet:
Funktionell kvalitet, som behandlar de funktionella aspekterna av en programvaruprodukt eller -lösning: Gör den det som förväntas? Överensstämmer den med en designspecifikation?
Strukturell kvalitet, som behandlar programvarans icke-funktionella aspekter: Är den robust? Säker? Har den hög tillgänglighet? Är den lätt att underhålla?
Utvecklingen och livscykeln för kvalitetsteknik inom programvara
Kvalitetsteknik inom programvara genomgår en renässans, där organisationer gör allt de kan för att förebygga eller upptäcka defekter så tidigt som möjligt.
Detta har lett till en mängd nya QE-verktyg och metoder, däribland testautomatisering, vänsterförskjutna tester, DevOps, DevSecOps, kontinuerlig integrering och kontinuerlig driftsättning (CI/CD), SDET, testdriven utveckling (TDD) och beteendedriven utveckling (BDD), riskhantering samt artificiell intelligens.
Tillsammans bildar allt detta ett framväxande angreppssätt för kvalitetsteknik.

Data och mätetalens roll inom kvalitetsteknik

Det är väl etablerat att data och mätvärden spelar roll för kvalitet. Faktum är att de är ett av de viktigaste sätten att avgöra om ditt initiativ för kvalitetsutveckling får fäste och fungerar. Men vilken typ av mätvärden talar vi om?
Att använda mätvärden för att åstadkomma förändring är en icke-trivial process.
I dag är det möjligt att få fram betydligt mer data än vi vet vad vi ska göra med, och det är lätt att drunkna i detta veritabla hav. Därför är det viktigt att ta reda på vilka data och mätningar som är relevanta. För att parafrasera den högt ärade Rumsfeld: ”Se upp för de okända okända!”
Jag sticker ut hakan och säger att mätvärden som mäter slutliga utfall och resultat är de mest talande av alla. Kvalitetsutvecklingsinitiativ måste trots allt resultera i en starkare och bättre verksamhet. Detta omfattar mätvärden som:
- Produktens försäljningsvolym
- Kundnöjdhet – särskilt kundernas rekommendationer till andra
- Antal och typ av supportförfrågningar
Att komma fram till dessa mätvärden kan dock ta allt från några månader till ett par år efter implementeringen, och så länge har ingen tid!

För att kunna följa kvalitetsförbättringen medan den sker använder vi mätvärden som:
- Kvalitetskostnaden
- Defektmätvärden
- Täckningsgrad
- Prestanda- och release-mätvärden
- Mätvärden för produktivitet, effektivitet och ändamålsenlighet.
I slutändan bör alla data och mätvärden hjälpa ledare inom kvalitetsutveckling att identifiera risker i förväg, minimera defekter och teknisk skuld samt öka flexibiliteten och förkorta tiden till marknaden.
Varför kvalitetsutveckling är viktigt
EN SANN HISTORIA: Tidigt i min karriär ledde jag ett programvaruteam som levererade lösningar till kunder. En vacker dag deltog jag i ett försäljningssamtal med en potentiell kund – låt oss kalla dem ”Frustrated Financial Consultants Inc.” – som ville ha en webbaserad applikation för tids- och kostnadsredovisning. Frustrated hade över 1 000 konsulter som arbetade för deras olika kunder.
Jag träffade deras CTO, och han förklarade att de var trötta på sin befintliga skräddarsydda tidrapporteringslösning (som någon hade tagit nio månader att utveckla) och uppvisade ett märkligt beteende. När en anställd klickade på en länk för att fylla i en tidrapport fick de se ett formulär som såg ut så här:

Som en skicklig QA-ingenjör har du utan tvekan lagt märke till det Grand Canyon-stora problemet i det här formuläret.
Varför i hela friden skulle en användare behöva välja sitt eget namn från en lista över anställda!?
Många användare, som hade viktigare saker att göra, glömde att välja sitt eget namn från listan och lät standardvärdet Amy Adams stå kvar. Hon hade oturen att vara det första namnet i den sorterade listan.
Men det blir ännu bättre. Stackars Amy Adams var mycket missnöjd med detta, så problemet löstes genom att skapa en fiktiv anställd vid namn A. Aardvark! Jag skojar inte!
Nu upptäckte faktureringschefen varje vecka att A. Aardvark hade hamnat högst upp på produktivitetslistan med inte mindre än 300 till 500 udda fakturerade timmar! Den stackars kvinnan fick ägna en halv dag av sin dyrbara tid varje vecka åt att hitta och jaga rätt på de personer som hade gjort detta misstag och få dem att rätta till det.
Och det var så A. Aardvark blev månadens hårdast arbetande anställda under flera månader i rad, med en produktivitet på 6 till 10 gånger den normala! Jag svär, jag hade inte kunnat hitta på det här även om jag hade velat…

Hur som helst får historien ett lyckligt slut för de anställda på Frustrated. På ett par månader utvecklade vi en toppmodern tidrapporteringsapplikation som inte krävde att de anställda valde sina egna namn från en lista, och därefter levde de lyckliga i alla sina dagar!
Och där har ni det, gott folk, det är därför kvalitetsarbete är viktigt.
Vad gör en kvalitetsingenjör?
Programvarukvalitetsingenjörer är en integrerad del av teamet för programvarudesign och -kvalitet. De övervakar programvaruutvecklingsprocessen, från idé till genomförande, för att säkerställa att programvaran uppfyller förutbestämda kvalitetsstandarder.
Certifierade kvalitetsingenjörer använder tekniker för kontinuerlig förbättring och olika verktyg för kvalitetskontroll för att säkerställa kvaliteten. Åtgärder som korrigerande och förebyggande åtgärder används för att eliminera eventuella kvalitetsbrister.
För att möta dagens programvaruorganisationers varierande och krävande behov har programvarukvalitetsingenjörer en mängd olika roller, bland annat inom design, SDET, testning och mycket annat. Vanligtvis är detta en utmanande roll som kräver flera kompetensområden för att utföras väl, bland annat problemlösning, felsökning, statistisk processkontroll, programvarutestning, automatisering och kvalitetskontroll.
American Society for Quality (ASQ) erbjuder certifieringen Certifierad programvarukvalitetsingenjör för kvalitetsingenjörer.
Få fler insikter
Övergången från kvalitetskontroll och kvalitetssäkring till kvalitetsutveckling är verkligen på god väg. Kvalitetsutveckling har förändrat hur programvara skapas och utvecklas fortfarande.
Utveckla din SaaS-verksamhet och ditt ledarskap. Prenumerera på vårt nyhetsbrev för de senaste insikterna för CTO:er och blivande teknikledare. Vi hjälper dig att skala smartare och leda starkare med guider, resurser och strategier från ledande experter!
