Mitra Tabaei Befrouei

dblp:117/2568 · DBLP profile ↗
← Back
7ranked-venue papers
2as first author
1since 2021 · last 2021
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 6 · 1 first-author · 1 since 2021Theory of computation · 2 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Software testing · 50% Concurrent programming · 25% Program verification · 19%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Distributed systems · 100%

Topics — the 6 heaviest of 6, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Concurrent programming
concurrency bug detection
0.312018
Randomized testing of distributed systems with probabilistic guarantees · Proc. ACM Program. Lang. 2018
Software testing › system testing
distributed system testing
0.312018
Randomized testing of distributed systems with probabilistic guarantees · Proc. ACM Program. Lang. 2018
Software testing
random testing
0.312018
Randomized testing of distributed systems with probabilistic guarantees · Proc. ACM Program. Lang. 2018
Distributed systems
distributed system testing
0.312018
Randomized testing of distributed systems with probabilistic guarantees · Proc. ACM Program. Lang. 2018
Program verification
concurrent program verification
0.212016
Error Invariants for Concurrent Traces · FM 2016
Debugging and program repair
fault localization
0.112016
Error Invariants for Concurrent Traces · FM 2016

Methods — techniques the papers use, named apart from their topics

partial order reduction · 0.7combinatorial analysis · 0.7
YearPublicationVenuePosition
2021 Mutation testing with hyperproperties
Andreas Fellner, Mitra Tabaei Befrouei, Georg Weissenbacher
Softw. Syst. Model.2
2019 Mutation Testing with Hyperproperties
abstract
Abstract We present a new method for model-based mutation-driven test case generation. Mutants are generated by making small syntactical modifications to the model or source code of the system under test. A test case kills a mutant if the behavior of the mutant deviates from the original system when running the test. In this work, we use hyperproperties—which allow to express relations between multiple executions—to formalize different notions ofkillingfor both deterministic as well as non-deterministic models. The resulting hyperproperties are universal in the sense that they apply to arbitrary reactive models and mutants. Moreover, an off-the-shelf model checking tool for hyperproperties can be used to generate test cases. Furthermore, we propose solutions to overcome the limitations of current model checking tools via a model transformation and a bounded SMT encoding. We evaluate our approach on a number of models expressed in two different modeling languages by generating tests using a state-of-the-art mutation testing tool.
Andreas Fellner, Mitra Tabaei Befrouei, Georg Weissenbacher
SEFM2
2018 Randomized testing of distributed systems with probabilistic guarantees
abstract
Several recently proposed randomized testing tools for concurrent and distributed systems come with theoretical guarantees on their success. The key to these guarantees is a notion of bug depth—the minimum length of a sequence of events sufficient to expose the bug—and a characterization of d -hitting families of schedules—a set of schedules guaranteed to cover every bug of given depth d . Previous results show that in certain cases the size of a d -hitting family can be significantly smaller than the total number of possible schedules. However, these results either assume shared-memory multithreading, or that the underlying partial ordering of events is known statically and has special structure. These assumptions are not met by distributed message-passing applications. In this paper, we present a randomized scheduling algorithm for testing distributed systems. In contrast to previous approaches, our algorithm works for arbitrary partially ordered sets of events revealed online as the program is being executed. We show that for partial orders of width at most w and size at most n (both statically unknown), our algorithm is guaranteed to sample from at most w 2 n d −1 schedules, for every fixed bug depth d . Thus, our algorithm discovers a bug of depth d with probability at least 1 / ( w 2 n d −1 ). As a special case, our algorithm recovers a previous randomized testing algorithm for multithreaded programs. Our algorithm is simple to implement, but the correctness arguments depend on difficult combinatorial results about online dimension and online chain partitioning of partially ordered sets. We have implemented our algorithm in a randomized testing tool for distributed message-passing programs. We show that our algorithm can find bugs in distributed systems such as Zookeeper and Cassandra, and empirically outperforms naive random exploration while providing theoretical guarantees.
Burcu Kulahcioglu Ozkan, Rupak Majumdar, Filip Niksic, Mitra Tabaei Befrouei, Georg Weissenbacher
Proc. ACM Program. Lang.4
2016 Error Invariants for Concurrent Traces
Andreas Holzer, Daniel Schwartz-Narbonne, Mitra Tabaei Befrouei, Georg Weissenbacher, Thomas Wies
FM3
2016 Abstraction and mining of traces to explain concurrency bugs
abstract
We propose an automated mining-based method for explaining concurrency bugs. We use a data mining technique called sequential pattern mining to identify problematic sequences of concurrent read and write accesses to the shared memory of a multithreaded program. Our technique does not rely on any characteristics specific to one type of concurrency bug, thus providing a general framework for concurrency bug explanation. In our method, given a set of concurrent execution traces, we first mine sequences that frequently occur in failing traces and then rank them based on the number of their occurrences in passing traces. We consider the highly ranked sequences of events that occur frequently only in failing traces an explanation of the system failure, as they can reveal its causes in the execution traces. Since the scalability of sequential pattern mining is limited by the length of the traces, we present an abstraction technique which shortens the traces at the cost of introducing spurious explanations. Spurious as well as misleading explanations are then eliminated by a subsequent filtering step, helping the programmer to focus on likely causes of the failure. We validate our approach using a number of case studies, including synthetic as well as real-world bugs.
Mitra Tabaei Befrouei, Chao Wang 0001, Georg Weissenbacher
Formal Methods Syst. Des.1
2014 Abstraction and Mining of Traces to Explain Concurrency Bugs
Mitra Tabaei Befrouei, Chao Wang 0001, Georg Weissenbacher
RV1
2013 Mining Sequential Patterns to Explain Concurrent Counterexamples
Stefan Leue, Mitra Tabaei Befrouei
SPIN2