A journey among Java']Java neutral program variants

被引:15
|
作者
Harrand, Nicolas [1 ]
Allier, Simon [2 ]
Rodriguez-Cancio, Marcelino [3 ]
Monperrus, Martin [1 ]
Baudry, Benoit [1 ]
机构
[1] KTH, Stockholm, Sweden
[2] DGA, Val De Reuil, France
[3] Vanderbildt Univ, Nashville, TN USA
关键词
Neutral program variant; Program transformation; !text type='Java']Java[!/text; Code plasticity; SOFTWARE;
D O I
10.1007/s10710-019-09355-3
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Neutral program variants are alternative implementations of a program, yet equivalent with respect to the test suite. Techniques such as approximate computing or genetic improvement share the intuition that potential for enhancements lies in these acceptable behavioral differences (e.g., enhanced performance or reliability). Yet, the automatic synthesis of neutral program variants, through program transformations remains a key challenge. This work aims at characterizing plastic code regions in Java programs, i.e., the code regions that are modifiable while maintaining functional correctness, according to a test suite. Our empirical study relies on automatic variations of 6 real-world Java programs. First, we transform these programs with three state-of-the-art program transformations: add, replace and delete statements. We get a pool of 23,445 neutral variants, from which we gather the following novel insights: developers naturally write code that supports fine-grain behavioral changes; statement deletion is a surprisingly effective program transformation; high-level design decisions, such as the choice of a data structure, are natural points that can evolve while keeping functionality. Second, we design 3 novel program transformations, targeted at specific plastic regions. New experiments reveal that respectively 60%, 58% and 73% of the synthesized variants (175,688 in total) are neutral and exhibit execution traces that are different from the original.
引用
收藏
页码:531 / 580
页数:50
相关论文
共 50 条
  • [11] MetaJ: An extensible environment for metaprogramming in Java']Java
    de Oliveira, AA
    Braga, TH
    Maia, MD
    Bigonha, RD
    JOURNAL OF UNIVERSAL COMPUTER SCIENCE, 2004, 10 (07) : 872 - 891
  • [12] In vivo test and rollback of Java']Java applications as they are
    Bertolino, Antonia
    De Angelis, Guglielmo
    Miranda, Breno
    Tonella, Paolo
    SOFTWARE TESTING VERIFICATION & RELIABILITY, 2023, 33 (07)
  • [13] Verifying temporal specifications of Java']Java programs
    Spegni, Francesco
    Spalazzi, Luca
    Liva, Giovanni
    Pinzger, Martin
    Bollin, Andreas
    SOFTWARE QUALITY JOURNAL, 2020, 28 (02) : 695 - 744
  • [14] A Java']Java software for creation of image mosaics
    Bossert, O
    COMPUTER METHODS AND PROGRAMS IN BIOMEDICINE, 2004, 75 (02) : 159 - 161
  • [15] Injecting Shortcuts for Faster Running Java']Java Code
    Brownlee, Alexander E., I
    Petke, Justyna
    Rasburn, Anna F.
    2020 IEEE CONGRESS ON EVOLUTIONARY COMPUTATION (CEC), 2020,
  • [16] Studying the Use of Java']Java Logging Utilities in the Wild
    Chen, Boyuan
    Jiang, Zhen Ming
    2020 ACM/IEEE 42ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2020), 2020, : 397 - 408
  • [17] Challenges of Producing Software Bill of Materials for Java']Java
    Balliu, Musard
    Baudry, Benoit
    Bobadilla, Sofia
    Ekstedt, Mathias
    Monperrus, Martin
    Ron, Javier
    Sharma, Aman
    Skoglund, Gabriel
    Soto-Valero, Cesar
    Wittlinger, Martin
    IEEE SECURITY & PRIVACY, 2023, 21 (06) : 12 - 23
  • [18] Observations on the assured evolution of concurrent Java']Java programs
    Greenhouse, A
    Halloran, TJ
    Scherlis, WL
    SCIENCE OF COMPUTER PROGRAMMING, 2005, 58 (03) : 384 - 411
  • [19] Updating Gin's profiler for current Java']Java
    Watkinson, Myles
    Brownlee, Alexander E. I.
    2023 IEEE/ACM INTERNATIONAL WORKSHOP ON GENETIC IMPROVEMENT, GI, 2023, : 23 - 28
  • [20] A multimedia case management system implemented in Java']Java
    Stewart, HD
    Davis, ML
    Handy, DL
    Kvarfordt, KB
    Ford, G
    SENSORS, C31, INFORMATION, AND TRAINING TECHNOLOGIES FOR LAW ENFORCEMENT, 1999, 3577 : 200 - 208