Reproducing field failures is the first essential step for understanding, localizing and removing faults. Reproducing concurrency field failures is hard due to the need of synthesizing a test code jointly with a thread interleaving that induce the failure in the presence of limited information from the field. Current techniques for reproducing concurrency failures focus on identifying failureinducing interleavings, leaving largely open the problem of synthesizing the test code that manifests such interleavings. In this paper, we present ConCrash, a technique to automatically generate test codes that reproduce concurrency failures that violate thread-safety from crash stacks, which commonly summarize the conditions of field failures. ConCrash efficiently explores the huge space of possible test codes to identify a failure-inducing one by using a suitable set of search pruning strategies. Combined with existing techniques for exploring interleavings, ConCrash automatically reproduces a given concurrency failure that violates the thread-safety of a class by identifying both a failure-inducing test code and corresponding interleaving. In the paper, we define the ConCrash approach, present a prototype implementation of ConCrash, and discuss the experimental results that we obtained on a known set of ten field failures that witness the effectiveness of the approach.

Bianchi, F., Pezze', M., Terragni, V. (2017). Reproducing concurrency failures from crash stacks. In Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering (pp.705-716). Association for Computing Machinery [10.1145/3106237.3106292].

Reproducing concurrency failures from crash stacks

Pezze', M;
2017

Abstract

Reproducing field failures is the first essential step for understanding, localizing and removing faults. Reproducing concurrency field failures is hard due to the need of synthesizing a test code jointly with a thread interleaving that induce the failure in the presence of limited information from the field. Current techniques for reproducing concurrency failures focus on identifying failureinducing interleavings, leaving largely open the problem of synthesizing the test code that manifests such interleavings. In this paper, we present ConCrash, a technique to automatically generate test codes that reproduce concurrency failures that violate thread-safety from crash stacks, which commonly summarize the conditions of field failures. ConCrash efficiently explores the huge space of possible test codes to identify a failure-inducing one by using a suitable set of search pruning strategies. Combined with existing techniques for exploring interleavings, ConCrash automatically reproduces a given concurrency failure that violates the thread-safety of a class by identifying both a failure-inducing test code and corresponding interleaving. In the paper, we define the ConCrash approach, present a prototype implementation of ConCrash, and discuss the experimental results that we obtained on a known set of ten field failures that witness the effectiveness of the approach.
paper
Concurrency; Debugging; Software crashes; Test generation;
English
11th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE 2017 - 4 September 2017 through 8 September 2017
2017
Zisman, A; Bodden, E; Schafer, W; van Deursen, A
Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering
978-1-4503-5105-8
2017
Part F130154
705
716
none
Bianchi, F., Pezze', M., Terragni, V. (2017). Reproducing concurrency failures from crash stacks. In Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering (pp.705-716). Association for Computing Machinery [10.1145/3106237.3106292].
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10281/172070
Citazioni
  • Scopus 16
  • ???jsp.display-item.citation.isi??? 14
Social impact