Efficient Execution Path Exploration for Detecting Races in Concurrent Programs.

Saved in:
Bibliographic Details
Title: Efficient Execution Path Exploration for Detecting Races in Concurrent Programs.
Authors: Setiadi, Theodorus E.1 eric@maekawa.is.uec.ac.jp, Ohsuga, Akihiko1,2,3,4,5,6 akihiko@ohsuga.is.uec.ac.jp, Maekawa, Mamoru1,7,8,9 maekawa@maekawa.is.uec.ac.jp
Source: IAENG International Journal of Computer Science. 2013, Vol. 40 Issue 3, p15-34. 21p.
Subjects: Computers testing, Computer programming, Debugging, Computer programmers, Precision (Information retrieval), Information storage & retrieval systems
Abstract: Concurrent programs are more difficult to test or debug than sequential programs because their non-deterministic behaviors can produce errors that depend on timing and interleaving of threads. A different interleaving might affect branch outcomes that can lead the execution path into one different from that in which the error was detected. In order to detect concurrent errors, a programmer needs to re-execute the concurrent program many times by changing the interleaving, but it is not always feasible to conduct all the tests due to a large number of possible different interleavings. This paper proposes an efficient method to minimize the number of test cases for detecting errors in a concurrent program. This method generates test cases with different interleavings based on the execution trace. The method reduces redundant test cases without sacrificing the precision of error detection. The method is novel because it exploits the branch structure and utilizes data flows from trace information to identify only those interleavings that affect branch outcomes, whereas existing methods try to identify all interleavings that seem to affect shared variables. In order to reduce the number of test cases, those execution paths with equivalent lock sequences and accesses to shared variables are grouped together into the same "race-equivalent" group and only one member of the group is tested. We evaluated the proposed method against several concurrent Java programs. The experimental results for a Java program for telnet show the number of test cases is reduced from 147, which is based on the existing TPAIR method, 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 number of test cases, while many existing methods generate an infinite number of test cases. [ABSTRACT FROM AUTHOR]
Copyright of IAENG International Journal of Computer Science is the property of International Association of Engineers (IAENG) and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Database: Engineering Source
FullText Links:
  – Type: pdflink
Text:
  Availability: 0
Header DbId: egs
DbLabel: Engineering Source
An: 90109752
AccessLevel: 6
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 0
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: Efficient Execution Path Exploration for Detecting Races in Concurrent Programs.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Setiadi%2C+Theodorus+E%2E%22">Setiadi, Theodorus E.</searchLink><relatesTo>1</relatesTo><i> eric@maekawa.is.uec.ac.jp</i><br /><searchLink fieldCode="AR" term="%22Ohsuga%2C+Akihiko%22">Ohsuga, Akihiko</searchLink><relatesTo>1,2,3,4,5,6</relatesTo><i> akihiko@ohsuga.is.uec.ac.jp</i><br /><searchLink fieldCode="AR" term="%22Maekawa%2C+Mamoru%22">Maekawa, Mamoru</searchLink><relatesTo>1,7,8,9</relatesTo><i> maekawa@maekawa.is.uec.ac.jp</i>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: <searchLink fieldCode="JN" term="%22IAENG+International+Journal+of+Computer+Science%22">IAENG International Journal of Computer Science</searchLink>. 2013, Vol. 40 Issue 3, p15-34. 21p.
– Name: Subject
  Label: Subjects
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22Computers+testing%22">Computers testing</searchLink><br /><searchLink fieldCode="DE" term="%22Computer+programming%22">Computer programming</searchLink><br /><searchLink fieldCode="DE" term="%22Debugging%22">Debugging</searchLink><br /><searchLink fieldCode="DE" term="%22Computer+programmers%22">Computer programmers</searchLink><br /><searchLink fieldCode="DE" term="%22Precision+%28Information+retrieval%29%22">Precision (Information retrieval)</searchLink><br /><searchLink fieldCode="DE" term="%22Information+storage+%26+retrieval+systems%22">Information storage & retrieval systems</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: Concurrent programs are more difficult to test or debug than sequential programs because their non-deterministic behaviors can produce errors that depend on timing and interleaving of threads. A different interleaving might affect branch outcomes that can lead the execution path into one different from that in which the error was detected. In order to detect concurrent errors, a programmer needs to re-execute the concurrent program many times by changing the interleaving, but it is not always feasible to conduct all the tests due to a large number of possible different interleavings. This paper proposes an efficient method to minimize the number of test cases for detecting errors in a concurrent program. This method generates test cases with different interleavings based on the execution trace. The method reduces redundant test cases without sacrificing the precision of error detection. The method is novel because it exploits the branch structure and utilizes data flows from trace information to identify only those interleavings that affect branch outcomes, whereas existing methods try to identify all interleavings that seem to affect shared variables. In order to reduce the number of test cases, those execution paths with equivalent lock sequences and accesses to shared variables are grouped together into the same "race-equivalent" group and only one member of the group is tested. We evaluated the proposed method against several concurrent Java programs. The experimental results for a Java program for telnet show the number of test cases is reduced from 147, which is based on the existing TPAIR method, 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 number of test cases, while many existing methods generate an infinite number of test cases. [ABSTRACT FROM AUTHOR]
– Name: AbstractSuppliedCopyright
  Label:
  Group: Ab
  Data: <i>Copyright of IAENG International Journal of Computer Science is the property of International Association of Engineers (IAENG) and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.)
PLink https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=egs&AN=90109752
RecordInfo BibRecord:
  BibEntity:
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 21
        StartPage: 15
    Subjects:
      – SubjectFull: Computers testing
        Type: general
      – SubjectFull: Computer programming
        Type: general
      – SubjectFull: Debugging
        Type: general
      – SubjectFull: Computer programmers
        Type: general
      – SubjectFull: Precision (Information retrieval)
        Type: general
      – SubjectFull: Information storage & retrieval systems
        Type: general
    Titles:
      – TitleFull: Efficient Execution Path Exploration for Detecting Races in Concurrent Programs.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Setiadi, Theodorus E.
      – PersonEntity:
          Name:
            NameFull: Ohsuga, Akihiko
      – PersonEntity:
          Name:
            NameFull: Maekawa, Mamoru
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 09
              Text: 2013
              Type: published
              Y: 2013
          Identifiers:
            – Type: issn-print
              Value: 1819656X
          Numbering:
            – Type: volume
              Value: 40
            – Type: issue
              Value: 3
          Titles:
            – TitleFull: IAENG International Journal of Computer Science
              Type: main
ResultId 1