hur vi mäter programvarukvalitet
innan vi kan leverera en mjukvaruprodukt måste vi mäta dess kvalitet för att säkerställa att den är så felfri som vi eventuellt kan göra den. Men för att göra detta måste vi först veta vilka programkvalitetsmått vi mäter mot.
Vad är mätvärdena för mätning av programkvalitet?
mätvärdena för mätning av programvarukvalitet kan vara extremt tekniska, men kan kokas ner i följande fyra viktiga kategorier:
- kodkvalitet
- prestanda
- säkerhet
- användbarhet
kodkvalitet
buggfri och semantiskt korrekt kod är mycket viktigt för premium programvara. Kodkvalitetsstandarder kan delas in i kvantitativa och kvalitativa mätvärden. Kvantitativa kvalitetsmått mäter hur stor eller komplex programvaran är, antalet rader och funktioner Den innehåller, hur många buggar det finns per 1000 rader kod, och mer. Kvalitativa kodkvalitetsmått mäter funktioner som underhåll, läsbarhet, tydlighet, effektivitet och dokumentation. Dessa mätvärden mäter hur lätt koden är att läsa, förstå och om den är skriven enligt kodningsstandarder.
prestanda
varje program är byggt för ett ändamål. Prestandamätningar mäter om produkten uppfyller sitt syfte och om den fungerar som den är avsedd att. Det hänvisar också till hur applikationen använder resurser, dess skalbarhet, kundnöjdhet och svarstider.
säkerhet
programvarusäkerhetsmått mäter den inneboende säkerheten för ett program och säkerställer att det inte sker några obehöriga ändringar i produkten när den överlämnas till klienten.
användbarhet
eftersom alla programvaruprodukter är byggda för en slutanvändare är ett viktigt kvalitetsmått om programmet är praktiskt och användarvänligt. Vi ser också till att kunden är nöjd med funktioner och prestanda.
När Mäter Vi Programvarukvalitet?
vårt team för mjukvaruutveckling och kvalitetssäkring (QA) arbetar tillsammans för att säkerställa att programkvaliteten är av högsta standard. QA-teamet gör produkttestning, en gång utvecklad. Utvecklingsteamet upprätthåller, mäter och ständigt förbättrar programvarans kvalitet under bygget. Men medan vi upprätthåller programvarans kvalitet i alla utvecklingsstadier, kan vi testa dem på olika punkter i utvecklingen, baserat på den använda utvecklingsmetoden. Vi använder två metoder när vi utvecklar program – vattenfall och Agile. Eftersom de två metoderna levererar produkten på olika sätt testas de också annorlunda.
mätning av programvarukvalitet: Vattenfallsmetodik
Vattenfallsmetodik är när vi planerar, kör, testar och levererar i olika faser. Varje fas är klar innan nästa börjar. Som ett resultat, med en produkt som utvecklats med denna metod, måste vi upprätthålla produktens kvalitet i varje steg – krav, design, implementering, verifiering (eller testning) och underhåll. Eftersom testningen görs i slutet av byggnaden tar det mindre tid och kräver inte mycket regressionstestning.
mätning av programvarukvalitet: Agile
de agila metoderna är mer lyhörda och flexibla, där utvecklingen är uppdelad i faser eller sprintar. Målet är att i slutet av varje sprint, som kan vara mellan två och sex veckor lång, levererar vi en högkvalitativ minsta livskraftig produkt som är fullt fungerande och testad. Det betyder att vi måste se till att vi behåller produktprogramvarans kvalitet vid varje steg, i varje sprint. Produkter som utvecklats med hjälp av agila metoder testas oftare. Det betyder emellertid också att de behöver konstant regressionstestning för att säkerställa att en uppdatering inte har brutit de funktioner som testades och passerade i tidigare byggnader.
hur upprätthåller Utvecklare kvaliteten på programkoden?
en bra utvecklare är en som kan leverera högkvalitativ programkod med minimala buggar. Vi säger ’minimal’ eftersom vissa buggar är oundvikliga under utveckling och det som är viktigt är hur vi fixar eller kontrollerar dem. Det är därför Utvecklare mäter sin kodkvalitet när de utvecklas, eftersom det betyder att de kan identifiera och åtgärda eventuella problem under byggnaden. De mäter sin kod mot kodningsstandarder, kodrecensioner, kodanalysatorer och refraktorns äldre kod.
i detta skede testas programvarukvaliteten manuellt med korta enhetstester. Ett enhetstest är det första steget i mjukvarukvalitetsmätning, där den minsta testbara delen av programvaran – en modul eller komponent i programmet eller till och med en enda funktion i koden – kontrolleras.
till exempel kan det finnas ett antal datafält som behöver fyllas i som en del av en större programvara. Ett enhetstest kan bara testa det första fältet och inte de andra, eller någon annan del av programvaran.
utvecklarna skapar ett delat bibliotek med hundratals sådana tester, med repeterbar funktionalitet inbäddad i programvaran, så dessa tester kan användas om och om igen, över projekt för att effektivt upptäcka fel i programkoden i utvecklingsstadiet. De utför också automatiserad testning med hjälp av en kodanalysator, SonarQube, som kontrollerar programvara för:
- tydlighet
- underhåll
- dokumentation
- utbyggbarhet
- effektivitet
- vältestad
- Säker kodning
- Kodrefactoring
- utbyggbarhet
det hjälper oss:
- uppförandekod recensioner
- upprätthålla kodningsstandarder
- identifiera buggar och antalet potentiella buggar i programvaran
vi använder den också för att bedöma:
- programmets strukturella komplexitet (antal kodrader)
- eventuella sårbarheter som finns i repositories
- kod luktar (kod som är förvirrande eller svår att underhålla)
- kodtäckning (mått på kod som omfattas av enhetstester)
- koddubblering (mängd kod som upprepas)
Hur mäter QA-teamet programvarukvalitet?
QA-testare granskar alla mätvärden för programkvalitet genom manuell och automatiserad testning (med selen), inklusive produktkodens giltighet och standard. Manuella testmått kan delas in i två klasser – basmått och beräknade mätvärden. Basmått består av de råa, oanalyserade data som samlas in, medan beräknade mätvärden härleds från informationen som samlades in i basmått.
manuella Testmått
några av de viktiga manuella testmått som vi anser för programvarukvalitet är:
- testfall utförande produktivitetsmått
- testfall förberedelse produktivitetsmått
- Testvaraktighet
- Enhetstesttäckning (mängden programkod som omfattas av enhetstester)
- Pass/fail procent av tester, etc.
Automatiseringstestmått
Automatiseringstestning kan bidra till att minska mängden Manuell tid som spenderas vid testning av programvarukvalitet. Här är några av de viktiga mätvärdena för automatiseringstestning som vi överväger:
- Total Testvaraktighet
- enhetstesttäckning
- Sökvägstäckning (hur många linjärt oberoende banor i programmet testet täcker)
- Kravtäckning
- godkänd/underkänd procentandel av tester
- antal defekter
- procentandel av test automatiserad testtäckning (mot den totala testtäckningen som inkluderar manuell testning)
- testkörning (totala tester utförda under byggnaden)
- Användbara vs irrelevanta resultat
- defekter i produktionen
- procent av brutna byggnader etc.
andra typer av tester för att mäta programkvalitet
vi använder också olika typer av tester för att mäta programkvalitet. Dessa är:
- funktionstestning
- Test för att bryta
- belastningstestning
- regressionstestning
- säkerhetstestning
- penetrationstestning
- Användaracceptanstestning