HelpMeOut


Crowdsourcing suggestions to programming problems for dynamic, interpreted languages



Abstract

When working on a software project, developers usually encounter a lot of errors
they 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


    2011

  • Manuel Kallenbach. HelpMeOut - Crowdsourcing Suggestions to Programming Problems for Dynamic, Interpreted Languages. Diploma Thesis, RWTH Aachen University, Aachen, January 2011.
    PDF DocumentBibTeX Entry
  • 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.
    PDF DocumentBibTeX Entry

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.