Repository logo

Infoscience

  • English
  • French
Log In
Logo EPFL, École polytechnique fédérale de Lausanne

Infoscience

  • English
  • French
Log In
  1. Home
  2. Academic and Research Output
  3. Conferences, Workshops, Symposiums, and Seminars
  4. A Scala Library for Testing Student Assignments on Concurrent Programming
 
conference paper

A Scala Library for Testing Student Assignments on Concurrent Programming

Mayer, Mikael  
•
Madhavan, Ravichandhran
Biboudis, A
•
Jonnalagedda, M
Show more
2016
Scala'16: Proceedings Of The 2016 7Th Acm Sigplan Symposium On Scala
7th ACM SIGPLAN Symposium on Scala

We present a lightweight library for testing concurrent Scala programs by systematically exploring multiple interleavings between user-specified operations on shared objects. Our library is targeted at beginners of concurrent programming in Scala, runs on a standard JVM, and supports conventional synchronization primitives such as wait, notify, and synchronized. The key component of the library is the trait SchedulableMonitor that accepts a thread schedule, and interleaves as per the schedule all user-specified operations invoked through multiple threads on objects implementing the trait. Using our library, we developed a unit test engine that tests concurrent operations on shared objects on thousands of schedules obtained by bounding the number of context-switches. If a unit test fails on a schedule, the test engine offers as feedback the interleaved traces of execution that resulted in the failure. We used our test engine to automatically test and evaluate two assignments: (a) lock-based producer/consumer problem, and (b) lock-free sorted list implementation, offered to a class of 150 under-graduate students of EPFL. Our evaluations show that the system is effective in detecting bugs in students' solutions.

  • Details
  • Metrics
Type
conference paper
DOI
10.1145/2998392.2998395
Web of Science ID

WOS:000390845300001

Author(s)
Mayer, Mikael  
Madhavan, Ravichandhran
Editors
Biboudis, A
•
Jonnalagedda, M
•
Stucki, S
•
Ureche, V
Date Issued

2016

Publisher

Assoc Computing Machinery

Publisher place

New York

Published in
Scala'16: Proceedings Of The 2016 7Th Acm Sigplan Symposium On Scala
ISBN of the book

978-1-4503-4648-1

Total of pages

10

Start page

1

End page

10

Subjects

Testing

•

Debugging

•

Concurrency

•

Synchronization

•

Scheduling

•

Deadlocks

•

Grading

Editorial or Peer reviewed

REVIEWED

Written at

EPFL

EPFL units
LARA  
Event nameEvent placeEvent date
7th ACM SIGPLAN Symposium on Scala

Amsterdam, NETHERLANDS

OCT 30-31, 2016

Available on Infoscience
January 24, 2017
Use this identifier to reference this record
https://infoscience.epfl.ch/handle/20.500.14299/133872
Logo EPFL, École polytechnique fédérale de Lausanne
  • Contact
  • infoscience@epfl.ch

  • Follow us on Facebook
  • Follow us on Instagram
  • Follow us on LinkedIn
  • Follow us on X
  • Follow us on Youtube
AccessibilityLegal noticePrivacy policyCookie settingsEnd User AgreementGet helpFeedback

Infoscience is a service managed and provided by the Library and IT Services of EPFL. © EPFL, tous droits réservés