Die Fehler, an die Ihre Tests nicht gedacht haben, vom Request bis zur Datenbank verfolgt.
SmartScan verfolgt jeden Einstiegspunkt - eine Web-Action, einen Job, einen Message-Consumer, einen Screen in einer App - über Services und Handler bis zur Datenbank oder zum ausgehenden Request und markiert, was unterwegs brechen kann: eine Abfrage, die leer zurückkommen kann, zwei Schreibvorgänge, die halb gelingen können, eine Spalte, die die Eingabe überlaufen kann. Jedes Risiko kommt mit der Kette, die dorthin führt.
Bildschirme aus einer laufenden Installation
Wonach es sucht
Vier Arten von Risiko, jede auf einem echten Pfad durch Ihren Code gefunden - nicht an einem Muster, das jemand aufgeschrieben hat.
Datensatz nicht gefunden
Eine Abfrage mit Request-Daten kann leer zurückkommen, und der Code nutzt das Ergebnis ungeprüft: 500 statt 404 oder eine irreführende Meldung.
Halber Schreibvorgang
Zwei getrennte Commits in einem Ablauf ohne Transaktion darum: Scheitert der zweite, bleibt der erste geschrieben.
Vertragslücken
Der Request kann mehr enthalten, als die Spalte fasst, eine Pflichtspalte wird unterwegs nicht geprüft, oder eine eindeutige Spalte wird ohne Eindeutigkeitsprüfung geschrieben.
Frontend und Mobil
Ein Request, dessen Fehler niemand behandelt, ein Fehler, der als Erfolg gilt, eine Antwort, die ungeprüft genutzt wird: Der Screen stürzt ab oder bleibt stumm.
Was SmartScan in einer einzigen Anfrage sieht
Eine Bestellung entsteht über sechs Stationen. Jede ist ein echter Aufruf im Code; SmartScan folgt ihnen und hält dort an, wo etwas brechen kann.
- Einstiegspunkt
POST /api/ordersOrdersController.Create - Mediator-Anfrage
mediator.Send(CreateOrderCommand) - Handler
CreateOrderHandler.Handle - Interface zur Implementierung
ICustomerRepository.FindAsyncCustomerRepository !Nicht gefunden: Das Ergebnis wird ohne Prüfung verwendet - Schreibvorgänge
SaveChangesAsync() ×2!Teilweises Schreiben: zwei Commits, keine Transaktion - Datenbank
orders · order_lines
So funktioniert es
Die Einheit ist eine Kette: vom Eintritt eines Requests bis dorthin, wo er Daten berührt.
- 01
Bei jedem Einstiegspunkt beginnen
Web-Actions, geplante Jobs und Message-Consumer; in Frontends und Apps Events, Effects, Routen und Screens.
- 02
Der Kette folgen
Vom Interface zur Implementierung, Overrides, Mediator-Requests zu ihren Handlern - bis zum ORM oder HTTP-Aufruf.
- 03
Abgesichertes verwerfen
Eine Prüfung, eine Abfrage, die eine Ausnahme wirft, ein Validator mit der richtigen Grenze - auf dem eigenen Pfad des Schreibvorgangs - zählt. Eine Kette ohne Risiko wird nicht gemeldet.
- 04
Den Pfad zeigen
Jedes Risiko listet seine Schritte mit Datei und Zeile, vom Einstiegspunkt bis zur Spalte.
Eine Warnung, kein Gate
SmartScan ist kein Regelwerk: Es senkt nie einen Score und lässt nie eine Pipeline scheitern. Jedes Risiko lässt sich wie jeder Befund einzeln schließen. Es wird pro Projekt eingeschaltet, ist standardmäßig aus und läuft nur bei vollständigen Scans - Merge-Request-Prüfungen bleiben schnell.
In allen neun Collector-Sprachen
Eine Regel und ein SmartScan-Risiko sind nicht dasselbe
Beide erscheinen im selben Panel, beantworten aber andere Fragen und verhalten sich anders.
| Regelbefund | SmartScan-Risiko | |
|---|---|---|
| Wonach es sucht | Ein bekanntes, festgeschriebenes Muster | Einen Pfad durch Ihren eigenen Code |
| Score | Senkt ihn, nach Schweregrad gewichtet | Berührt ihn nie |
| Pipeline | Kann sie per Fail-on-Schwelle stoppen | Stoppt sie nie |
| Wann es läuft | Merge-Request-Reviews und vollständige Scans | Nur vollständige Scans, pro Projekt aktiviert |
| Was Sie bekommen | Datei, Zeile und die Begründung der Regel | Die ganze Kette, Schritt für Schritt, mit Datei und Zeile |
Fragen zu SmartScan
Ist das ein weiteres Regelwerk?
Wie werden Fehlalarme vermieden?
Verlangsamt es Merge-Request-Prüfungen?
Welche Sprachen und Frameworks?
So sieht es im Produkt aus
Alle Screenshots
Finden Sie die Fehler, bevor Ihre Nutzer es tun
Schalten Sie SmartScan im PoC für ein Projekt ein; der nächste vollständige Scan zeigt jede gefährdete Kette.