HelpMeOut
Crowdsourcing suggestions to programming problems for dynamic, interpreted languages
Abstract
When working on a software project, developers usually encounter a lot of errorsthey have to fix. To find more information about how to solve them, they usually
start to search the web, which is challenging for two main reasons: First, finding a
good search query for several reasons is not easy. Second, someone has to have –
usually manually – provided the necessary information before.
We present a tool that tries to help with both of these problems. It consists of
two components: a central server running a crowdsourced database of fixes and
a client program. This client program augments a testing framework for the Ruby
programming language and monitors the test executions. When a failing test is
encountered, a query for related fixes is automatically generated and sent to the
server. Related fixes are then displayed next to the test results for the developer’s
examination. When a test passes that failed before, a diff of the affected files is sent
to the server and becomes part of our crowdsourced database of fixes.
A preliminary evaluation between 8 developers showed that during 8 hours of
programming, our tool was able to provide useful suggestions for 57% of the failing
tests. During this time 161 new fixes were generated.
This project is heavily inspired by the work of Hartmann et al.
Publications
- Manuel Kallenbach. HelpMeOut - Crowdsourcing Suggestions to Programming Problems for Dynamic, Interpreted Languages. Diploma Thesis, RWTH Aachen University, Aachen, January 2011.
- Dhawal Mujumdar, Manuel Kallenbach, Brandon Liu and Björn Hartmann. Crowdsourcing Suggestions to Programming Problems for Dynamic Web Development Languages. In CHI EA '11: Proceedings of the twenty-ninth annual SIGCHI conference on Human factors in computing systems, pages 1525–1530, ACM Press, New York, NY, USA, 2011.