TOAST: Automated Testing of Object Transformers in Dynamic Software Updates

被引:5
作者
Zhao, Ze-Lin [1 ]
Huang, Di [1 ]
Ma, Xiao-Xing [1 ]
机构
[1] Nanjing Univ, State Key Lab Novel Software Technol, Nanjing 210023, Peoples R China
基金
中国国家自然科学基金;
关键词
object state transformer; inconsistency detection; dynamic software update (DSU); fuzzing testing; !text type='JAVA']JAVA[!/text;
D O I
10.1007/s11390-021-1693-1
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Dynamic software update (DSU) patches programs on the fly. It often involves the critical task of object transformation that converts live objects of the old-version program to their semantically consistent counterparts under the new-version program. This task is accomplished by invoking an object transformer on each stale object. However, a defective transformer failing to maintain consistency would cause errors or even crash the program. We propose TOAST (Test Object trAnSformaTion), an automated approach to detecting potential inconsistency caused by object transformers. TOAST first analyzes an update to identify multiple target methods and then adopts a fuzzer with specially designed inconsistency guidance to randomly generate object states to drive two versions of a target method. This creates two corresponding execution traces and a pair of old and new objects. TOAST finally performs object transformation to create a transformed object and detects inconsistency between it and the corresponding new object produced from scratch by the new program. Moreover, TOAST checks behavior inconsistency by comparing the return variables and exceptions of the two executions. Experimental evaluation on 130 updates with default transformers shows that TOAST is promising: it got 96.0% precision and 85.7% recall in state inconsistency detection, and 81.4% precision and 94.6% recall in behavior inconsistency detection. The inconsistency guidance improved the fuzzing efficiency by 14.1% for state inconsistency detection and 40.5% for behavior inconsistency detection.
引用
收藏
页码:50 / 66
页数:17
相关论文
共 35 条
  • [1] Alkalai L, 1998, COMPUTER, V31, P37
  • [2] Altekar G, 2005, P 14 C USENIX SEC S
  • [3] Arnold J, 2009, EUROSYS'09: PROCEEDINGS OF THE FOURTH EUROSYS CONFERENCE, P187
  • [4] Coverage-Based Greybox Fuzzing as Markov Chain
    Bohme, Marcel
    Van-Thuan Pham
    Roychoudhury, Abhik
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2019, 45 (05) : 489 - 506
  • [5] Cech Previtali S., 2011, P 10 INT C ASP OR SO, P105, DOI DOI 10.1145/1960275.1960289
  • [6] Chiba S., 1998, P OOPSLA WORKSH REFL, P174
  • [7] Ferrandina F., 1995, VLDB '95. Proceedings of the 21st International Conference on Very Large Data Bases, P170
  • [8] Mutable Checkpoint-Restart: Automating Live Update for Generic Server Programs
    Giuffrida, Cristiano
    Iorgulescu, Calin
    Tanenbaum, Andrew S.
    [J]. ACM/IFIP/USENIX MIDDLEWARE 2014, 2014, : 133 - 144
  • [9] Dynamic update of Java']Java applications-balancing change flexibility vs programming transparency
    Gregersen, Allan Raundahl
    Jorgensen, Bo Norregaard
    [J]. JOURNAL OF SOFTWARE MAINTENANCE AND EVOLUTION-RESEARCH AND PRACTICE, 2009, 21 (02): : 81 - 112
  • [10] Gu TX, 2016, ASIA PAC SOFWR ENG, P257, DOI [10.1109/APSEC.2016.044, 10.1109/APSEC.2016.45]