Regression testing is an important part of the development process but suffers from the presence of flaky tests. Flaky tests nondeterministically pass or fail when run on the same code, misleading developers about the correctness of their changes. A common type of flaky tests are async flaky tests that flakily fail due to timing-related issues such as a asynchronous waits that do not return in time or different thread interleavings during execution. Developers commonly try to repair async flaky tests by inserting or increasing some wait time, but such repairs are unreliable.
We propose FlakeSync, a technique for automatically repairing async flaky tests by introducing synchronization for a specific test execution. FlakeSync works by identifying a critical point, representing some key part of code that must be executed early w.r.t. other concurrently executing code, and a barrier point, representing the part of code that should wait until the critical point has been executed. FlakeSync can modify code to check when the critical point is executed and have the barrier point keep waiting until the critical point has been executed, essentially synchronizing these two parts of code for the specific test execution. Our evaluation of FlakeSync on known flaky tests from prior work shows that FlakeSync can automatically repair 83.75% of async flaky tests, and the resulting changes add a median overhead of only 1.00X the original test runtime. We submitted 10 pull requests with our changes to developers, with 3 already accepted and none rejected.
Wed 17 AprDisplayed time zone: Lisbon change
16:00 - 17:30 | Testing: various bug types 1Research Track / Software Engineering in Practice at Eugénio de Andrade Chair(s): June Sallou Delft University of Technology | ||
16:00 15mTalk | CERT: Finding Performance Issues in Database Systems Through the Lens of Cardinality Estimation Research Track Pre-print | ||
16:15 15mTalk | Optimistic Prediction of Synchronization-Reversal Data Races Research Track Zheng Shi National University of Singapore, Umang Mathur National University of Singapore, Andreas Pavlogiannis Aarhus University | ||
16:30 15mTalk | Mozi: Discovering DBMS Bugs via Configuration-Based Equivalent Transformation Research Track Jie Liang , Zhiyong Wu Tsinghua University, China, Jingzhou Fu School of Software, Tsinghua University, Mingzhe Wang Tsinghua University, Chengnian Sun University of Waterloo, Yu Jiang Tsinghua University | ||
16:45 15mTalk | FlakeSync: Automatically Repairing Async Flaky Tests Research Track | ||
17:00 15mTalk | Testing the Limits: Unusual Text Inputs Generation for Mobile App Crash Detection with Large Language Model Research Track Zhe Liu Institute of Software, Chinese Academy of Sciences, Chunyang Chen Technical University of Munich (TUM), Junjie Wang Institute of Software, Chinese Academy of Sciences, Mengzhuo Chen Institute of Software, Chinese Academy of Sciences, Boyu Wu University of Chinese Academy of Sciences, Beijing, China, Zhilin Tian Pennsylvania State University, Yuekai Huang Institute of Software, Chinese Academy of Sciences, Jun Hu Institute of Software, Chinese Academy of Sciences, Qing Wang Institute of Software, Chinese Academy of Sciences | ||
17:15 15mTalk | AutoConsis: Automatic GUI-driven Data Inconsistency Detection of Mobile Apps Software Engineering in Practice Yongxiang Hu Fudan University, Hailiang Jin Meituan Inc., Xuan Wang Fudan University, Jiazhen Gu The Chinese University of Hong Kong, Shiyu Guo Meituan, Chaoyi Chen Meituan, Xin Wang Fudan University, Yangfan Zhou Fudan University |