本資料は、掲載誌(URI)等のリンク先にある学位授与機関のWebサイトやCiNii Dissertationsから、本文を自由に閲覧できる場合があります。
博士論文
Available in National Diet Library
Find on the publisher's website
国立国会図書館デジタルコレクション
Digital data available
Debugging and Testing Concurrent Programs with Efficient Test Case Generation
- Persistent ID (NDL)
- info:ndljp/pid/11008425
- Material type
- 博士論文
- Author
- Setiadi, Theodorus Eric
- Publisher
- -
- Publication date
- 2015-06-26
- Material Format
- Digital
- Capacity, size, etc.
- -
- Name of awarding university/degree
- 電気通信大学,博士(工学)
Notes on use at the National Diet Library
Notes on use
Note (General):
- Debugging multi-threaded concurrent programs is more difficult than sequential programs because errors are not always reproducible. Re-executing or in...
Search by Bookstore
Read this material in an accessible format.
Search by Bookstore
Read in Disability Resources
Bibliographic Record
You can check the details of this material, its authority (keywords that refer to materials on the same subject, author's name, etc.), etc.
Digital
- Material Type
- 博士論文
- Author/Editor
- Setiadi, Theodorus Eric
- Publication Date
- 2015-06-26
- Publication Date (W3CDTF)
- 2015-06-26
- Alternative Title
- 効率良いテストケース生成による並行処理プログラムのデバッグとテスト
- Degree grantor/type
- 電気通信大学
- Date Granted
- 2015-06-26
- Date Granted (W3CDTF)
- 2015-06-26
- Dissertation Number
- 乙第137号
- Degree Type
- 博士(工学)
- Conferring No. (Dissertation)
- 乙第137号
- Text Language Code
- eng
- Note (General)
- Debugging multi-threaded concurrent programs is more difficult than sequential programs because errors are not always reproducible. Re-executing or instrumenting a concurrent program for tracing might change the execution timing and might cause the concurrent program to take a different execution path. In other words, the exact timing that caused the error is unknown. In order to reproduce the error, one needs to execute the concurrent program with the same input values many times as test cases by changing interleavings, but it is not always feasible to test them all. This dissertation proposes a debugging/testing system that generates all possible executions as test cases based on the limited information obtained from an execution trace, and then detects potential race conditions caused by different schedules and interrupt timings on a concurrent multi-threaded program. There are a number of studies about test cases reduction using partial order reduction, but there are still redundancies for the purpose of checking race conditions. The objective is to efficiently reproduce concurrent errors, specifically race conditions, by proposing three methods. The first is to reduce the numbers of interleavings to be tested. This is achieved by reducing redundant test cases and eliminating infeasible ones. The originality of the proposed method is to exploit the nature of branch coverage and utilize data flows from the trace information to identify only those interleavings that affect branch outcomes, whereas existing methods try to identify all the interleavings which may affect shared variables. Since the execution paths with the same branch outcomes would have equivalent sequences of lock/unlock and read/write operations to shared variables, they can be grouped together in the same “race-equivalent” group. In order to reduce the task for reproducing race conditions, it is sufficient to check only one member of the group. In this way, the proposed method can significantly reduces the number of interleavings for testing while still capable of detecting the same race conditions. Furthermore, the proposed method extends the existing model of execution trace to identify and avoid generating infeasible interleavings due to dependency caused by lock/unlock and wait/notify mechanisms. Experimental results suggest that redundant interleavings can be identified and removed which leads to a significant reduction of test cases. We evaluated the proposed method against several concurrent Java programs. The experimental results for an open source program Apache Commons Pool show the number of test cases is reduced from 23, which is based on the existing Thread-Pair-Interleaving method (TPAIR), to only 2 by the proposed method. Moreover, for concurrent programs that contain infinite loops, the proposed method generates only a finite and very few numbers of test cases, while many existing methods generate an infinite number of test cases. The second is to reduce the memory space required for generating test cases. Redundant test cases were still generated by the existing reachability testing method even though there was no need to execute them. Here, we propose a new method by analyzing data dependency to generate only those test cases that might affect sequences of lock/unlock and read/write operations to shared variables. The experimental results for the Apache Commons Pool show that the size of the graph for creating the test cases is reduced from 990 nodes, as based on the reachability testing method used in our previous work, to only 4 nodes by our new method. The third improvement is to reduce the effort involved in checking race conditions by utilizing previous test results. Existing work requires checking race conditions in the whole execution trace for every new test case. The proposed method can identify only those parts of the execution trace in which the sequence of lock/unlock and read/write operations to shared variables might be affected by a new test case, thus necessitating that race conditions be rechecked only for those affected parts. From the new improvements introduced above, the proposed methods accomplish to significantly reduce the efforts for exhaustively checking all possible interleavings. The proposed methods provide programmers the information regarding whether there exist program errors caused by interleavings, the interleaving (path) when the errors occurred, and accesses to shared variables with inconsistent locking.2015
- Persistent ID (NDL)
- info:ndljp/pid/11008425
- Collection
- Collection (Materials For Handicapped People:1)
- Collection (particular)
- 国立国会図書館デジタルコレクション > デジタル化資料 > 博士論文
- Acquisition Basis
- 博士論文(自動収集)
- Date Accepted (W3CDTF)
- 2018-01-02T17:18:43+09:00
- Date Created (W3CDTF)
- 2016-09-02
- Format (IMT)
- application/pdf
- Access Restrictions
- 国立国会図書館内限定公開
- Service for the Digitized Contents Transmission Service
- 図書館・個人送信対象外
- Availability of remote photoduplication service
- 可
- Periodical Title (URI)
- Data Provider (Database)
- 国立国会図書館 : 国立国会図書館デジタルコレクション