Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1295074.1295077acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

ConTest listeners: a concurrency-oriented infrastructure for Java test and heal tools

Published: 03 September 2007 Publication History

Abstract

With the proliferation of the new multi-core personal computers, and the explosion of the usage of highly concurrent machine configuration, concurrent code moves from being written by the select few to the masses. As anyone who has written such code knows, there are many traps awaiting. This increases the need for good concurrency-aware tools to be used in the program quality cycle: monitoring, testing, debugging, and the emerging field of self-healing.
Academics who build such tools face two main difficulties; writing the instrumentation infrastructure for the tool, and integrating it into real user environments to obtain meaningful results. As these difficulties are hard to overcome, most academic tools do not make it past the toy stage.
The ConTest Listener architecture provides instrumentation and runtime engines to which writers of test and heal tools, especially concurrency-oriented, can easily plug their code. This paper describes this architecture, mainly from the point of view of a user intending to create a testing/healing tool. This architecture enables tool creators to focus on the concurrent problem they are trying to solve without writing the entire infrastructure. In addition, once they create a tool within the ConTest Listeners framework the tool can be used by the framework users with no additional work, enabling access to real industrial applications. We show how to create tools using the architecture and describe some work that has already taken place.

References

[1]
C. Artho, K. Havelund, and A. Biere. High-level data races. In VVEIS'03, The First International Workshop on Verification and Validation of Enterprise Information Systems, April 2003.
[2]
AspectJ Team. The AspectJ programming guide. Version 1.5.3. Available from http://eclipse.org/aspectj, 2006.
[3]
J. Baker and W. Hsieh. Runtime aspect weaving through metaprogramming. In AOSD '02: Proceedings of the 1st international conference on Aspect-oriented software development, pages 86--95, 2002.
[4]
A. Bron, E. Farchi, Y. Magid, Y. Nir, and S. Ur. Applications of synchronization coverage. In PPoPP '05: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, pages 206--212. ACM SIGPLAN, June 2005.
[5]
J.-D. Choi and H. Srinivasan. Deterministic replay of java multithreaded applications. In Proceedings of the SIGMETRICS Symposium on Parallel and Distributed Tools, pages 48--59, 1998.
[6]
S. Copty and S. Ur. Multi-threaded testing with aop is easy, and it finds bugs! In Proc. 11th International Euro-Par Conference, pages 740--749. LNCS, 2005.
[7]
S. Copty and S. Ur. Toward automatic concurrent debugging via minimal program mutant generation with aspectj. In TV06, 2006.
[8]
Eclipse Organization. Welcome to eclipse (plugin developer guide). http://eclipse.org/documentation, 2005.
[9]
O. Edelstein, E. Farchi, Y. Nir, G. Ratzaby, and S. Ur. Multithreaded java program test generation. IBM Systems Journal, 41(3):111--125, 2002.
[10]
Y. Eytani, K. Havelund, S. D. Stoller, and S. Ur. Towards a framework and a benchmark for testing tools for multi-threaded programs: Research articles. Concurr. Comput. : Pract. Exper., 19(3):267--279, 2007.
[11]
E. Farchi, Y. Nir-Buchbinder, and S. Ur. Cross-run lock discipline checker for java. In Parallel and Distributed Systems: Testing and Debugging (PADTAD - 3), November 2005.
[12]
K. Havelund, S. D. Stoller, and S. Ur. Benchmark and framework for encouraging research on multi-threaded testing tools. In IPDPS '03: Proceedings of the 17th International Symposium on Parallel and Distributed Processing, page 286.1, 2003.
[13]
Mozilla FireFox. developer center. http://developer.mozilla.org/en/docs/Main_Page.
[14]
S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson. Eraser: A dynamic data race detector for multithreaded programs. ACM Transactions on Computer Systems, 15(4):391--411, November 1997.
[15]
J. Shore. Fail fast. IEEE Software, 21(5):21--25, Sept/Oct 2004.
[16]
S. D. Stoller. Model-checking multi-threaded distributed java programs. In Proceedings of the 7th International SPIN Workshop on Model Checking, pages 224--244, 2000.

Cited By

View all
  • (2023)An Experimental Evaluation of Tools for Grading Concurrent Programming ExercisesFormal Techniques for Distributed Objects, Components, and Systems10.1007/978-3-031-35355-0_1(3-20)Online publication date: 10-Jun-2023
  • (2018)CHOMK: Concurrent Higher-Order Mutants Killing Using Genetic AlgorithmArabian Journal for Science and Engineering10.1007/s13369-018-3226-yOnline publication date: 12-Apr-2018
  • (2012)Location pairsEmpirical Software Engineering10.1007/s10664-011-9166-817:3(129-165)Online publication date: 1-Jun-2012
  • Show More Cited By
  1. ConTest listeners: a concurrency-oriented infrastructure for Java test and heal tools

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    SOQUA '07: Fourth international workshop on Software quality assurance: in conjunction with the 6th ESEC/FSE joint meeting
    September 2007
    120 pages
    ISBN:9781595937247
    DOI:10.1145/1295074
    • General Chair:
    • Mauro Pezzè
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 03 September 2007

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Java
    2. concurrency
    3. instrumentation
    4. self-healing
    5. testing

    Qualifiers

    • Article

    Conference

    ESEC/FSE07
    Sponsor:

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)1
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 12 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)An Experimental Evaluation of Tools for Grading Concurrent Programming ExercisesFormal Techniques for Distributed Objects, Components, and Systems10.1007/978-3-031-35355-0_1(3-20)Online publication date: 10-Jun-2023
    • (2018)CHOMK: Concurrent Higher-Order Mutants Killing Using Genetic AlgorithmArabian Journal for Science and Engineering10.1007/s13369-018-3226-yOnline publication date: 12-Apr-2018
    • (2012)Location pairsEmpirical Software Engineering10.1007/s10664-011-9166-817:3(129-165)Online publication date: 1-Jun-2012
    • (2010)A meta-aspect protocol for developing dynamic analysesProceedings of the First international conference on Runtime verification10.5555/1939399.1939415(153-167)Online publication date: 1-Nov-2010
    • (2010)Detection of deadlock potentials in multithreaded programsIBM Journal of Research and Development10.1147/JRD.2010.206027654:5(520-534)Online publication date: 1-Sep-2010
    • (2010)A platform for search-based testing of concurrent softwareProceedings of the 8th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging10.1145/1866210.1866215(48-58)Online publication date: 13-Jul-2010
    • (2010)Improving throughput via slowdownsProceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 210.1145/1810295.1810298(11-20)Online publication date: 1-May-2010
    • (2010)Formalizing a Methodology for Design- and Runtime Self-HealingProceedings of the 2010 Seventh IEEE International Conference and Workshops on Engineering of Autonomic and Autonomous Systems10.1109/EASe.2010.21(106-115)Online publication date: 22-Mar-2010
    • (2008)AtomRaceProceedings of the 6th workshop on Parallel and distributed systems: testing, analysis, and debugging10.1145/1390841.1390848(1-10)Online publication date: 20-Jul-2008
    • (2008)Experience with a Concurrency Bugs BenchmarkProceedings of the 2008 IEEE International Conference on Software Testing Verification and Validation Workshop10.1109/ICSTW.2008.17(379-384)Online publication date: 9-Apr-2008
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media