Vive la Différence: Practical Diff Testing of Stateful Applications
Kexin Zhu, Michael Whittaker, Srdjan Petrovic, Robert Grandl, Sanjay Ghemawat
Abstract
Software rollout is the process of replacing the version of an application that is currently running in production with a new version. Many subtle and catastrophic bugs occur during software rollout. There are many existing techniques to improve the odds of a rollout completing successfully, but these techniques don't work well when the application has shared, persistent, mutable state. In this paper, we present a practical framework to test the rollout of stateful applications. Our framework uses diff testing to verify that the new version of an application behaves identically to the currently running version that will be replaced. The framework has three main components to safely and efficiently compare the behavior of the two versions. First, we implement database branching on top of Postgres. Second, we implement an efficient algorithm to diff two database branches. Third, we describe how to replay client requests to improve test coverage. Finally, we identify three common categories of rollout bugs and demonstrate how our framework can find these bugs with minimal performance overhead.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 1e021a51-5b4d-43b7-b27a-4277809270dfBuilds on3
- Differential regression testing for REST APIsPatrice Godefroid, Daniel Lehmann, Marina PolishchukISSTA 2020 · 52 citations
- Understanding and Detecting Software Upgrade Failures in Distributed SystemsYongle Zhang, Junwen Yang, Zhuqi Jin, Utsav Sethi et al.SOSP 2021 · 40 citations
- HyDiff: hybrid differential software analysisYannic Noller, Corina S. Pasareanu, Marcel Böhme, Youcheng Sun et al.ICSE 2020 · 37 citations
Related papers
- One DBMS, Two Modes, and a Bunch of Bugs: Catching Logic Bugs in Distributed DBMSs via Differential TestingZi-Xuan Fu, Jia-Ju Bai, Hong-Bo Feng, Kang ChenSIGMOD 2026
- It's a Feature, Not a Bug: Secure and Auditable State Rollback for Confidential Cloud ApplicationsQuinn Burke, Anjo Vahldiek-Oberwagner, Michael Swift, Patrick D. McDanielS&P 2026 · 2 citations
- Generating Test Databases for Database-Backed ApplicationsCong Yan, Suman Nath, Shan LuICSE 2023 · 4 citations
- DepState: Detecting Synchronization Failure Bugs in Distributed Database Management SystemsCundi Fang, Jie Liang, Zhiyong Wu, Jingzhou Fu et al.ISSTA 2025
- DBStorm: Generating Various Effective Workloads for Testing Isolation LevelsKeqiang Li, Siyang Weng, Lyu Ni, Chengcheng Yang et al.ISSTA 2024 · 5 citations
