Learning Software Constraints via Installation Attempts
Ran Ben Basat, Maayan Goldstein, Itai Segall

TL;DR
This paper introduces algorithms that learn software package dependencies, conflicts, and defects through installation attempts, especially when repository structures are unknown, aiming to minimize testing queries.
Contribution
The paper presents novel algorithms that infer software dependency structures from installation attempts without prior repository knowledge, optimizing query efficiency.
Findings
Algorithms successfully learn dependencies and conflicts from installation data.
Proven bounds on the number of queries needed for different scenarios.
Applicable to complex, unknown repository structures.
Abstract
Modern software systems are expected to be secure and contain all the latest features, even when new versions of software are released multiple times an hour. Each system may include many interacting packages. The problem of installing multiple dependent packages has been extensively studied in the past, yielding some promising solutions that work well in practice. However, these assume that the developers declare all the dependencies and conflicts between the packages. Oftentimes, the entire repository structure may not be known upfront, for example when packages are developed by different vendors. In this paper, we present algorithms for learning dependencies, conflicts and defective packages from installation attempts. Our algorithms use combinatorial data structures to generate queries that test installations and discover the entire dependency structure. A query that the algorithms…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Advanced Malware Detection Techniques
