An Assessment of Test-Driven Reuse: Promises and Pitfalls

  • Mehrdad Nurolahzade
  • Robert J. Walker
  • Frank Maurer
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7925)


Test-driven reuse (TDR) proposes to find reusable source code through the provision of test cases describing the functionality of interest to a developer. Proponents claim that their TDR approaches work well. This paper presents the results of an experiment to evaluate the ability of state-of-the-art TDR tools to locate reusable source code for realistic tasks. We find that non-trivial functionality, like that needed in the daily tasks of developers, can largely not be retrieved by these approaches. We provide an analysis of the shortcomings and underlying problems in the existing approaches, and a discussion of potential solutions.


Source Code Signature Match Software Reuse Trial Task Code Search 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Beck, K., Andres, C.: Extreme Programming Explained: Embrace Change, 2nd edn. Addison-Wesley Professional (2004)Google Scholar
  2. 2.
    Holmes, R., Walker, R.: Systematizing pragmatic software reuse. ACM Trans. Softw. Eng. Methodol. 21(4), 20/1–20/44 (2012)Google Scholar
  3. 3.
    Holmes, R., et al.: Approximate structural context matching: An approach to recommend relevant examples. IEEE Trans. Softw. Eng. 32(12), 952–970 (2006)CrossRefGoogle Scholar
  4. 4.
    Hummel, O., Atkinson, C.: Supporting agile reuse through extreme harvesting. In: Concas, G., Damiani, E., Scotto, M., Succi, G. (eds.) XP 2007. LNCS, vol. 4536, pp. 28–37. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  5. 5.
    Hummel, O., et al.: Code Conjurer: Pulling reusable software out of thin air. IEEE Softw. 25(5), 45–52 (2008)CrossRefGoogle Scholar
  6. 6.
    Jeng, J.-J., Cheng, B.: Specification matching for software reuse: A foundation. In: Proc. ACM Symp. Softw. Reusabil., pp. 97–105 (1995)Google Scholar
  7. 7.
    Joachims, T., et al.: Accurately interpreting clickthrough data as implicit feedback. In: Proc. ACM SIGIR Int. Conf. Info. Retrieval, pp. 154–161 (2005)Google Scholar
  8. 8.
    Lemos, O., et al.: A test-driven approach to code search and its application to the reuse of auxiliary functionality. Info. Softw. Technol. 53(4), 294–306 (2011)CrossRefGoogle Scholar
  9. 9.
    Linstead, E., et al.: Sourcerer: Mining and searching internet-scale software repositories. Data Min. Knowl. Discov. 18(2), 300–336 (2009)MathSciNetCrossRefGoogle Scholar
  10. 10.
    Zaremski, A., Wing, J.: Signature matching: A key to reuse. In: Proc. ACM Int. Symp. Foundations Softw. Eng., pp. 182–190 (1993)Google Scholar
  11. 11.
    Ossher, J., et al.: Automated dependency resolution for open source software. In: Proc. Working Conf. Min. Softw. Repos., pp. 130–140 (2010)Google Scholar
  12. 12.
    Podgurski, A., Pierce, L.: Behavior sampling: A technique for automated retrieval of reusable components. In: Proc. Int. Conf. Softw. Eng., pp. 349–361 (1992)Google Scholar
  13. 13.
    Reiss, S.: Semantics-based code search. In: Proc. Int. Conf. Softw. Eng., pp. 243–253 (2009)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Mehrdad Nurolahzade
    • 1
  • Robert J. Walker
    • 1
  • Frank Maurer
    • 1
  1. 1.Department of Computer ScienceUniversity of CalgaryCalgaryCanada

Personalised recommendations