skip to main content
10.1145/3194760.3194761acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
short-paper

Integrating reuse into the rapid, continuous software engineering cycle through test-driven search

Published: 29 May 2018 Publication History

Abstract

Today's advanced agile practices such as Continuous Integration and Test-Driven Development support a wide range of software development activities to facilitate the rapid delivery of high-quality software. However, the reuse of pre-existing, third-party software components is not one of them. Software reuse is still primarily perceived as a time-consuming, unsystematic and ultimately, "discontinuous" activity even though it aims to deliver the same basic benefits as continuous software engineering - namely, a reduction in the time and effort taken to deliver quality software. However, the increasingly central role of testing in continuous software engineering offers a way of addressing this problem by exploiting the new generation of test-driven search engines that can harvest components based on tests. This search technology not only exploits artifacts that have already been created as part of the continuous testing process to harvest components, it returns results that have a high likelihood of being fit for purpose and thus of being worth reusing. In this paper, we propose to augment continuous software engineering with the rapid, continuous reuse of software code units by integrating the test-driven mining of software artifact repositories into the continuous integration process. More specifically, we propose to use tests written as part of the Test-First Development approach to perform test-driven searches for matching functionality while developers are working on their normal development activities. We discuss the idea of rapid, continuous code reuse based on recent advances in our test-driven search platform and elaborate on scenarios for its application in the future.

References

[1]
Paul Ammann and Jeff Offutt. 2008. Introduction to Software Testing (1 ed.). Cambridge University Press.
[2]
Sven Apel, Don Batory, Christian Kaestner, and Gunter Saake. 2013. Feature-Oriented Software Product Lines: Concepts and Implementation. Springer.
[3]
Victor R. Basili, Gianluigi Caldiera, and H. Dieter Rombach. 1994. Encyclopedia of Software Engineering. Wiley, Chapter The Goal Question Metric Approach.
[4]
Veronika Bauer and Antonio Vetro'. 2016. Comparing reuse practices in two large software-producing companies. Journal of Systems and Software (2016).
[5]
Kent Beck. 2003. Test-driven development: by example. Addison-Wesley Professional.
[6]
Kent Beck and Cynthia Andres. 2004. Extreme Programming Explained: Embrace Change (2nd Edition). Addison-Wesley Professional.
[7]
Steffen Becker, Antonio Brogi, Ian Gorton, Sven Overhage, Alexander Romanovsky, and Massimo Tivoli. 2006. Towards an Engineering Approach to Component Adaptation. Springer, 193--215.
[8]
M. Beller, G. Gousios, and A. Zaidman. 2017. TravisTorrent: Synthesizing Travis CI and GitHub for Full-Stack Research on Continuous Integration. In IEEE/ACM MSR'17. 447--450.
[9]
T. Biggerstaff and C. Richter. 1987. Reusability Framework, Assessment, and Directions. IEEE Software 4, 2 (Mar 1987), 41--49. Copyright - Copyright IEEE Computer Society Mar/Apr 1987; Last updated - 2014-05-17; CODEN - IESOEG.
[10]
Martin Fowler. 2006. Continuous Integration. (2006). https://martinfowler.com/articles/continuousIntegration.html (accessed 2018-01-20).
[11]
W. B. Frakes and Kyo Kang. 2005. Software reuse research: status and future. IEEE Transactions on Software Engineering 31, 7 (July 2005), 529--536.
[12]
Reid Holmes and Robert J. Walker. 2013. Systematizing Pragmatic Software Reuse. ACM Trans. Softw. Eng. Methodol. 21, 4, Article 20 (Feb. 2013), 44 pages.
[13]
Oliver Hummel and Werner Janjic. 2013. Test-Driven Reuse: Key to Improving Precision of Search Engines for Software Reuse. Springer New York, 227--250.
[14]
O. Hummel, W. Janjic, and C. Atkinson. 2008. Code Conjurer: Pulling Reusable Software out of Thin Air. IEEE Software 25, 5 (Sept 2008), 45--52.
[15]
Marcus Kessel and Colin Atkinson. 2016. Ranking software components for reuse based on non-functional properties. Information Systems Frontiers 18, 5 (01 Oct 2016), 825--853.
[16]
Charles W. Krueger. 1992. Software Reuse. ACM Comput. Surv. 24, 2 (June 1992), 131--183.
[17]
Y. Li, C. Zhu, J. Rubin, and M. Chechik. 2018. Semantic Slicing of Software Version Histories. IEEE Transactions on Software Engineering 44, 2 (Feb 2018), 182--201.
[18]
Steven P. Reiss. 2009. Semantics-based Code Search. In Proceedings of the 31st International Conference on Software Engineering (ICSE '09). IEEE, 243--253.
[19]
Martin P. Robillard, Walid Maalej, Robert J. Walker, and Thomas Zimmermann. 2014. Recommendation Systems in Software Engineering. Springer.
[20]
Amy Moormann Zaremski and Jeannette M. Wing. 1995. Signature Matching: A Tool for Using Software Libraries. ACM Trans. Softw. Eng. Methodol. 4, 2 (1995).

Cited By

View all
  • (2024)Code search engines for the next generationJournal of Systems and Software10.1016/j.jss.2024.112065215(112065)Online publication date: Sep-2024
  • (2023)Improving the Safety and Security of Software Systems by Mediating SAP VerificationApplied Sciences10.3390/app1301064713:1(647)Online publication date: 3-Jan-2023
  • (2023)Big Code Search: A BibliographyACM Computing Surveys10.1145/360490556:1(1-49)Online publication date: 26-Aug-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
RCoSE '18: Proceedings of the 4th International Workshop on Rapid Continuous Software Engineering
May 2018
56 pages
ISBN:9781450357456
DOI:10.1145/3194760
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: 29 May 2018

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. rapid continuous code reuse
  2. rapid continuous integration
  3. test-driven development
  4. test-driven reuse
  5. test-driven search

Qualifiers

  • Short-paper

Conference

ICSE '18
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)1
Reflects downloads up to 08 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Code search engines for the next generationJournal of Systems and Software10.1016/j.jss.2024.112065215(112065)Online publication date: Sep-2024
  • (2023)Improving the Safety and Security of Software Systems by Mediating SAP VerificationApplied Sciences10.3390/app1301064713:1(647)Online publication date: 3-Jan-2023
  • (2023)Big Code Search: A BibliographyACM Computing Surveys10.1145/360490556:1(1-49)Online publication date: 26-Aug-2023
  • (2023)Revolutionizing software developmental processes by utilizing continuous software approachesThe Journal of Supercomputing10.1007/s11227-023-05818-880:7(9579-9608)Online publication date: 12-Dec-2023
  • (2022)An open-source framework for cross-platform testing in agile projects2022 41st International Conference of the Chilean Computer Science Society (SCCC)10.1109/SCCC57464.2022.10000346(1-8)Online publication date: 21-Nov-2022
  • (2020)A hybrid DevOps process supporting software reuseJournal of Software: Evolution and Process10.1002/smr.224832:7Online publication date: 2-Jul-2020
  • (2019)A platform for diversity-driven test amplificationProceedings of the 10th ACM SIGSOFT International Workshop on Automating TEST Case Design, Selection, and Evaluation10.1145/3340433.3342825(35-41)Online publication date: 26-Aug-2019

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media