# Why Use Modality?

Modality is a toolset for discovering and troubleshooting risk in connected embedded systems.

Modality's automated experimentation tools do more than reduce testing labor: it accelerates troubleshooting, validation, and analysis. Thanks to the novel way it observes systems, Modality provides precise insight into what is happening and why. Finally, Modality makes system specifications executable, so developers and test engineers can take direct action from each other's work.

# Example Use Cases

  • Developers use Modality probes to illuminate their entire system and reduce the time spent refactoring for testability.

  • Test engineers use Modality queries to verify hundreds of system requirements through a simple command line interface.

  • Developers use test scenarios generated by Modality to discover counterintuitive systemic issues that commonly escape human-designed tests.

  • Test engineers use Modality mutators to replicate hazardous test conditions in actual systems at runtime.

  • Developers use Modality to identify the differences between a simulated system and the real deployment of that system.

  • Developers use Modality to isolate the cause of bugs much faster than traditional methods.

# What Does Modality Do?

Modality automates experiments to find conditions that would cause unexpected incidents. Modality fits into component software, captures exact system behavior, and alters behavior at runtime. Modality generates queryable data that engineers can use to analyze their systems.

A diagram of Modality's process, introducing mutations into your system, observing many conditions, and returning sophisticated analysis

# Where Does Modality Fit?

# Modality embeds into your system

Modality's lightweight SDK is inserted into embedded systems, alongside existing testing and debugging tools. It's designed to support everything from bare-metal microcontrollers to high-performance computing nodes. If you don't see your system here, reach out! It's easy for us to add support. (opens new window)

Language Bindings
C
C++
Rust
Platform Architectures
ARM Cortex-M, -A, -R
Intel IA32, IA64
PowerPC
RISC-V

# Engineers use Modality wherever they work

Modality's user-facing tools run on Windows and Linux, and on MacOS through a VM.

# Modality integrates with your development ecosystem

Modality is compatible with the tools you already use. Both developers and TestOps can easily integrate Modality into their current workflows.

# Where Can I Get Modality?

Download a trial version of Modality here. (opens new window)

If you'd like to start a discussion or schedule a demo, contact us. (opens new window)

# How Do I Use Modality?

  1. Install Modality.

  2. Get started with the fundamentals of observation and analysis.

  3. Make full use of Modality's great power and flexibility:

    1. How to Find Undiscovered Bugs
    2. How to Investigate the Cause of A Bug
    3. How to Reproduce a Bug
    4. How to Validate System Requirements