Open-source software (OSS) is a pillar of modern software development. Its success depends on the dedication of maintainers who work constantly to keep their libraries stable, adapt to changing needs, and support a growing community. Yet, they receive little to no continuous feedback on how the projects that rely on their libraries actually use their APIs. We believe that gaining these insights can help maintainers make better decisions, such as refining testing strategies, understanding the impact of changes, and guiding the evolution of their libraries more effectively. We propose the use of community-based analytics to analyze how an OSS library is used across its dependent ecosystem. We conduct an empirical study of 10 popular Java libraries and each with their respective dependent ecosystem of 50 projects. Our results reveal that while library developers offer a wide range of API methods, only 16% on average are actively used by their dependent ecosystem. Moreover, only 74% of the used API methods are partially or fully covered by their library test suite. We propose two metrics to help developers evaluate their test suite according to the APIs used by their community, and we conduct a survey on open-source practitioners to assess the practical value of these insights in guiding maintenance decisions.
翻译:开源软件(OSS)是现代软件开发的支柱。其成功依赖于维护者的持续奉献,他们不断努力保持库的稳定性、适应变化的需求并支持日益增长的社区。然而,他们很少甚至从未获得关于依赖其库的项目如何实际使用其API的持续反馈。我们认为,获取这些洞察可以帮助维护者做出更优决策,例如改进测试策略、理解变更影响以及更有效地指导库的演进。我们提出利用社区分析来研究OSS库在其依赖生态系统中的使用情况。我们对10个流行的Java库及其各自50个项目的依赖生态系统进行了实证研究。结果表明,尽管库开发者提供了广泛的API方法,但平均仅有16%被其依赖生态系统实际使用。此外,仅74%被使用的API方法在其库测试套件中得到部分或完全覆盖。我们提出了两项指标,帮助开发者根据社区使用的API评估其测试套件,并对开源实践者进行了调查,以评估这些洞察在指导维护决策方面的实际价值。