TASTING: Reuse Test-case Execution by Global AST Hashing

被引:0
|
作者
Landsberg, Tobias [1 ]
Dietrich, Christian [2 ]
Lohmann, Daniel [1 ]
机构
[1] Leibniz Univ Hannover, Hannover, Germany
[2] Tech Univ Hamburg, Hamburg, Germany
关键词
Regression Test Selection; Testing; Continuous Integration; Static Analysis; SELECTION;
D O I
10.5220/0011139200003266
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We describe TASTING, an approach for efficiently selecting and reusing regression-test executions across program changes, branches, and variants in continuous integration settings. Instead of detecting changes between two variants of the software-under-test, TASTING recursively composes hashes of the defining elements with all their dependencies on AST-level at compile time into a semantic fingerprint of the test and its execution environment. This fingerprint is easy to store and remains stable across changes if the test's run-time behavior is not affected. Thereby, we can reuse test results across the history, multiple branches, and static compile-time variants. We applied TASTING to three open-source projects (Zephyr, OpenSSL, FFmpeg). Over their development history, we can omit between 10 percent (FFmpeg) and 95 percent (Zephyr) of all test executions at a moderate increase in build time. Furthermore, TASTING enables even higher savings across multiple checkouts (e.g., forks, branches, clones) and static software variants. Over the first changes to 131 OpenSSL forks, TASTING avoids 56 percent redundant test executions; for the Zephyr test matrix (64 variants), we reduce the number of test executions by 94 percent.
引用
收藏
页码:33 / 45
页数:13
相关论文
共 50 条
  • [31] A TEST-CASE IN COMMUNICATION + THE NESTLE CHURCH BOYCOTT
    MCCOY, BH
    [J]. THEOLOGY TODAY, 1984, 41 (01) : 42 - 46
  • [32] AUTOMATED TEST-CASE SELECTION BASED ON TEST COVERAGE METRICS
    MCALLISTER, M
    VUONG, ST
    ALILOVICCURGUS, J
    [J]. PROTOCOL TEST SYSTEMS, V, 1993, 11 : 93 - 104
  • [33] Formal test-case generation for UML statecharts
    Gnesi, S
    Latella, D
    Massink, M
    [J]. NINTH IEEE INTERNATIONAL CONFERENCE ON ENGINEERING COMPLEX COMPUTER SYSTEMS, PROCEEDINGS: NAVIGATING COMPLEXITY IN THE E-ENGINEERING AGE, 2004, : 75 - 84
  • [34] jPET: An automatic test-case generator for Java
    Complutense University of Madrid, Spain
    [J]. Proc. Working Conf. Rev. Eng. WCRE, 1600, (441-442):
  • [35] TECHNOLOGICAL LEARNING IN SINGAPORE - A TEST-CASE OF LEAPFROGGING
    HOBDAY, M
    [J]. JOURNAL OF DEVELOPMENT STUDIES, 1994, 30 (04): : 831 - 858
  • [36] Test-Case Reduction for C Compiler Bugs
    Regehr, John
    Chen, Yang
    Cuoq, Pascal
    Eide, Eric
    Ellison, Chucky
    Yang, Xuejun
    [J]. ACM SIGPLAN NOTICES, 2012, 47 (06) : 335 - 345
  • [37] GENE-CULTURE COEVOLUTIONARY THEORY - A TEST-CASE
    LALAND, KN
    KUMM, J
    FELDMAN, MW
    [J]. CURRENT ANTHROPOLOGY, 1995, 36 (01) : 131 - 156
  • [38] Test-Case Generation for Web-Service Clients
    Fuchs, Andreas
    Kuchen, Herbert
    [J]. 33RD ANNUAL ACM SYMPOSIUM ON APPLIED COMPUTING, 2018, : 1518 - 1527
  • [39] Test-case development during OO lifecycle and evolution
    Duncan, I
    Robson, D
    Munro, M
    [J]. JOURNAL OF OBJECT-ORIENTED PROGRAMMING, 1999, 11 (09): : 36 - +
  • [40] PIRANDELLO, THE TEST-CASE OF INVENTION - REFLECTIONS ON ART AND PSYCHOANALYSIS
    DIBENEDETTO, A
    [J]. REVUE DES ETUDES ITALIENNES, 1988, 34 (1-3): : 63 - 76