Abstract
En av de store utfordringene systemutviklingsorganisasjoner møter i dag er å redusere antall feil i egne softwareprodukter. Tilfredsstillende kvalitet er vanskelig å oppnå ettersom kostnadene med verifikasjonsarbeid må holdes på et nivå som gjør produktet konkurransedyktig, samt at produktet skal nå markedet til rett tid. En teknikk som kan benyttes for å oppnå bedre kvalitet er å fokusere testingen på utvalgte deler av systemet på grunnlag av feilprediksjonsmodeller. QA personellet kan dermed bruke sine begrensede ressurser på en mer effektiv måte ved å foreta utvidet testing på de mest kritiske delene av systemet.
Denne oppgaven tar utgangspunkt i utvikling og anvendelse av feilprediksjonsmodeller i forbindelse med et omfattende Telecom Java legacysystem. For å kunne bygge og oppdatere feilprediksjonsmodeller for dette systemet er det nødvendig å trekke ut store mengder data fra et konfigurasjonsstyringssystem. Oppgaven beskriver et arbeid som er utført for å automatisere og kvalitetssikre datainnsamlingsprosessen, samt at det presenteres en løsning som sørger for automatisert preparering av datasett for bygging og anvendelse av feilprediksjonsmodellene.
Arbeidet som er gjort har hatt to hovedformål. Som et første punkt har det vært viktig å få til automatiske kvalitetskontroller av innsamlede data for å sikre et optimalt datagrunnlag, noe som igjen kan øke muligheten for å lage mest mulig presise feilprediksjonsmodeller. Det andre formålet har vært å legge til rette for utvidet anvendelsesområde for modellene, ved at utviklerne daglig skal kunne benytte oppdaterte prediksjoner til bruk for fokuserte kvalitetsforbedringstiltak som for eksempel restrukturering, inspeksjoner og fokusert enhetstesting av klasser med høy feilsannsynlighet. Dette krever en automatisert og effektiv datainnsamlingsprosess, kvalitetssikring, modellbygging og formidling av prediksjonsresultater til utviklerne som er ment å kunne dra nytte av dem.
Løsningen som er utviklet for å møte disse kravene er et Pythonscript som blant annet benytter MySQL Server som en ”back end” løsning, og et grafisk brukergrensesnitt som ”front end” løsning. Løsningen er ikke ment som å være en helautomatisert prosess, men snarere en modulbasert prosess som enkelt kan utføres.
Verktøyet er foreløpig ikke tatt i bruk i selve forskningsprosjektet, men en rekke testkjøringer er foretatt for å verifisere at det gir korrekte verdier. Testkjøringene viser blant annet at det preparerte datasettet er mer konsistent enn det man klarte å oppnå ved den manuelle prosessen, ettersom den automatiserte prosessen foretar en rekke konsistenssjekker og datafiltreringer som avdekker og fjerner feil i datagrunnlaget. Prosessen som tidligere tok bort i mot en uke å utføre tar nå få minutter ved hjelp av det nyutviklede verktøyet.
For at forskningsprosjektet skal ta et skritt videre i retning av et kommersielt produkt, vil det være behov for å gjøre ytterligere automatiseringsarbeid for å oppnå en helautomatisert prosess. Det vil også være avgjørende å utvikle et presentasjonsverktøy som gjør det enkelt for utviklerne å anvende prediksjonene i det daglige arbeidet.