|
About Concutest
Introduction
ConcJUnit
Thread Checker
Schedule-Based Execution
Using Concutest
Download
How to Run
License
Resources
Documentation
FAQ
Publications
Give Feedback
Features, Bugs, Support
Contact Us
Developers
SourceForge Project
Developer Docs
Javadocs
Developer Blog
Mathias Ricken's Homepage
|
|
|
|
Testing Using Schedule-Based Execution
The testing framework using scheduled replay that we propose will perform four
new functions not provided by existing systems:
- Executing unit tests according to specific schedules recorded in files as
sequences of synchronization operations.
- Providing a tool for generating a representative set of schedules for a
particular unit test using both exhaustive and randomized methods.
- Applying the Eraser Algorithm during unit testing to confirm that shared
variables are accessed using a consistent locking protocol.
- Providing a tool to ensure that the schedule files for concurrent unit
tests remain consistent with the program code base as it evolves.
Running the Eraser Algorithm will confirm that synchronization-based replay
is deterministic and that schedules other than those tested are unlikely to generate data races.
The new framework will use custom class loaders to rewrite byte code to support schedule-based execution
and the Eraser Algorithm.
Tentatively, we will break the project into the following phases and approach
them in order:
- Detection of Synchronization Events
- Scheduled Program Replay
- Generation of Schedules
- Verification of Shared Variable Locking
- Schedule Consistency Checking
- Unit Testing of Distributed Applications
Supplemental material
- A Framework for Testing Concurrent Programs (PhD Thesis, view embedded):
Mathias
Ricken's PhD thesis, April 19, 2011.
- A Framework for Testing Concurrent Programs (PhD Thesis Defense Presentation, PowerPoint, PDF, view embedded):
Mathias
Ricken's presentation from his PhD thesis defense, January 10, 2011.
- A Framework for Testing Concurrent Programs (PhD Thesis Proposal Presentation, PowerPoint, PDF, view embedded):
Mathias
Ricken's presentation from his PhD thesis proposal, December 2, 2010.
- Testing Concurrent Programs, A 7-Minute Jargon-Free Introduction (Presentation, PowerPoint, view embedded):
Mathias Ricken's presentation to the Thesis Writing Seminar of the School of Engineering at Rice University, February 25, 2010.
- Test-First Java Concurrency for the Classroom (Presentation, PowerPoint, view embedded):
Mathias Ricken's presentation at SIGCSE 2010, March 12, 2010.).
- Test-First Java Concurrency for the Classroom (Paper, PDF, view embedded, assignment):
Paper to be published in the proceedings of the 41st Technical Symposium on Computer Science Education (SIGCSE 2010).
- ConcJUnit: Unit Testing for Concurrent Programs (Presentation, PowerPoint, view embedded):
Mathias Ricken's presentation at the 7th International Conference on the Principles and Practice of Programming in Java (PPPJ 2009), August 24, 2009.
- ConcJUnit: Unit Testing for Concurrent Programs (Presentation, PowerPoint, view embedded):
Mathias Ricken's presentation for the COMP 600 seminar, August 24, 2009.
- ConcJUnit: Unit Testing for Concurrent Programs (Paper, PDF, view embedded):
Paper published in the proceedings of the 7th International Conference on the Principles and Practice of Programming in Java (PPPJ 2009).
- Practical Tools for Testing Concurrent Programs (Poster, PDF, view embedded):
created for 2006
Corporate Affiliates Meeting at the Computer Science Department of
Rice University to summarise our efforts.
- Unit Testing for Concurrent Programs (Poster, PDF, view embedded):
created for 2005
Corporate Affiliates Meeting at the Computer Science Department of
Rice University to summarise our efforts.
- Unit Testing for Concurrent Programs (Poster, PDF, view embedded): older version created for 2004
Corporate Affiliates Meeting at the Computer Science Department of
Rice University to summarise our efforts.
- Unit Testing for Concurrent Programs (Poster Abstract, PDF, view embedded):
abstract for 2004
Corporate Affiliates Meeting at the Computer Science Department of
Rice University to summarise our efforts.
- A Framework for Testing Concurrent Programs (MS Defense Presentation, PowerPoint, view embedded):
Mathias
Ricken's presentation from his Master of Science defense, June 14, 2007.
- A Framework for Testing Concurrent Programs (MS Thesis, PDF, view embedded):
Mathias Ricken's Master of Science thesis
- A Framework for Testing Concurrent Programs (Presentation, PowerPoint, view embedded):
Mathias
Ricken's presentation for the COMP 600 seminar, August 27, 2007.
- Testing Concurrent Programs (Presentation, PowerPoint, view embedded):
Mathias Ricken's presentation for the Rice Computer Science Club, October 4, 2007.
- Java Annotations for Invariant Specification (Presentation, PowerPoint):
Mathias Ricken's presentation for the COMP 617 seminar, September 22, 2008.
- Invariant Specification and Multi-Staging using Java Annotations (Poster, PDF, view embedded):
created for 2008
Corporate Affiliates Meeting at the Computer Science Department of
Rice University.
- Direct access to the download directory
|