DepOwl: Detecting Dependency Bugs to Prevent Compatibility Failures
Abstract
Applications depend on libraries to avoid reinventing the wheel. Libraries may have incompatible changes during evolving. As a result, applications will suffer from compatibility failures. There has been much research on addressing detecting incompatible changes in libraries, or helping applications co-evolve with the libraries. The existing solution helps the latest application version work well against the latest library version as an afterthought. However, end users have already been suffering from the failures and have to wait for new versions. In this paper, we propose DepOwl, a practical tool helping users prevent compatibility failures. The key idea is to avoid using incompatible versions from the very beginning. We evaluated DepOwl on 38 known compatibility failures from StackOverflow, and DepOwl can prevent 35 of them. We also evaluated DepOwl using the software repository shipped with Ubuntu-19.10. DepOwl detected 77 unknown dependency bugs, which may lead to compatibility failures.
BibTeX
@inproceedings{Jia-al:ICSE21,
author = {Zhouyang Jia and
Shanshan Li and
Tingting Yu and
Chen Zeng and
Erci Xu and
Xiaodong Liu and
Ji Wang and
Xiangke Liao},
title = {{DepOwl:} Detecting Dependency Bugs to Prevent Compatibility Failures},
booktitle = {ICSE},
pages = {86--98},
publisher = {{IEEE}},
year = {2021},
}