Statische Codeanalyse für komplexe Systeme
Visao, die statische Analyse in Midair, findet Fehler im Code vor der Ausführung.
Visao prüft Quellcode, Ausführungspfade und Projektregeln, bevor die Software läuft.
Warum statische Codeanalyse wichtig ist
Manche Fehler sind billiger zu finden, solange die Software noch nicht auf Geräten oder in verteilten Umgebungen läuft. Die statische Analyse prüft den Quellcode, ohne ihn auszuführen. So findet sie Fehler im Code, bevor die Tests beginnen.
In Midair übernimmt Visao diesen Schritt vor der Ausführung. Seine Befunde bleiben mit späteren Testläufen und Laufzeitdaten verbunden.
Was ist statische Codeanalyse?
Statische Codeanalyse prüft den Quellcode, ohne das Programm auszuführen. Sie findet mögliche Fehler, unsicheres Verhalten und Verstöße gegen festgelegte Regeln, bevor die Tests zur Laufzeit beginnen.
Die statische Analyse fragt, was sich vor der Ausführung im Code finden lässt. Ein Test fragt, was passiert, wenn die Software wirklich läuft.
Den Unterschied mit Beispielen erklärt unser Artikel Static and dynamic code analysis (auf Englisch).
Was eine statische Analyse leisten muss
Vier Probleme entscheiden, ob ein Analysewerkzeug an einem echten System nützt.
Fehler, die der Compiler nicht meldet
Code lässt sich ohne Fehler übersetzen und kann trotzdem Verhalten enthalten, das man untersuchen sollte.
Projektspezifische Fehlerregeln
Allgemeine Analysewerkzeuge kennen nicht jede Vorgabe, die für ein bestimmtes System zählt.
Komplexe Ausführungspfade
Ein Fehler kann von einem bestimmten Pfad durch den Code abhängen. Ein einfacher Mustervergleich findet ihn dann nicht.
Statische Befunde ohne Bezug zu späteren Tests
Ein Befund nützt weniger, wenn er sich nicht mit dem Testlauf oder dem Laufzeitverhalten verbinden lässt, das ihn bestätigt.
Wie Visao den Code analysiert
Visao kombiniert mehrere Analyseverfahren und untersucht den Code vor der Ausführung. Jeder Befund nennt die Stelle im Quellcode und die Regel, um die es geht.
Model Checking
Untersucht die Zustände, die das Programm erreichen kann, und prüft, ob eine Eigenschaft in einem davon verletzt wird.
Abstrakte Interpretation
Verfolgt, welche Werte eine Variable annehmen kann. Das grenzt die Suche ein und findet manche Fehler direkt.
SMT-basierte Prüfung
Entscheidet, ob alle Bedingungen, die zu einem Fehler führen, gleichzeitig gelten können.
Projektspezifische Regeln
Prüfungen für die Vorgaben einer Codebasis, die neben den eingebauten Regeln laufen.
Beispiele für Befunde
Unsicherer Speicherzugriff
Zum Beispiel ein Puffer ohne Abschlusszeichen, der danach über sein Ende hinaus gelesen wird.
Ganzzahlüberlauf
Zum Beispiel eine Verschiebung, die nach einer Integer-Promotion in das Vorzeichenbit läuft.
Verstöße gegen Projektregeln
Alles, was das Team für sein eigenes System als Fehlerbedingung festgelegt hat.
Ein statischer Befund endet nicht im Bericht
Visao läuft vor der Ausführung. Braucht ein Befund eine Prüfung zur Laufzeit, geht dieselbe Untersuchung in Midair weiter. Dort folgen ein Testlauf in TS Factory und Laufzeitdaten aus Delta.
Einsatzbereiche
Embedded-Software und Firmware
Code, der später auf Hardware mit wenig Einblick zur Laufzeit läuft.
Netzwerk- und Systemsoftware
Low-Level- und Infrastrukturcode, dessen Verhalten vom Systemkontext abhängt.
Software mit hohen Security-Anforderungen
Code, in dem unsicheres Verhalten gefunden werden muss, bevor die Untersuchung zur Laufzeit beginnt.
Komplexe C- und C++-Codebasen
Großer, langlebiger Quellcode, in dem sich ein Fehler auf einem selten genutzten Pfad verstecken kann.
Projekte mit domänenspezifischen Regeln
Allgemeine Analysewerkzeuge erfassen hier nicht jede Fehlerbedingung, die zählt.
Funktionen
Statische Analyse vor der Ausführung
Finden Sie Fehler im Code, ohne die Software auszuführen.
Projektspezifische Prüfungen
Wenden Sie Regeln an, die die echten Vorgaben des Projekts abbilden.
Pfadsensitive Analyse
Untersuchen Sie Verhalten, das davon abhängt, auf welchem Weg die Ausführung einen Zustand erreicht.
CI/CD-Integration
Führen Sie die Analyse in Ihren bestehenden Entwicklungsabläufen aus.
Verbundene Nachweise in Midair
Übernehmen Sie relevante Befunde in spätere Tests und in die Untersuchung zur Laufzeit.
Aus unserer Forschung (auf Englisch)
The research behind Visao: how Equid became our static analyzer
Die Veröffentlichung hinter dem Analysewerkzeug: ein sprachunabhängiges Framework. Es soll die Lücke zwischen akademischen Verifikationswerkzeugen und industriellem Code schließen.
Forschung · 2026Static Analysis Tools for Embedded C/C++ (2026)
Ein unabhängiger Vergleich von Analysewerkzeugen für Embedded-C und -C++.
Pilot starten
Starten Sie mit Ihrer eigenen Codebasis. Sehen Sie, wie Visao-Befunde in Midair mit Tests und Laufzeitdaten verbunden sind.
Community
€0
Visao und TS Factory auf einer gemeinsamen Instanz ausführen und die Befunde prüfen.
Am beliebtestenPro
€90pro Monat
Eine eigene Midair-Instanz für das Team, mit Delta, MCP und KI-Auswertung der Ergebnisse.
EmpfohlenBusiness
€990pro Monat
Dazu SBOM- und Schwachstellenanalyse, Team-Kennzahlen und selbst gehostete Instanzen.
Für komplexe UmgebungenEnterprise
Individuell
Midair für große, eingebettete oder regulierte Umgebungen anpassen.
Vergleichen Sie die Tarife auf der Preisseite und wählen Sie einen. Die Preise gelten pro Monat, in Euro.