Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Bohuslav Křena is active.

Publication


Featured researches published by Bohuslav Křena.


workshop on i/o in parallel and distributed systems | 2008

AtomRace: data race and atomicity violation detector and healer

Zdeněk Letko; Tomáš Vojnar; Bohuslav Křena

The paper proposes a novel algorithm called AtomRace for a dynamic detection of data races. Data races are detected as a special case of atomicity violations on atomic sections specially defined to span just particular read/write instructions and the transfer of control to and from them. A key ingredient allowing AtomRace to efficiently detect races on such short atomic sections is a use of techniques for a careful injection of noise into the scheduling of the monitored programs. The approach is very simple, fully automated, avoids false alarms, and allows for a lower overhead and better scalability than many other existing dynamic data race detection algorithms. We illustrate these facts by a set of experiments with a prototype implementation of AtomRace. Further, AtomRace can also be applied to detect atomicity violations on more general atomic sections than those used for the data race detection. They can be defined by the user or obtained by some static analysis.


runtime verification | 2011

Coverage metrics for saturation-based and search-based testing of concurrent software

Bohuslav Křena; Zdeněk Letko; Tomáš Vojnar

Coverage metrics play a crucial role in testing. They allow one to estimate how well a program has been tested and/or to control the testing process. Several concurrency-related coverage metrics have been proposed, but most of them do not reflect concurrent behaviour accurately enough. In this paper, we propose several new metrics that are suitable primarily for saturation-based or search-based testing of concurrent software. Their distinguishing feature is that they are derived from various dynamic analyses designed for detecting synchronisation errors in concurrent software. In fact, the way these metrics are obtained is generic, and further metrics can be obtained in a similar way from other analyses. The underlying motivation is that, within such analyses, behavioural aspects crucial for occurrence of various bugs are identified, and hence it makes sense to track how well the occurrence of such phenomena is covered by testing. Next, coverage tasks of the proposed as well as some existing metrics are combined with an abstract identification of the threads participating in generation of the phenomena captured in the concerned tasks. This way, further, more precise metrics are obtained. Finally, an empirical evaluation of the proposed metrics, which confirms that several of them are indeed more suitable for saturation-based and search-based testing than the previously known metrics, is presented.


runtime verification | 2009

A Concurrency Testing Tool and Its Plug-Ins for Dynamic Analysis and Runtime Healing

Bohuslav Křena; Zdeněk Letko; Yarden Nir-Buchbinder; Rachel Tzoref-Brill; Shmuel Ur; Tomáš Vojnar

This paper presents a tool for concurrency testing (abbreviated as ConTest) and some of its extensions. The extensions (called plug-ins in this paper) are implemented through the listener architecture of ConTest. Two plug-ins for runtime detection of common concurrent bugs are presented--the first (Eraser+) is able to detect data races while the second (AtomRace) is able to detect not only data races but also more general bugs caused by violation of atomicity presumptions. A third plug-in presented in this paper is designed to hide bugs that made it into the field so that when problems are detected they can be circumvented. Several experiments demonstrate the capabilities of these plug-ins.


symposium on search based software engineering | 2012

Testing of concurrent programs using genetic algorithms

Vendula Hrubá; Bohuslav Křena; Zdeněk Letko; Shmuel Ur; Tomáš Vojnar

Noise injection disturbs the scheduling of program threads in order to increase the probability that more of their different legal interleavings occur during the testing process. However, there exist many different types of noise heuristics with many different parameters that are not easy to set such that noise injection is really efficient. In this paper, we propose a new way of using genetic algorithms to search for suitable types of noise heuristics and their parameters. This task is formalized as the test and noise configuration search problem in the paper, followed by a discussion of how to represent instances of this problem for genetic algorithms, which objectives functions to use, as well as parameter tuning of genetic algorithms when solving the problem. The proposed approach is evaluated on a set of benchmarks, showing that it provides significantly better results than the so far preferred random noise injection.


Software Testing, Verification & Reliability | 2015

Advances in noise-based testing of concurrent software

Jan Fiedor; Vendula Hrubá; Bohuslav Křena; Zdeněk Letko; S. Ur; Tomáš Vojnar

Testing of concurrent software written in programming languages like Java and C/C++ is a highly challenging task owing to the many possible interactions among threads. A simple, cheap, and effective approach that addresses this challenge is testing with noise injection, which influences the scheduling so that different interleavings of concurrent actions are witnessed. In this paper, multiple results achieved recently in the area of noise‐injection‐based testing by the authors are presented in a unified and extended way. In particular, various concurrency coverage metrics are presented first. Then, multiple heuristics for solving the noise placement problem (i.e. where and when to generate noise) as well as the noise seeding problem (i.e. how to generate the noise) are introduced and experimentally evaluated. In addition, several new heuristics are proposed and included into the evaluation too. Recommendations on how to set up noise‐based testing for particular scenarios are then given. Finally, a novel use of the genetic algorithm for finding suitable combinations of the many parameters of tests and noise techniques is presented. Copyright


International Journal of General Systems | 2013

Automated formal analysis and verification: an overview

Bohuslav Křena; Tomáš Vojnar

