Maria Sokolova

dblp:259/5164 · DBLP profile ↗
← Back
2ranked-venue papers
0as first author
1since 2021 · last 2023
—ORCID · unresolved

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

Systems, architecture and hardware · 1Software engineering, systems software and programming languages · 1 · 1 since 2021Theory of computation · 1 · 1 since 2021

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 · 50%

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

TopicWeightPapersLastEvidence papers
Concurrent programming
concurrency bugs
1.122023
Lincheck: A Practical Framework for Testing Concurrent Data Structures on JVM · CAV (1) 2023
Testing concurrency on the JVM with lincheck · PPoPP 2020
Software testing
concurrency testing
1.122023
Lincheck: A Practical Framework for Testing Concurrent Data Structures on JVM · CAV (1) 2023
Testing concurrency on the JVM with lincheck · PPoPP 2020
Software testing › concurrency testing
concurrent data structure testing
0.712023
Lincheck: A Practical Framework for Testing Concurrent Data Structures on JVM · CAV (1) 2023
Concurrent programming › concurrency bug detection
data race detection
0.712023
Lincheck: A Practical Framework for Testing Concurrent Data Structures on JVM · CAV (1) 2023

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

stress testing · 0.7bounded model checking · 0.7model checking · 0.4linearizability checking · 0.4
YearPublicationVenuePosition
2023 Lincheck: A Practical Framework for Testing Concurrent Data Structures on JVM
abstract
Abstract This paper presents , a new practical and user-friendly framework for testing concurrent algorithms on the Java Virtual Machine (JVM). provides a simple and declarative way to write concurrent tests: instead of describing how to perform the test, users specify what to test by declaring all the operations to examine; the framework automatically handles the rest. As a result, tests written with are concise and easy to understand. The framework automatically generates a set of concurrent scenarios, examines them using stress-testing or bounded model checking, and verifies that the results of each invocation are correct. Notably, if an error is detected via model checking, provides an easy-to-follow trace to reproduce it, significantly simplifying the bug investigation. To the best of our knowledge, is the first production-ready tool on the JVM that offers such a simple way of writing concurrent tests, without requiring special skills or expertise. We successfully integrated in the development process of several large projects, such as Kotlin Coroutines, and identified new bugs in popular concurrency libraries, such as a race in Java’s standard and a liveliness bug in Java’s framework, which is used in most of the synchronization primitives. We believe that can significantly improve the quality and productivity of concurrent algorithms research and development and become the state-of-the-art tool for checking their correctness.
Nikita Koval, Maria Sokolova, Dmitry Tsitelov, Dan Alistarh
CAV (1)3
2020 Testing concurrency on the JVM with lincheck
abstract
Concurrent programming can be notoriously complex and error-prone. Programming bugs can arise from a variety of sources, such as operation re-reordering, or incomplete understanding of the memory model. A variety of formal and model checking methods have been developed to address this fundamental difficulty. While technically interesting, existing academic methods are still hard to apply to the large codebases typical of industrial deployments, which limits their practical impact.
Nikita Koval, Maria Sokolova, Dan Alistarh, Dmitry Tsitelov
PPoPP2