Taming Behavioral Backward Incompatibilities via Cross-Project Testing and Analysis

Taming Behavioral Backward Incompatibilities via Cross-Project Testing and Analysis
复制标题

DOI:
10.1145/3377811.3380436
复制
发表时间:
2020-06
期刊:
2020 IEEE/ACM 42nd International Conference on Software Engineering (ICSE)
影响因子:
--
通讯作者:
Lingchao Chen;Foyzul Hassan;Xiaoyin Wang;Lingming Zhang
Lingchao Chen;Foyzul Hassan;Xiaoyin Wang;Lingming Zhang
中科院分区:
其他
文献类型:
--
作者:
Lingchao Chen;Foyzul Hassan;Xiaoyin Wang;Lingming Zhang

文献摘要

被引文献

相似文献

在现代软件开发中,软件库在减少软件开发工作量和提高软件质量方面起着至关重要的作用。然而,与此同时,软件库和客户端软件项目的异步升级往往会导致不同版本的库和客户端项目之间的不兼容性。当库发展时,对于库开发人员来说,保持所谓的向后兼容性并保持其所有外部行为不变通常是非常具有挑战性的,并且可能发生行为向后不兼容性(BBI)。在实践中,库项目的回归测试套件经常无法检测到所有的BBI。因此,在本文中,我们提出DeBBI通过跨项目测试和分析来检测BBI,即,使用各种客户端项目的测试套件来检测库BBI。由于执行所有可能的客户项目可能非常耗时,DeBBI将跨项目BBI检测问题转换为传统的信息检索(IR)问题,以更高的概率执行客户项目,从而更早地检测BBI。此外,DeBBI考虑了项目多样性和测试相关性信息,以实现更快的BBI检测。实验结果表明,与朴素的跨项目BBI检测相比,DeBBI可以将检测第一个和平均唯一BBI的端到端测试时间减少99.1%和70.8%。此外,DeBBI已被应用于其他流行的第三方库。到目前为止,DeBBI已经检测到97个BBI错误,其中19个已经确认为以前未知的错误。
In modern software development, software libraries play a crucial role in reducing software development effort and improving software quality. However, at the same time, the asynchronous upgrades of software libraries and client software projects often result in incompatibilities between different versions of libraries and client projects. When libraries evolve, it is often very challenging for library developers to maintain the so-called backward compatibility and keep all their external behavior untouched, and behavioral backward incompatibilities (BBIs) may occur. In practice, the regression test suites of library projects often fail to detect all BBIs. Therefore, in this paper, we propose DeBBI to detect BBIs via cross-project testing and analysis, i.e., using the test suites of various client projects to detect library BBIs. Since executing all the possible client projects can be extremely time consuming, DeBBI transforms the problem of cross-project BBI detection into a traditional information retrieval (IR) problem to execute the client projects with higher probability to detect BBIs earlier. Furthermore, DeBBI considers project diversity and test relevance information for even faster BBI detection. The experimental results show that DeBBI can reduce the end-to-end testing time for detecting the first and average unique BBIs by 99.1% and 70.8% for JDK compared to naive cross-project BBI detection. Also, DeBBI has been applied to other popular 3rd-party libraries. To date, DeBBI has detected 97 BBI bugs with 19 already confirmed as previously unknown bugs.