Sådan måler vi Programmelkvalitet
før vi kan levere et programmelprodukt, skal vi måle dets kvalitet for at sikre, at det er så fejlfrit, som vi overhovedet kan gøre det. Men for at gøre dette skal vi først vide, hvilke kvalitetsmålinger vi måler imod.
Hvad er målingerne til måling af Programmelkvalitet?
målingerne til måling af programmelkvalitet kan være ekstremt tekniske, men kan koges ned i følgende fire vigtige kategorier:
- kodekvalitet
- ydeevne
- sikkerhed
- brugervenlighed
kodekvalitet
fejlfri og semantisk korrekt kode er meget vigtig for premium-programmer. Kodekvalitetsstandarder kan opdeles i kvantitative og kvalitative målinger. Kvantitative kvalitetsmålinger måler, hvor stort eller komplekst programmet er, antallet af linjer og funktioner det indeholder, hvor mange fejl der er pr.1.000 linjer kode og mere. Kvalitative kodekvalitetsmålinger måler funktioner som vedligeholdelighed, læsbarhed, klarhed, effektivitet og dokumentation. Disse målinger måler, hvor let koden er at læse, forstå, og om den er skrevet i henhold til kodningsstandarder.
ydeevne
hvert program er bygget til et formål. Ydelsesmålinger måler, om produktet opfylder sit formål, og om det udfører den måde, det er beregnet til. Det henviser også til, hvordan applikationen bruger ressourcer, dens skalerbarhed, kundetilfredshed og responstider.
sikkerhed
sikkerhedsmålinger måler et programs iboende sikkerhed og sikrer, at der ikke sker uautoriserede ændringer i produktet, når det overleveres til kunden.
brugervenlighed
da alle programmelprodukter er bygget til en slutbruger, er en vigtig kvalitetsmåling, om programmet er praktisk muligt og brugervenligt. Vi sikrer også, at kunden er tilfreds med de funktioner og ydeevne.
Hvornår Måler Vi Programmernes Kvalitet?
vores programudviklingsteam og kvalitetssikringsteam arbejder sammen for at sikre, at programkvaliteten er af højeste standard. KVALITETSSIKRINGSTEAMET udfører produkttest, når det er udviklet. Men udviklingsholdet vedligeholder, måler og forbedrer konstant programmelkvaliteten under opbygningen. Selvom vi opretholder programmelkvalitet på tværs af alle udviklingsstadier, kan vi dog teste dem på forskellige punkter i udviklingen baseret på den anvendte udviklingsmetode. Vi bruger to metoder, når vi udvikler programmer – vandfald og Agile. Da de to metoder leverer produktet på forskellige måder, testes de også forskelligt.
Måleprogrammets Kvalitet: Vandfaldsmetodologi
Vandfaldsmetodologi er, når vi planlægger, udfører, tester og leverer i forskellige faser. Hver fase er afsluttet, inden den næste begynder. Som et resultat, med et produkt udviklet ved hjælp af denne metode, er vi nødt til at opretholde produktets kvalitet på alle trin – krav, design, implementering, verifikation (eller test) og vedligeholdelse. Da testen udføres i slutningen af bygningen, tager det mindre tid og kræver ikke meget regressionstest.
Måleprogrammets Kvalitet: Agile
de Agile metoder er mere lydhøre og fleksible, hvor udviklingen er opdelt i faser eller sprints. Målet er, at vi i slutningen af hver sprint, som kan være mellem to til seks uger lang, leverer et højkvalitets minimum levedygtigt produkt, der er fuldt funktionelt og testet. Det betyder, at vi er nødt til at sikre, at vi opretholder produktprogramkvaliteten på hvert trin, i hver sprint. Produkter udviklet ved hjælp af Agile metoder testes oftere. Det betyder dog også, at de har brug for konstant regressionstest for at sikre, at en opdatering ikke har brudt de funktionaliteter, der blev testet og bestået i tidligere builds.
hvordan vedligeholder udviklerne kvaliteten af Programmelkoden?
en god udvikler er en, der kan levere høj kvalitet programkode med minimale fejl. Vi siger ‘minimal’, fordi nogle fejl under udviklingen er uundgåelige, og det der betyder noget er, hvordan vi løser eller kontrollerer dem. Derfor måler udviklere deres kodekvalitet, når de udvikler sig, da det betyder, at de kan identificere og løse eventuelle problemer under opbygningen. De måler deres kode mod kodningsstandarder, kodevurderinger, kodeanalysatorer og refraktor arvskode.
på dette trin testes programmelkvaliteten manuelt med korte enhedstest. En enhedstest er den første fase af programmelkvalitetsmåling, hvor den mindste testbare del af programmet – Et modul eller en komponent i programmet eller endda en enkelt funktion inden for koden – kontrolleres.
der kan f.eks. være en række datafelter, der skal udfyldes som en del af et større program. En enhed test kan bare teste det første felt og ikke de andre, eller faktisk nogen anden del af programmet.
udviklerne opretter et delt bibliotek med hundreder af sådanne tests med gentagelig funktionalitet indlejret i programmet, så disse tests kan bruges igen og igen på tværs af projekter til effektivt at opdage fejl i programkoden på udviklingsstadiet. De udfører også automatiseret test ved hjælp af en kodeanalysator, Sonarkbe, som kontrollerer:
- klarhed
- vedligeholdelighed
- dokumentation
- udvidelighed
- effektivitet
- velafprøvet
- Sikker kodning
- Koderefactoring
- udvidelighed
det hjælper os:
- Conduct code anmeldelser
- Oprethold kodningsstandarder
- Identificer fejl og antallet af potentielle fejl i programmet
vi bruger det også til at vurdere:
- programmets strukturelle kompleksitet (antal kodelinjer)
- eventuelle sårbarheder, der findes i depoter
- Kodelugt (kode, der er forvirrende eller vanskelig at vedligeholde)
- kodedækning (mål for kode dækket af enhedstest)
- Kodeduplikation (mængde kode, der gentages))
Hvordan måler kvalitetsstyringssystemet Kvalitet?
KVALITETSKVALITETSTESTERE gennemgår alle målinger af programmelkvalitet gennem manuel og automatiseret test (ved hjælp af selen), herunder gyldigheden og standarden for Produktkoden. Manuelle testmålinger kan opdeles i to klasser – Basismålinger og beregnede målinger. Basismålinger består af de rå, uanalyserede data, der indsamles, mens beregnede målinger er afledt af de oplysninger, der blev indsamlet i basismålingerne.
manuelle testmålinger
nogle af de vigtige manuelle testmålinger, som vi overvejer for programmelkvalitet, er:
- test case udførelse produktivitetsmålinger
- test case forberedelse produktivitetsmålinger
- Testvarighed
- unit test dækning (mængden af programkode, der er omfattet af unit tests)
- Pass/fail procentdel af tests osv.
Automatiseringstestmålinger
Automatiseringstest kan hjælpe med at reducere mængden af manuel tid, der bruges til test af programmelkvalitet. Her er nogle af de vigtige målinger til automatiseringstest, som vi overvejer:
- samlet testvarighed
- enhedstestdækning
- Stidækning (hvor mange lineært uafhængige stier i programmet testen dækker)
- Kravsdækning
- Pass/fail procentdel af test
- antal defekter
- procentdel af automatiserede test testdækning (mod den samlede testdækning, der inkluderer manuel test)
- testudførelse (samlede test udført under bygningen)
- nyttige vs. irrelevante resultater
- produktionsfejl
- procentdel af ødelagte bygninger osv.
andre typer test til måling af Programmelkvalitet
vi bruger også forskellige typer test til at måle programmelkvalitet. Disse er:
- funktionel test
- test til brud
- test af Belastningsydelse
- regressionstest
- sikkerhedstest
- penetrationstest
- test af brugeraccept