Speeding up development may produce technical debt, i.e., not-quite-right code for which the effort to make it right increases with time as a sort of interest. Developers may be aware of the debt as they admit it in their code comments. Literature reports that such a self-admitted technical debt survives for a long time in a program, but it is not yet clear its impact on the quality of the code in the long term. We argue that self-admitted technical debt contains a number of different weaknesses that may affect the security of a program. Therefore, the longer a debt is not paid back the higher is the risk that the weaknesses can be exploited. To discuss our claim and rise the developers' awareness of the vulnerability of the self-admitted technical debt that is not paid back, we explore the self-admitted technical debt in the Chromium C-code to detect any known weaknesses. In this preliminary study, we first mine the Common Weakness Enumeration repository to define heuristics for the automatic detection and fix of weak code. Then, we parse the C-code to find self-admitted technical debt and the code block it refers to. Finally, we use the heuristics to find weak code snippets associated to self-admitted technical debt and recommend their potential mitigation to developers. Such knowledge can be used to prioritize self-admitted technical debt for repair. A prototype has been developed and applied to the Chromium code. Initial findings report that 55\% of self-admitted technical debt code contains weak code of 14 different types.
翻译:加速发展可能会产生技术债务,也就是说,不是对立的代码,因此,债务偿还时间越长,债务就越有可能被利用。为了讨论我们的要求,提高开发商对自行承认的技术债务的脆弱性的认识,而这种自认承认的技术债务在一项方案里会长期存在,但尚不清楚它对守则质量的长期影响。我们争辩说,自认承认的技术债务含有若干不同的弱点,可能影响方案的安全。因此,债务偿还得越久,弱点就越有可能被利用。为了讨论我们的要求,提高开发商对自认承认的技术债务的脆弱性的认识,我们探索C编码中自认承认的技术债务长期存在,以发现任何已知的弱点。在这项初步研究中,我们首先将共同Weakness技术编码储存起来,以界定自动检测和修正弱化代码的超常性。然后,我们分析C编码,找到自认承认的技术债务偿还能力,最后,用技术编码来阻止自我承认的薄弱的技术债务偿还能力,用这种技术编码来证明自己。