Bakgrund. Populariteten av verktyg för att analysera teknisk skuld, och särskilt av SonarQube, ökar snabbt. SonarQube föreslår en uppsättning kodningsregler, som representerar något fel i koden som snart kommer att återspeglas i ett fel eller kommer att öka underhållsarbetet. Även om förvaltningen av vissa företag uppmuntrar utvecklare att inte bryta mot dessa regler i första hand och att producera kod under en viss teknisk skuldtröskel, utvecklarna är skeptiska till sin betydelse. Syfte. För att förstå vilka SonarQube-kränkningar som faktiskt är felbenägna och för att analysera exaktheten i felprediktionsmodellen har vi designat och genomfört en empirisk studie på 21 välkända öppna källkodsprojekt. Metod. Vi använde SZZ-algoritmen för att märka felinducerande åtaganden. Vi jämförde klassificeringskraften hos åtta modeller för maskininlärning (Logistic Regression, Decision Tree, Random Forest, Extremely Randomized Trees, AdaBoost, Gradient Boosting, XGBoost) för att få en uppsättning överträdelser som korreleras med felinducerande åtaganden. Slutligen beräknade vi den procentandel överträdelser som infördes i det felframkallande brottet och togs bort i det felfastställande åtagandet, för att minska risken för falska korrelationer. Resultat. Bland de 202 överträdelser som SonarQube definierade för Java har endast 26 ett relativt lågt felbenägenhet. Dessutom blir överträdelser som klassificerats som "fel" av SonarQube nästan aldrig ett misslyckande. Följaktligen är noggrannheten hos den felprediktionskraft som SonarQube föreslår extremt låg. Slutsats. De regler som SonarQube tillämpar för att beräkna den tekniska skulden bör undersökas noggrant och deras skadlighet måste bekräftas ytterligare. Företagen bör därför noga överväga vilka regler de verkligen behöver tillämpa, särskilt om deras mål är att minska felbenägenheten. Populariteten av verktyg för att analysera tekniska skulder, såsom SonarQube, ökar snabbt. I synnerhet SonarQube har antagits av mer än 85K organisationer 1 inklusive nästan 15K offentliga öppen källkod projekt 2. SonarQube analyserar kodefterlevnad mot en uppsättning regler. Om koden bryter mot någon regel, SonarQube lägger till den tid som behövs för att refaktor den kränkta regeln som en del av den tekniska skulden. SonarQube identifierar också en uppsättning regler som "buggar", hävdar att de "representerar något fel i koden och snart kommer att återspeglas i ett fel", dessutom hävdar de att noll falska positiva förväntas från "buggar" 3. Även SonarQube rekommenderar att anpassa out-of-the-box uppsättning regler (kallas "sonar sätt") 4, utövare är ovilliga att anpassa den och vanligtvis förlita sig på "sonar sätt" standard regel-uppsättning [43]. Fråga SonarQube offentliga instans APIs 5, Vi kan se att mer än 98% av de offentliga projekten (14,732 projekt upp till 14,957) använder "sonar sätt" regeln som. Men även om utvecklarna inte är säkra på nyttan av reglerna [43], [12], De är uppmärksamma på olika regler kategorier och prioriteringar och ta bort överträdelser relaterade till regler med hög stränghet [43] för att undvika risken för fel [12]. Investeringar för uppgifter som inte ger de förväntade fördelarna. Flera studier har analyserat koddofternas inverkan [16] på fel [41], [45], [25][34]. I bästa fall har endast ett begränsat antal studier beaktat överträdelser av reglerna i SonarQube [14], [26], men de undersökte inte effekterna av överträdelserna i SonarQube som ansågs vara "fel" på fel. Målet med detta arbete är tvåfaldigt: -Analysera felbenägenheten hos SonarQube regelbrott, och i synnerhet förstå om regler som klassificeras som "fel" är mer felbenägna än säkerhets- och underhållsregler. -Analysera noggrannheten hos den kvalitetsmodell som SonarQube tillhandahåller för att förstå felprediktionsnoggrannheten hos de regler som klassificeras som "fel".
Lenarduzzi m.fl. REF undersökte felbenägenheten hos SonarQube-överträdelser, för att förstå vilka överträdelser som faktiskt är felbenägna och för att bedöma felprediktionsmodellens noggrannhet.
On the Fault Proneness of SonarQube Technical Debt Violations: A comparison of eight Machine Learning Techniques.
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Computer Science']}