Type Regression Testing to Detect Breaking Changes in Node.js Libraries
We present a novel technique, type regression testing, to automatically determine whether an update of a library implementation affects the types of its public interface, according to how the library is being used by other npm packages. By leveraging available test suites of clients, type regression testing uses a dynamic analysis to learn models of the library interface. Comparing the models before and after an update effectively amplifies the existing tests by revealing changes that may affect the clients.
Experimental results on widely used libraries show that the technique can identify type-related breaking changes with high accuracy. It fully automatically classifies at least 89% of the updates correctly as either major or as minor or patch, and it detects 25 breaking changes among the minor and patch updates.
Thu 19 Jul
|13:50 - 14:15|
Wing LamUniversity of Illinois at Urbana-Champaign, Siwakorn SrisakaokulUniversity of Illinois at Urbana-Champaign, USA, Blake BassettUniversity of Illinois at Urbana-Champaign, USA, Peyman MahdianUniversity of Illinois at Urbana-Champaign, USA, Tao Xie, Pratap LakshmanMicrosoft, India, Peli de HalleuxMicrosoft ResearchDOI
|14:15 - 14:40|
Junjie ChenPeking University, Wenxiang HuPeking University, Lingming Zhang, Dan HaoPeking University, Sarfraz KhurshidUniversity of Texas at Austin, Lu ZhangPeking UniversityDOI
|14:40 - 15:05|
Gianluca MezzettiAarhus University, Denmark, Anders MøllerAarhus University, Martin Toldam TorpAarhus UniversityDOI
|15:05 - 15:30|
Sihan Li, Farah HaririUniversity of Illinois at Urbana-Champaign, Gul AghaUniversity of Illinois at Urbana-Champaign, USADOI