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

Towards automated test refactoring for software product lines

Published: 10 September 2018 Publication History
  • Get Citation Alerts
  • Abstract

    In practice, organizations often rely on the clone-and-own approach to reuse and customize existing systems. While increasing maintenance costs encourage some organizations to adopt their development processes towards more systematic reuse, others still avoid migrating to a reusable platform. Based on our experiences, a barrier preventing the adoption of software product lines is the fear of introducing new and more problematic bugs---during the migration or later on. We are aware of several works that automate software-product-line adoption, but they neglect the migration and maintenance of test cases. Automating the refactoring of tests can help to facilitate the adoption barrier, compare the quality after migrations, and support maintenance. In this vision paper, we i) discuss open research challenges that are based on our experiences and ii) sketch a first framework to develop automated solutions. Overall, we aim to illustrate our idea and initiate further research to facilitate the adoption and maintenance of software product lines.

    References

    [1]
    Mustafa Al-Hajjaji, Fabian Benduhn, Thomas Thüm, Thomas Leich, and Gunter Saake. 2016. Mutation Operators for Preprocessor-Based Variability. In International Workshop on Variability Modelling of Software-Intensive Systems. ACM, 81--88.
    [2]
    Mustafa Al-Hajjaji, Jacob Krüger, Fabian Benduhn, Thomas Leich, and Gunter Saake. 2017. Efficient Mutation Testing in Configurable Systems. In International Workshop on Variability and Complexity in Software Design. IEEE, 2--8.
    [3]
    Vander Alves, Rohit Gheyi, Tiago Massoni, Uirá Kulesza, Paulo Borba, and Carlos Lucena. 2006. Refactoring Product Lines. In International Conference on Generative Programming: Concepts and Experiences. ACM, 201--210.
    [4]
    Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2013. Feature-Oriented Software Product Lines. Springer.
    [5]
    Sven Apel and Christian Kästner. 2009. An Overview of Feature-Oriented Software Development. Journal of Object Technology 8, 5 (2009), 49--84.
    [6]
    Ira D. Baxter, Andrew Yahin, Leonardo Moura, Marcelo Sant'Anna, and Lorraine Bier. 1998. Clone Detection Using Abstract Syntax Trees. In International Conference on Software Maintenance. 368--377.
    [7]
    Benjamin Behringer and Steffen Rothkugel. 2016. Integrating Feature-Based Implementation Approaches Using a Common Graph-based Representation. In ACM Symposium on Applied Computing. ACM, 1504--1511.
    [8]
    Thorsten Berger, Ralf Rublack, Divya Nair, Joanne M. Atlee, Martin Becker, Krzysztof Czarnecki, and Andrzej Wąsowski. 2013. A Survey of Variability Modeling in Industrial Practice. In International Workshop on Variability Modelling of Software-Intensive Systems. ACM, 7:1--7:8.
    [9]
    Luiz Carvalho, Marcio Augusto Guimarães, Márcio Ribeiro, Leonardo Fernandes, Mustafa Al-Hajjaji, Rohit Gheyi, and Thomas Thüm. 2018. Equivalent Mutants in Configurable Systems: An Empirical Study. In International Workshop on Variability Modelling of Software-Intensive Systems. ACM, 11--18.
    [10]
    Peng-Hua Chu, Nien-Lin Hsueh, Hong-Hsiang Chen, and Chien-Hung Liu. 2012. A Test Case Refactoring Approach for Pattern-Based Software Development. Software Quality Journal 20, 1 (2012), 43--75.
    [11]
    Paul C. Clements and Charles W. Krueger. 2002. Point/Counterpoint: Being Proactive Pays Off/Eliminating the Adoption Barrier. IEEE Software 19, 4 (2002), 28--30.
    [12]
    Paul C. Clements and Linda M. Northrop. 2001. Software Product Lines: Practices and Patterns. Addison-Wesley.
    [13]
    Krzysztof Czarnecki and Simon Helsen. 2006. Feature-Based Survey of Model Transformation Approaches. IBM Systems Journal 45, 3 (2006), 621--645.
    [14]
    Arie van Deursen, Leon Moonen, Alex van den Bergh, and Gerard Kok. 2002. Extreme Programming Perspectives. Addison-Wesley, Chapter Refactoring Test Code, 141--152.
    [15]
    Yael Dubinsky, Julia Rubin, Thorsten Berger, Slawomir Duszynski, Martin Becker, and Krzysztof Czarnecki. 2013. An Exploratory Study of Cloning in Industrial Software Product Lines. In European Conference on Software Maintenance and Reengineering. IEEE, 25--34.
    [16]
    Slawomir Dus-zynski, Jens Knodel, and Martin Becker. 2011. Analyzing the Source Code of Multiple Software Variants for Reuse Potential. In Working Conference on Reverse Engineering (WCRE). IEEE, 303--307.
    [17]
    Wolfram Fenske, Jens Meinicke, Sandro Schulze, Steffen Schulze, and Gunter Saake. 2017. Variant-Preserving Refactorings for Migrating Cloned Products to a Product Line. In International Conference on Software Analysis, Evolution and Reengineering. IEEE, 316--326.
    [18]
    Wolfram Fenske, Thomas Thüm, and Gunter Saake. 2013. A Taxonomy of Software Product Line Reengineering. In International Workshop on Variability Modelling of Software-Intensive Systems. ACM, 1--8.
    [19]
    Stefan Fischer, Lukas Linsbauer, Roberto Erick Lopez-Herrejon, and Alexander Egyed. 2014. Enhancing Clone-And-Own with Systematic Reuse for Developing Software Variants. In International Conference on Software Maintenance and Evolution. IEEE, 391--400.
    [20]
    Martin Fowler and Kent Beck. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley.
    [21]
    Eduardo Martins Guerra and Clovis Torres Fernandes. 2007. Refactoring Test Code Safely. In International Conference on Software Engineering Advances. IEEE, 44--49.
    [22]
    Yue Jia and Mark Harman. 2011. An Analysis and Survey of the Development of Mutation Testing. IEEE Transactions on Software Engineering 37, 5 (2011), 1--31.
    [23]
    Jongwook Kim, Don Batory, and Danny Dig. 2017. Refactoring Java Software Product Lines. In International Systems and Software Product Line Conference. ACM, 59--68.
    [24]
    Rainer Koschke, Pierre Frenzel, Andreas P. J. Breu, and Karsten Angstmann. 2009. Extending the Reflexion Method for Consolidating Software Variants into Product Lines. Software Quality Journal 17, 4 (2009), 331--366.
    [25]
    Charles W. Krueger. 2002. Easing the Transition to Software Mass Customization. In International Workshop on Software Product-Family Engineering. Springer, 282--293.
    [26]
    Jacob Krüger, Wolfram Fenske, Jens Meinicke, Thomas Leich, and Gunter Saake. 2016. Extracting Software Product Lines: A Cost Estimation Perspective. In International Systems and Software Product Line Conference. ACM, 354--361.
    [27]
    Jacob Krüger, Louis Nell, Wolfram Fenske, Gunter Saake, and Thomas Leich. 2017. Finding Lost Features in Cloned Systems. In International Systems and Software Product Line Conference. ACM, 65--72.
    [28]
    Miguel A. Laguna and Yania Crespo. 2013. A Systematic Mapping Study on Software Product Line Evolution: From Legacy System Reengineering to Product Line Refactoring. Science of Computer Programming 78, 8 (2013), 1010--1034.
    [29]
    Frank van der Linden, Klaus Schmid, and Eelco Rommes. 2007. Software Product Lines in Action. Springer.
    [30]
    Jia Liu, Don Batory, and Christian Lengauer. 2006. Feature Oriented Refactoring of Legacy Applications. In International Conference on Software Engineering. ACM, 112--121.
    [31]
    John D. McGregor, Prakash Sodhani, and Sai Madhavapeddi. 2004. Testing Variability in a Software Product Line. In International Workshop on Software Product Line Testing. Avaya Labs, 45--50.
    [32]
    Thilo Mende, Felix Beckwermert, Rainer Koschke, and Gerald Meier. 2008. Supporting the Grow-and-Prune Model in Software Product Lines Evolution Using Clone Detection. In European Conference on Software Maintenance and Reengineering. IEEE, 163--172.
    [33]
    Iulian Neamtiu, Jeffrey S. Foster, and Michael Hicks. 2005. Understanding Source Code Evolution Using Abstract Syntax Tree Matching. ACM SIGSOFT Software Engineering Notes 30, 4 (2005), 1--5.
    [34]
    Harrie Passier, Lex Bijlsma, and Christoph Bockisch. 2016. Maintaining Unit Tests During Refactoring. In International Conference on Principles and Practices of Programming on the Java Platform. ACM, 18:1--18:6.
    [35]
    Tristan Pfofe, Thomas Thüm, Sandro Schulze, Wolfram Fenske, and Ina Schaefer. 2016. Synchronizing Software Variants with Variantsync. In International Systems and Software Product Line Conference. ACM, 329--332.
    [36]
    Chanchal K. Roy, James R. Cordy, and Rainer Koschke. 2009. Comparison and Evaluation of Code Clone Detection Techniques and Tools: A Qualitative Approach. Science of Computer Programming 74, 7 (2009), 470--495.
    [37]
    Julia Rubin and Marsha Chechik. 2012. Combining Related Products into Product Lines. In International Conference on Fundamental Approaches to Software Engineering. Springer, 285--300.
    [38]
    Julia Rubin and Marsha Chechik. 2013. A Framework for Managing Cloned Product Variants. In International Conference on Software Engineering. IEEE, 1233--1236.
    [39]
    Julia Rubin, Andrei Kirshin, Goetz Botterweck, and Marsha Chechik. 2012. Managing Forked Product Variants. In International Systems and Software Product Line Conference. ACM, 156--160.
    [40]
    Per Runeson. 2006. A Survey of Unit Testing Practices. IEEE Software 23, 4 (2006), 22--29.
    [41]
    Sandro Schulze, Malte Lochau, and Saskia Brunswig. 2013. Implementing Refactorings for FOP: Lessons Learned and Challenges Ahead. In International Workshop on Feature-Oriented Software Development. ACM, 33--40.
    [42]
    Mikael Svahnberg, Jilles van Gurp, and Jan Bosch. 2005. A Taxonomy of Variability Realization Techniques. Software: Practice and Experience 35, 8 (2005), 705--754.
    [43]
    Mark Utting, Alexander Pretschner, and Bruno Legeard. 2012. A Taxonomy of Model-Based Testing Approaches. Software Testing, Verification and Reliability 22, 5 (2012), 297--312.
    [44]
    David S. Wile. 1997. Abstract Syntax from Concrete Syntax. In International Conference on Software Engineering. ACM, 472--480.
    [45]
    Yinxing Xue. 2013. Reengineering Legacy Software Products Into Software Product Line. Ph.D. Dissertation. University of Singapore.
    [46]
    Shin Yoo and Mark Harman. 2012. Regression Testing Minimization, Selection and Prioritization: A Survey. Software Testing, Verification and Reliability 22, 2 (2012), 67--120.
    [47]
    Hong Zhu, Patrick A. V. Hall, and John H. R. May. 1997. Software Unit Test Coverage and Adequacy. Comput. Surveys 29, 4 (1997), 366--427.

    Cited By

    View all
    • (2023)VariantIncProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A10.1145/3579027.3608984(129-140)Online publication date: 28-Aug-2023
    • (2023)To Share, or Not to Share: Exploring Test-Case Reusability in Fork Ecosystems2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)10.1109/ASE56229.2023.00191(837-849)Online publication date: 11-Sep-2023
    • (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

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    SPLC '18: Proceedings of the 22nd International Systems and Software Product Line Conference - Volume 1
    September 2018
    324 pages
    ISBN:9781450364645
    DOI:10.1145/3233027
    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 the author(s) 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].

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 10 September 2018

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. extractive approach
    2. legacy system
    3. maintenance
    4. migration
    5. software product line
    6. testing

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    SPLC '18

    Acceptance Rates

    Overall Acceptance Rate 167 of 463 submissions, 36%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)7
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)VariantIncProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A10.1145/3579027.3608984(129-140)Online publication date: 28-Aug-2023
    • (2023)To Share, or Not to Share: Exploring Test-Case Reusability in Fork Ecosystems2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)10.1109/ASE56229.2023.00191(837-849)Online publication date: 11-Sep-2023
    • (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
    • (2021)Comparing Automated Reuse of Scripted Tests and Model-Based Tests for Configurable Software2021 28th Asia-Pacific Software Engineering Conference (APSEC)10.1109/APSEC53868.2021.00049(421-430)Online publication date: Dec-2021
    • (2020)Activities and costs of re-engineering cloned variants into an integrated platformProceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems10.1145/3377024.3377044(1-10)Online publication date: 5-Feb-2020
    • (2020)Automated test reuse for highly configurable softwareEmpirical Software Engineering10.1007/s10664-020-09884-xOnline publication date: 16-Sep-2020
    • (2019)Automating Test Reuse for Highly Configurable SoftwareProceedings of the 23rd International Systems and Software Product Line Conference - Volume A10.1145/3336294.3336305(1-11)Online publication date: 9-Sep-2019
    • (2019)Facing the TruthProceedings of the 23rd International Systems and Software Product Line Conference - Volume A10.1145/3336294.3336302(177-188)Online publication date: 9-Sep-2019
    • (2012)Challenges and Potential Benefits of Adopting Product Line Engineering in Start-Ups: A Preliminary StudyHandbook of Re-Engineering Software Intensive Systems into Software Product Lines10.1007/978-3-031-11686-5_18(455-470)Online publication date: 24-Feb-2012

    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