Bug localization har dragit till sig mycket uppmärksamhet på senare tid. De flesta befintliga metoder fokuserar på att identifiera en enda uttalande eller funktion samtal som är mycket sannolikt att innehålla buggar. Även om sådana metoder kan vara mycket korrekta, är det oftast mycket svårt för utvecklare att förstå sammanhanget för felet, med tanke på varje felplats i isolering. I denna studie föreslår vi att modellera programvaruutföranden med grafer på två nivåer av granularitet: metoder och grundläggande block. En enskild nod representerar en metod eller basblock och en kant representerar en metod anrop, metodavkastning eller övergång (vid metoden eller grundläggande blockgranularitet). Med tanke på en uppsättning grafer av korrekta och felaktiga utföranden, föreslår vi att extrahera de mest diskriminerande subgrafer som kontrasterar programflödet av korrekta och felaktiga utföranden. De extraherade subgraferna anger inte bara felet, utan ger också ett informativt sammanhang för att förstå och rätta felet. Olika från traditionell grafbrytning som minerar en mycket stor uppsättning frekventa subgrafer, vi formulera subgrafbrytning som ett optimeringsproblem och direkt generera den mest diskriminerande subgraf med en nyligen föreslagna graf gruvalgoritm LEAP. Vi utökar den ytterligare för att generera en rankad lista över top-k diskriminativa subgrafer som representerar olika platser som kan innehålla fel. Experimentella resultat och fallstudier visar att vår föreslagna metod är både effektiv och effektiv för att bryta diskriminativa subgrafer för fellokalisering och sammanhangsidentifiering.
Cheng m.fl. REF föreslår att man extraherar de mest diskriminerande subgraferna som kontrasterar mot programflödet av korrekt och felaktig körning.
Identifying bug signatures using discriminative graph mining
{'venue': 'ISSTA', 'journal': None, 'mag_field_of_study': ['Computer Science']}