TCTracer: Establishing test-to-code traceability links using dynamic and static techniques

被引:6
作者
White, Robert [1 ]
Krinke, Jens [1 ]
机构
[1] UCL, UCL Comp Sci, London, England
基金
英国工程与自然科学研究理事会;
关键词
Software testing; Traceability; Software development; Software engineering; CONTINUOUS INTEGRATION; CHALLENGES; DEPLOYMENT; RECOVERY; DELIVERY;
D O I
10.1007/s10664-021-10079-1
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Test-to-code traceability links model the relationships between test artefacts and code artefacts. When utilised during the development process, these links help developers to keep test code in sync with tested code, reducing the rate of test failures and missed faults. Test-to-code traceability links can also help developers to maintain an accurate mental model of the system, reducing the risk of architectural degradation when making changes. However, establishing and maintaining these links manually places an extra burden on developers and is error-prone. This paper presents TCTracer, an approach and implementation for the automatic establishment of test-to-code traceability links. Unlike existing work, TCTracer operates at both the method level and the class level, allowing us to establish links between tests and functions, as well as between test classes and tested classes. We improve over existing techniques by combining an ensemble of new and existing techniques that utilise both dynamic and static information and exploiting a synergistic flow of information between the method and class levels. An evaluation of TCTracer using five large, well-studied open source systems demonstrates that, on average, we can establish test-to-function links with a mean average precision (MAP) of 85% and test-class-to-class links with an MAP of 92%.
引用
收藏
页数:43
相关论文
共 43 条
  • [1] Automated Recovery and Visualization of Test-to-Code Traceability (TCT) Links: An Evaluation
    Aljawabrah, Nadera
    Gergely, Tamas
    Misra, Sanjay
    Fernandez-Sanz, Luis
    [J]. IEEE ACCESS, 2021, 9 : 40111 - 40123
  • [2] A Survey of Machine Learning for Big Code and Naturalness
    Allamanis, Miltiadis
    Barr, Earl T.
    Devanbu, Premkumar
    Sutton, Charles
    [J]. ACM COMPUTING SURVEYS, 2018, 51 (04)
  • [3] Recovering traceability links between code and documentation
    Antoniol, G
    Canfora, G
    Casazza, G
    De Lucia, A
    Merlo, E
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2002, 28 (10) : 970 - 983
  • [4] Bouillon P, 2007, AGILE PROCESSES SOFT, DOI [10.1007/978-3-540-73101-6_14, DOI 10.1007/978-3-540-73101-6_14]
  • [5] Cleland-Huang J., 2012, Software and Systems Traceability, DOI DOI 10.1007/978-1-4471-2239-5
  • [6] Source Code Level Word Embeddings in Aiding Semantic Test-to-Code Traceability
    Csuvik, Viktor
    Kicsi, Andras
    Vidacs, Laszlo
    [J]. 2019 IEEE/ACM 10TH INTERNATIONAL WORKSHOP ON SOFTWARE AND SYSTEMS TRACEABILITY (SST 2019), 2019, : 29 - 36
  • [7] Evaluation of Textual Similarity Techniques in Code Level Traceability
    Csuvik, Viktor
    Kicsi, Andras
    Vidacs, Laszlo
    [J]. COMPUTATIONAL SCIENCE AND ITS APPLICATIONS, ICCSA 2019, PT IV, 2019, 11622 : 529 - 543
  • [8] Davis JS, 2006, PROCEEDINGS OF THE 1ST INTERNATIONAL CONFERENCE ON THE ECOLOGICAL IMPORTANCE OF SOLAR SALTWORKS, P5
  • [9] Traceability Management for Impact Analysis
    De Lucia, Andrea
    Fasano, Fausto
    Oliveto, Rocco
    [J]. 2008 FRONTIERS OF SOFTWARE MAINTENANCE, 2008, : 21 - 30
  • [10] Empirically Evaluating Readily Available Information for Regression Test Optimization in Continuous Integration
    Elsner, Daniel
    Hauer, Florian
    Pretschner, Alexander
    Reimer, Silke
    [J]. ISSTA '21: PROCEEDINGS OF THE 30TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, 2021, : 491 - 504