Abstract-This paper introducerar en ny teknik för att förutsäga latent programvara buggar, kallas förändring klassificering. Ändra klassificering använder en maskin lära klassificerare för att avgöra om en ny programvara förändring är mer lik tidigare buggy ändringar eller rena ändringar. På detta sätt, ändrar klassificeringen förutsäger förekomsten av buggar i programvara förändringar. Klassifiern tränas med hjälp av funktioner (i maskininlärningssinne) extraherade från revideringshistoriken för ett programvaruprojekt som lagras i dess programvarukonfigurationshanteringsarkiv. Den utbildade klassificeraren kan klassificera ändringar som buggiga eller rena, med en 78 procent noggrannhet och en 60 procent buggy ändra återkalla i genomsnitt. Ändra klassificering har flera önskvärda egenskaper: 1) Förutsägelsen granularitet är liten (en ändring till en enda fil), 2) förutsägelser kräver inte semantisk information om källkoden, 3) tekniken fungerar för ett brett spektrum av projekttyper och programmeringsspråk, och 4) förutsägelser kan göras omedelbart efter slutförandet av en förändring. Bidrag från detta dokument inkluderar en beskrivning av metoden för ändringsklassificering, tekniker för att extrahera funktioner från källkoden och ändra historia, en karakterisering av resultatet av förändringsklassificeringen i 12 projekt med öppen källkod, och en utvärdering av den prediktiva kraften hos olika grupper av funktioner.
Det är baserat på Change Classification REF, en bugg förutsägelse teknik som använder maskininlärning klassificering algoritmer för att klassificera ändringar som gjorts till källkoden som buggy eller ren.
Classifying Software Changes: Clean or Buggy?
{'venue': 'IEEE Transactions on Software Engineering', 'journal': 'IEEE Transactions on Software Engineering', 'mag_field_of_study': ['Computer Science']}