ABSTRACT
We present CodeGenie, a tool that implements a test-driven approach to search and reuse of code available on largescale code repositories. With CodeGenie, developers designtest cases for a desired feature first, similar to Test-driven Development (TDD). However, instead of implementing the feature from scratch, CodeGenie automatically searches foran existing implementation based on information available in the tests. To check the suitability of the candidate results in the local context, each result is automatically woven into the developer's project and tested using the original tests. The developer can then reuse the most suitable result. Later, reused code can also be unwoven from the project as wished. For the code searching and wrapping facilities, CodeGenie relies on Sourcerer, an Internet-scale source code infrastructure that we have developed.
- Koders web site. http://www.koders.com.Google Scholar
- Krugle web site. http://www.krugle.com.Google Scholar
- Google Code Search. http://www.google.com/codesearch.Google Scholar
- Sourcerer web site. http://sourcerer.ics.uci.edu.Google Scholar
- S. Bajracharya, T. Ngo, E. Linstead, Y. Dou, P. Rigor, P. Baldi, and C. Lopes. Sourcerer: a search engine for open source code supporting structure-based search. In OOPSLA '06: Companion to the 21st ACM SIGPLAN OOPSLA, pages 681--682, New York, NY, USA, 2006. ACM Press. Google ScholarDigital Library
- K. Beck. Test Driven Development: By Example. Addison-Wesley Professional, November 2002. Google ScholarDigital Library
Index Terms
- CodeGenie:: a tool for test-driven source code search
Recommendations
CodeGenie: using test-cases to search and reuse source code
ASE '07: Proceedings of the 22nd IEEE/ACM International Conference on Automated Software EngineeringWe present CodeGenie, a tool that implements a test-driven approachto search and reuse of code available on large-scale coderepositories. While using CodeGenie developers design test cases fora desired feature first, similar to Test-driven Development (...
Applying test-driven code search to the reuse of auxiliary functionality
SAC '09: Proceedings of the 2009 ACM symposium on Applied ComputingSoftware 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 ...
A formative study of influences on student testing behaviors
SIGCSE '14: Proceedings of the 45th ACM technical symposium on Computer science educationWhile Computer Science curricula teach students strategic software development processes, assessment is often product-instead of process-oriented. Test-Driven Development (TDD) has gained popularity in computing education, but evaluating students' ...
Comments