Everything about Runtime verification
Extraction of information from a running system to verify certain properties
Runtime verification is a computing system analysis and execution approach based on extracting information from a running system and using it to detect and possibly react to observed behaviors satisfying or violating certain properties. Some very particular properties, such as datarace and deadlock freedom, are typically desired to be satisfied by all systems and may be best implemented algorithmically. Other properties can be more conveniently captured as formal specifications. Runtime verification specifications are typically expressed in trace predicate formalisms, such as finite-state machines, regular expressions, context-free patterns, linear temporal logics, etc., or extensions of these. This allows for a less ad-hoc approach than normal testing. However, any mechanism for monitoring an executing system is considered runtime verification, including verifying against test oracles and reference implementations. When formal requirements specifications are provided, monitors are synthesized from them and infused within the system by means of instrumentation. Runtime verification can be used for many purposes, such as security or safety policy monitoring, debugging, testing, verification, validation, profiling, fault protection, behavior modification, etc. Runtime verification avoids the complexity of traditional formal verification techniques, such as model checking and theorem proving, by analyzing only one or a few execution traces and by working directly with the actual system, thus scaling up relatively well and giving more confidence in the results of the analysis, at the expense of less coverage. Moreover, through its reflective capabilities runtime verification can be made an integral part of the target system, monitoring and guiding its execution during deployment. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Runtime verificationA 5-minute orientation
- Skim a recent paper: Runtime Verification and Field-Based Testing for ROS-Based Robotic SystemsInfluential work since 2022
- Pick up a classic book: Intelligent Information and Database SystemsThe most-reprinted book on the subject
- Read the landmark paper: A brief account of runtime verificationCited 741 times
- Go sideways: Grigore RoșuA closely related topic
- Go sideways: Program analysisA closely related topic
📖 Definitions
No dictionary entry for this exact phrase.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
A brief account of runtime verification
Runtime Verification for LTL and TLTL
Comparing LTL Semantics for Runtime Verification
Rewriting-Based Techniques for Runtime Verification
Rule-based runtime verification revisited
A taxonomy for classifying runtime verification tools
Combining test case generation and runtime verification
Runtime verification and monitoring of embedded systems
🆕 Influential since 2022
Runtime Verification and Field-Based Testing for ROS-Based Robotic Systems
Distributed runtime verification by past-CTL and the field calculus
Runtime Verification for Anomaly Detection of Robotic Systems Security
Edge-Based Runtime Verification for the Internet of Things
Enforcing Resilience in Cyber-physical Systems via Equilibrium Verification at Runtime
📚 Books worth reading
Intelligent Information and Database SystemsAli Selamat · 2013
Formal Aspects of Component SoftwareFarhad Arbab · 2012
Postsilicon And Runtime Verification For Modern ProcessorsIlya Wagner · 2010
Runtime verificationRV 2008 (2008 Budapest, Hungary) · 2008- 📕Runtime VerificationAxel Legay, Saddek Bensalem · 2009
Specification and verification of declarative open interaction modelsMarco Montali · 2010
Assurances for Self-Adaptive SystemsJavier Cámara · 2013
Research and Development in Intelligent Systems XXIXMax Bramer · 2012
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Grigore Roșu Grigore Roșu (born December 12, 1971) is a computer science professor at the University of Illinois at Urbana-Champaign and a researcher in the Information…
- Program analysis In computer science, program analysis is the process of analyzing the behavior of computer programs regarding a property such as correctness, robustness…
- Runtime predictive analysis Runtime predictive analysis (or predictive analysis) is a runtime verification technique in computer science for detecting property violations in program…
- Model checking In computer science, model checking or property checking is a method for checking whether a finite-state model of a system meets a given specification…
- Automatic parallelization Automatic parallelization, also auto-parallelization or autoparallelization, is a compiler optimization in which a compiler or other software tool transforms…
- Formal verification In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of a system with respect to a…
- Dynamic program analysis Dynamic program analysis is the act of analyzing software that involves executing a program – as opposed to static program analysis, which does not execute…
- Formal methods In computer science, formal methods are mathematically rigorous techniques for the specification, development, analysis, and verification of software and…