Testing Java']Java monitors through deterministic execution

被引:6
|
作者
Harvey, C [1 ]
Strooper, P [1 ]
机构
[1] Univ Queensland, Sch Comp Sci & Elect Engn, Software Verificat Res Ctr, Brisbane, Qld 4072, Australia
关键词
D O I
10.1109/ASWEC.2001.948498
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Java is a popular modern programming language that supports monitors. However, monitor implementations, like other concurrent programs, are hard to test due to the inherent non-determinism. This paper presents a method for testing Java monitors, which extends the work of Brinch Hansen on testing Concurrent Pascal monitors. A monitor is tested by executing a concurrent program in which the processes are synchronised by a clock to make the sequence of interactions deterministic and reproducible. The method is extended to account for the differences between Concurrent Pascal monitors and Java monitors, and to provide additional coverage of the implementation under test. Tool support and documentation in the form of a test plan are also provided. The method is illustrated in detail on an asymmetric producer-consumer monitor which is the same example that was used to illustrate the original method. The application of the method to the readers and writers problem is also discussed.
引用
收藏
页码:61 / 67
页数:7
相关论文
共 50 条
  • [21] Harissa: A hybrid approach to Java']Java execution
    Muller, G
    Schultz, UP
    IEEE SOFTWARE, 1999, 16 (02) : 44 - +
  • [22] Adaptive distributed execution of Java']Java applications
    Felea, V
    Toursel, B
    12TH EUROMICRO CONFERENCE ON PARALLEL, DISTRIBUTED AND NETWORK-BASED PROCESSING, PROCEEDINGS, 2004, : 16 - 21
  • [23] A uniform transactional execution environment for Java']Java
    Ziarek, Lukasz
    Welc, Adam
    Adl-Tabatabai, Ali-Reza
    Menon, Vijay
    Shpeisman, Tatiana
    Jagannathan, Suresh
    ECOOP 2008 - OBJECT-ORIENTED PROGRAMMING, PROCEEDINGS, 2008, 5142 : 129 - +
  • [24] Java']Java Remote Job Execution System
    Jiang, Shanliang
    Clements, Stuart
    CISIS 2008: THE SECOND INTERNATIONAL CONFERENCE ON COMPLEX, INTELLIGENT AND SOFTWARE INTENSIVE SYSTEMS, PROCEEDINGS, 2008, : 561 - 566
  • [25] Compact visualization of Java']Java program execution
    Jayaraman, S.
    Jayaraman, B.
    Lessa, D.
    SOFTWARE-PRACTICE & EXPERIENCE, 2017, 47 (02): : 163 - 191
  • [26] Java']Java Ranger: Statically Summarizing Regions for Efficient Symbolic Execution of Java']Java
    Sharma, Vaibhav
    Hussein, Soha
    Whalen, Michael W.
    McCamant, Stephen
    Visser, Willem
    PROCEEDINGS OF THE 28TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE '20), 2020, : 123 - 134
  • [27] Monitors and exceptions: how to implement Java']Java efficiently
    Krall, A
    Probst, M
    CONCURRENCY-PRACTICE AND EXPERIENCE, 1998, 10 (11-13): : 837 - 850
  • [28] Java']Java core permits direct Java']Java byte-code execution
    Vollmer, A
    ELECTRONIC DESIGN, 2000, 48 (22) : 30 - +
  • [29] Deterministic Java']Java in tiny embedded systems
    Nilsson, A
    Ekman, T
    FOURTH IEEE INTERNATIONAL SYMPOSIUM ON OBJECT-ORIENTED REAL-TIME DISTRIBUTED COMPUTING, PROCEEDINGS, 2001, : 60 - 68
  • [30] Testing Java']Java classes
    Handwerker, M
    DR DOBBS JOURNAL, 1999, 24 (09): : 10 - +