TThe Eclipse framework is a popular and widely used framework that has been evolving for over a decade. The framework provides both stable interfaces (APIs) and unstable interfaces (non-APIs). Despite being discouraged by Eclipse, application developers often use non-APIs which cause their systems to fail when ported to new framework releases. Previous studies showed that applications using relatively old non-APIs are more likely to be compatible with new releases compared to the ones that used newly introduced non-APIs. Furthermore, from our previous study about the stability of Eclipse internal interfaces, we discovered that there exist 327K stable non-API methods as the Eclipse framework evolves. In the same study, we recommended that 327K stable non-API methods can be used by Eclipse interface providers as possible candidates for promotion to stable interfaces. However, since non-APIs are unsupported and considered to be immature i.e., can contain bugs, to this end there exist a need to first investigate the stable non-APIs for possible bugs before they can be promoted to APIs. In this study, we empirically investigated the stable non-API for possible bugs using Sonarqube software quality tool. We discovered that over 79.8% classes containing old stable non-APIs methods have zero bugs. Results from this study can be used by both interface providers and users as a starting point to analyze which interfaces are well tested and also estimate how much work could be involved when performing bug fixing for a given eclipse release.
翻译:Tclipse 框架是一个广受欢迎的且广泛使用的框架,已经发展了十多年。框架既提供了稳定的界面(APIs),也提供了不稳定的非API界面(非API)。尽管受到 Eclipse 的阻拦,应用程序开发者往往使用非APIs, 从而在移植到新框架发布时导致其系统失败。先前的研究显示,使用相对老旧的非API的应用程序更有可能与新推出的非API使用的新版本兼容。此外,根据我们先前关于 Eclipse 内部界面稳定性的研究,我们发现随着 Eclipse 框架的演变,存在327K 稳定的非API 方法和不稳定的界面(非API 方法)。在同一研究中,我们建议,当 Eclipse 接口提供者在移植到新推出的界面时,可以使用327K的非API 方法作为可能的促进对象。然而,由于非API 可能用到的老式工具,我们可以先进行稳定地对非API 进行测试。我们使用这种实验性研究,在使用旧式的软件工具中可以使用这种稳定的方法。