ACM Computing Surveys (CSUR)
Retrieving reusable software by sampling behavior
ACM Transactions on Software Engineering and Methodology (TOSEM)
Slicing object-oriented software
Proceedings of the 18th international conference on Software engineering
Hyper/J: multi-dimensional separation of concerns for Java
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Test Driven Development: By Example
Test Driven Development: By Example
An examination of software engineering work practices
CASCON '97 Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research
ICSE '81 Proceedings of the 5th international conference on Software engineering
Archetypal Source Code Searches: A Survey of Software Developers and Maintainers
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
On the Effectiveness of the Test-First Approach to Programming
IEEE Transactions on Software Engineering
Sourcerer: a search engine for open source code supporting structure-based search
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Supporting the Investigation and Planning of Pragmatic Reuse Tasks
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Assieme: finding and leveraging implicit references in a web search interface for programmers
Proceedings of the 20th annual ACM symposium on User interface software and technology
CodeGenie:: a tool for test-driven source code search
Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion
Jigsaw: a tool for the small-scale reuse of source code
Companion of the 30th international conference on Software engineering
Supporting agile reuse through extreme harvesting
XP'07 Proceedings of the 8th international conference on Agile processes in software engineering and extreme programming
Sourcerer: An internet-scale software repository
SUITE '09 Proceedings of the 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation
Analyzing and mining a code search engine usage log
Empirical Software Engineering
Systematizing pragmatic software reuse
ACM Transactions on Software Engineering and Methodology (TOSEM)
Sourcerer: An infrastructure for large-scale collection and analysis of open-source code
Science of Computer Programming
Codewebs: scalable homework search for massive open online programming courses
Proceedings of the 23rd international conference on World wide web
Hi-index | 0.01 |
Software developers spend considerable effort implementing auxiliary functionality used by the main features of a system (e.g. compressing/decompressing files, encryption/decription of data, scaling/rotating images). With the increasing amount of open source code available on the Internet, time and effort can be saved by reusing these utilities through informal practices of code search and reuse. However, when this type of reuse is performed in an ad hoc manner, it can be tedious and error-prone: code results have to be manually inspected and extracted into the workspace. In this paper we introduce the use of test cases as an interface for automating code search and reuse and evaluate its applicability and performance in the reuse of auxiliary functionality. We call our approach Test-Driven Code Search (TDCS). Test cases serve two purposes: (1) they define the behavior of the desired functionality to be searched; and (2) they test the matching results for suitability in the local context. We present CodeGenie, an Eclipse plugin that performs TDCS using a code search engine called Sourcerer. Our evaluation presents evidence of the applicability and good performance of TDCS in the reuse of auxiliary functionality.