This paper provides an overview of various existing approaches to automated formal analysis and verification. The most space is devoted to the approach of model checking, including its basic principles as well as the different techniques that have been proposed for dealing with the state space explosion problem in model checking. This paper, however, includes a brief discussion of theorem proving and static analysis too. All of the discussed approaches are introduced mostly on an informal level, with an attempt to provide the reader with their basic ideas and references to works where more details can be found.


symposium on search based software engineering | 2014

Multi-objective Genetic Optimization for Noise-Based Testing of Concurrent Software

Vendula Hrubá; Bohuslav Křena; Zdeněk Letko; Hana Pluháčková; Tomáš Vojnar

Testing of multi-threaded programs is a demanding work due to the many possible thread interleavings one should examine. The noise injection technique helps to increase the number of thread interleavings examined during repeated test executions provided that a suitable setting of noise injection heuristics is used. The problem of finding such a setting, i.e., the so called test and noise configuration search problem (TNCS problem), is not easy to solve. In this paper, we show how to apply a multi-objective genetic algorithm (MOGA) to the TNCS problem. In particular, we focus on generation of TNCS solutions that cover a high number of distinct interleavings (especially those which are rare) and provide stable results at the same time. To achieve this goal, we study suitable metrics and ways how to suppress effects of non-deterministic thread scheduling on the proposed MOGA-based approach. We also discuss a choice of a concrete MOGA and its parameters suitable for our setting. Finally, we show on a set of benchmark programs that our approach provides better results when compared to the commonly used random approach as well as to the sooner proposed use of a single-objective genetic approach.


runtime verification | 2018

Discovering Concurrency Errors

João M. Lourenço; Jan Fiedor; Bohuslav Křena; Tomáš Vojnar

Lots of concurrent software is being developed for the now ubiquitous multicore processors. And concurrent programming is difficult because it is quite easy to introduce errors that are really hard to diagnose and fix. One of the main obstacles to concurrent programming is that threads are scheduled nondeterministically and their interactions may become hard to predict and to devise. This chapter addresses the nature of concurrent programming and some classes of concurrency errors. It discusses the application of dynamic program analysis techniques to detect, locate and diagnose some common concurrency errors like data races, atomicity violations and deadlocks. This chapter also mentions some techniques that can help with quality assurance of concurrent programs, regardless of any particular class of concurrency errors, like noise injection and systematic testing, and it is closed by some prospects of concurrent software development.


computer aided systems theory | 2009

Self-healing Assurance Based on Bounded Model Checking

Vendula Hrubá; Bohuslav Křena; Tomáš Vojnar

This paper presents an approach of using bounded model checking for healing assurance within a framework for self-healing of concurrent Java programs. In this framework, dynamic (i.e., runtime) analysis is used to detect possible data races for which some pre-defined healing strategy may subsequently be applied. Before applying such a strategy, it is desirable to confirm that the detected possible error is indeed a real error and that the suggested healing strategy will solve it without introducing an even worse problem (namely, a deadlock). For this purpose, we suggest bounded model checking to be applied in the neighbourhood of the state in which the possible error is detected. In order to make this possible, we record certain points in the trace leading to the suspicious state within a run of the tested system, and then replay the trace in the chosen model checker (in particular, Java PathFinder) using its state space exploration capabilities to navigate between the recorded points.


runtime verification | 2011

DA-BMC: a tool chain combining dynamic analysis and bounded model checking

Jan Fiedor; Vendula Hrubá; Bohuslav Křena; Tomáš Vojnar

This paper presents the DA-BMC tool chain that allows one to combine dynamic analysis and bounded model checking for finding synchronisation errors in concurrent Java programs. The idea is to use suitable dynamic analyses to identify executions of a program being analysed that are suspected to contain synchronisation errors. Some points in such executions are recorded, and then the executions are reproduced in a model checker, using its capabilities to navigate among the recorded points. Subsequently, bounded model checking in a vicinity of the replayed execution is used to confirm whether there are some real errors in the program and/or to debug the problematic execution of the program.

Collaboration


Dive into the Bohuslav Křena's collaboration.

Top Co-Authors

Avatar

Tomáš Vojnar

Brno University of Technology

View shared research outputs
Top Co-Authors

Avatar

Zdeněk Letko

Brno University of Technology

View shared research outputs
Top Co-Authors

Avatar

Vendula Hrubá

Brno University of Technology

View shared research outputs
Top Co-Authors

Avatar

Hana Pluháčková

Brno University of Technology

View shared research outputs
Top Co-Authors

Avatar

Jan Fiedor

Brno University of Technology

View shared research outputs
Top Co-Authors

Avatar

Shmuel Ur

Brno University of Technology

View shared research outputs
Top Co-Authors

Avatar

S. Ur

Brno University of Technology

View shared research outputs
Top Co-Authors

Avatar

Milan Češka

Brno University of Technology

View shared research outputs
Top Co-Authors

Avatar

Shmuel Ur

Brno University of Technology

View shared research outputs
Top Co-Authors

Avatar

V. Dudka

Brno University of Technology

View shared research outputs
Researchain Logo
Decentralizing Knowledge