Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2786805.2803208acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Detecting semantic merge conflicts with variability-aware execution

Published: 30 August 2015 Publication History
  • Get Citation Alerts
  • Abstract

    In collaborative software development, changes made in parallel by multiple developers may conflict. Previous research has shown that conflicts are common and occur as textual conflicts or semantic conflicts, which manifest as build or test failures. With many parallel changes, it is desirable to identify conflicts early and pinpoint the (minimum) set of changes involved. However, the costs of identifying semantic conflicts can be high because tests need to be executed on many merge scenarios. We propose Semex, a novel approach to detect semantic conflicts using variability-aware execution. We encode all parallel changes into a single program, in which "if" statements guard the alternative code fragments. Then, we run the test cases using variability-aware execution, exploring all possible concrete executions of the combined program with regard to all possible merge scenarios, while exploiting similarities among the executions to speed up the process. Variability-aware execution returns a formula describing all failing merge scenarios. In our preliminary experimental study on seven PHP programs with a total of 50 test cases and 19 semantic conflicts, Semex correctly detected all 19 conflicts.

    References

    [1]
    J. T. Biehl, M. Czerwinski, G. Smith, and G. G. Robertson. Fastdash: A visual dashboard for fostering awareness in software teams. CHI ’07, pages 1313–1322. ACM, 2007.
    [2]
    C. Bird and T. Zimmermann. Assessing the value of branches with what-if analysis. FSE ’12, pages 1–11. ACM, 2012.
    [3]
    M. Böhme, B. C. d. S. Oliveira, and A. Roychoudhury. Regression tests to expose change interaction errors. ESEC/FSE 2013, pages 334–344. ACM, 2013.
    [4]
    Y. Brun, R. Holmes, M. D. Ernst, and D. Notkin. Proactive detection of collaboration conflicts. ESEC/FSE ’11, pages 168–178. ACM, 2011.
    [5]
    P. Dewan and R. Hegde. Semi-synchronous conflict detection and resolution in asynchronous software development. ECSCW’07. Springer Verlag, 2007.
    [6]
    S. Duszynski, J. Knodel, and M. Becker. Analyzing the source code of multiple software variants for reuse potential. In WCRE’11, pages 303–307. IEEE, Oct 2011.
    [7]
    H. Fan and C. Sun. Dependency-based automatic locking for semantic conflict prevention in real-time collaborative programming. SAC ’12, pages 737–742. ACM, 2012.
    [8]
    R. Hegde and P. Dewan. Connecting programming environments to support ad-hoc collaboration. ASE ’08, pages 178–187. IEEE Computer Society, 2008.
    [9]
    S. Horwitz, J. Prins, and T. Reps. Integrating noninterfering versions of programs. ACM Trans. Program. Lang. Syst., 11(3):345–387, July 1989.
    [10]
    H. V. Nguyen, C. Kästner, and T. N. Nguyen. Exploring variability-aware execution for testing plugin-based web applications. ICSE 2014, pages 907–918. ACM, 2014.
    [11]
    J. Rubin and M. Chechik. N-way model merging. ESEC/FSE 2013, pages 301–311. ACM, 2013.
    [12]
    A. Sarma, Z. Noroozi, and A. van der Hoek. Palantir: Raising awareness among configuration management workspaces. ICSE ’03, pages 444–454. IEEE Computer Society, 2003.
    [13]
    A. Sarma, D. Redmiles, and A. van der Hoek. Empirical evidence of the benefits of workspace awareness in software configuration management. FSE’08, pages 113–123. ACM, 2008.
    [14]
    K. Sen, D. Marinov, and G. Agha. Cute: A concolic unit testing engine for C. ESEC/FSE 2005, pages 263–272. ACM, 2005.
    [15]
    J. Wloka, B. Ryder, F. Tip, and X. Ren. Safe-commit analysis to facilitate team software development. ICSE ’09, pages 507–517. IEEE Computer Society, 2009.
    [16]
    A. Zeller and R. Hildebrandt. Simplifying and isolating failure-inducing input. IEEE Trans. Softw. Eng., 28(2):183–200, 2002.
    [17]
    Introduction Motivation Approach Encoding Parallel Changes Variability-Aware Execution Preliminary study Conclusion Acknowledgments References

    Cited By

    View all
    • (2023)Git Merge Conflict Resolution Leveraging Strategy Classification and LLM2023 IEEE 23rd International Conference on Software Quality, Reliability, and Security (QRS)10.1109/QRS60937.2023.00031(228-239)Online publication date: 22-Oct-2023
    • (2022)Semantic conflict detection with overriding assignment analysisProceedings of the XXXVI Brazilian Symposium on Software Engineering10.1145/3555228.3555242(435-445)Online publication date: 5-Oct-2022
    • (2022)Towards developer support for merging forked test casesProceedings of the 26th ACM International Systems and Software Product Line Conference - Volume A10.1145/3546932.3547002(131-141)Online publication date: 12-Sep-2022
    • Show More Cited By

    Index Terms

    1. Detecting semantic merge conflicts with variability-aware execution

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      ESEC/FSE 2015: Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering
      August 2015
      1068 pages
      ISBN:9781450336758
      DOI:10.1145/2786805
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Sponsors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 30 August 2015

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. Variability-aware execution
      2. n-way merge
      3. semantic merge conflicts

      Qualifiers

      • Research-article

      Funding Sources

      Conference

      ESEC/FSE'15
      Sponsor:

      Acceptance Rates

      Overall Acceptance Rate 112 of 543 submissions, 21%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)19
      • Downloads (Last 6 weeks)1

      Other Metrics

      Citations

      Cited By

      View all
      • (2023)Git Merge Conflict Resolution Leveraging Strategy Classification and LLM2023 IEEE 23rd International Conference on Software Quality, Reliability, and Security (QRS)10.1109/QRS60937.2023.00031(228-239)Online publication date: 22-Oct-2023
      • (2022)Semantic conflict detection with overriding assignment analysisProceedings of the XXXVI Brazilian Symposium on Software Engineering10.1145/3555228.3555242(435-445)Online publication date: 5-Oct-2022
      • (2022)Towards developer support for merging forked test casesProceedings of the 26th ACM International Systems and Software Product Line Conference - Volume A10.1145/3546932.3547002(131-141)Online publication date: 12-Sep-2022
      • (2022)Using pre-trained language models to resolve textual and semantic merge conflicts (experience paper)Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3533767.3534396(77-88)Online publication date: 18-Jul-2022
      • (2022)Do customized Android frameworks keep pace with Android?Proceedings of the 19th International Conference on Mining Software Repositories10.1145/3524842.3527963(376-387)Online publication date: 23-May-2022
      • (2021)SoManyConflicts: Resolve Many Merge Conflicts Interactively and Systematically2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE)10.1109/ASE51524.2021.9678937(1291-1295)Online publication date: Nov-2021
      • (2020)Towards understanding and fixing upstream merge induced conflicts in divergent forksProceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Practice10.1145/3377813.3381362(172-181)Online publication date: 27-Jun-2020
      • (2020)Detecting Higher-Order Merge Conflicts in Large Software Projects2020 IEEE 13th International Conference on Software Testing, Validation and Verification (ICST)10.1109/ICST46399.2020.00043(353-363)Online publication date: Oct-2020
      • (2020)Detecting Semantic Conflicts via Automated Behavior Change Detection2020 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME46990.2020.00026(174-184)Online publication date: Sep-2020
      • (2019)Automated N-way Program Merging for Facilitating Family-based Analyses of Variant-rich SoftwareACM Transactions on Software Engineering and Methodology10.1145/331378928:3(1-59)Online publication date: 18-Jul-2019
      • Show More Cited By

      View Options

      Get Access

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media