Ο ταυτόχρονος προγραμματισμός έχει γίνει δημοφιλής την τελευταία δεκαετία, αλλά είναι ιδιαίτερα επιρρεπής σε λάθη. Ακόμη χειρότερα, τα παραδοσιακά εργαλεία ελέγχου είναι αναποτελεσματικά όταν πρόκειται να ελέγξουν ταυτόχρονο κώδικα. Σε αυτή την εργασία παρουσιάζουμε το Concuerror, ένα εργαλείο ελέγχου ταυτόχρονων προγραμμάτων σε Erlang, το οποίο αποσκοπεί στη διευκόλυνση της ανίχνευσης και εξάλειψης λαθών ταυτοχρονισμού. Περγράφουμε την υποδομή που αναπτύχθηκε, καθώς και τις τεχνικές που χρησιμοποιήθηκαν για να κάνουμε το Concuerror πιο αποδοτικό. Επίσης, παρουσιάζουμε ένα εκτενές παράδειγμα χρήσης του Concuerror για test-driven development.
Concurrent programming has become increasingly popular in the last decade; yet, it is notoriously error-prone. Even worse, traditional testing tools are largely inadequate when it comes to checking concurrent code. In this thesis we introduce Concuerror, a testing tool for concurrent Erlang programs, that aims to facilitate the task of detecting and eliminating concurrency-related errors. We describe the infrastructure that was developed to support this task, as well as the techniques that were used to make Concuerror more efficient. We also present an extended example of using Concuerror in practice for test-driven development.