Systematic AI Testing & Evaluation

SATE AI

A Fault Injection Framework for On-Device AI Models in Flutter

Catch failure scenarios, resource exhaustion, and model degradation before your users do.

Physical App Interface Preview

SATE AI Mobile App Interface

Pass Demo (TFLite / Mock)

SATE AI Passing Demo

Fault Detection (ONNX Failure)

SATE AI Fault Detection Demo
11 Fault Injectors
8 Model Adapters
456+ Passing Tests
160/160 Pub.dev Score

Framework Capabilities

End-to-end fault injection, benchmarking, scheduling, and regression tracking.

Core Engine

11 Fault Injectors

Simulate RAM/VRAM pressure, malformed inputs, quantization drift, thermal throttling, network latency drops, model swaps, and confidence validation.

Runtimes

8 Model Adapters

Out-of-the-box support for Mock, ONNX Runtime, TensorFlow Lite, Fllama (llama.cpp), MediaPipe, Core ML, Google ML Kit, and custom runtimes.

Analytics

SQLite & Golden Baselines

Store historical test reports locally using pure-Dart SQLite (`sqflite_common_ffi`) and compare test runs against golden baselines.

CI/CD

Status Badges & Templates

Generate SVG badges (status, latency, memory, tests) for READMEs and render custom JSON/YAML report templates for team webhooks.

Monitoring

Real-Time SSE Server

Start a real-time SSE monitoring server (`sate_ai serve --port 8080`) to stream live stress test metrics to dashboards.

Reliability

Retry & Flaky Detection

Automatically retry transient failures and identify flaky test steps to maintain high CI signal quality.

Injectors & Adapters Suite

Comprehensive coverage across on-device AI runtimes and failure modes.

11 Fault Injectors

Memory

MemoryPressureInjector

Injects artificial RAM allocation pressure up to limit MB.

Validation

MalformedInputInjector

Feeds empty, oversized (1MB), and binary garbage inputs.

Quantization

QuantizationDriftInjector

Simulates cumulative precision degradation over repeated steps.

Thermal

ThermalThrottleInjector

Simulates mobile device CPU throttling and heat step escalation.

Performance

LatencyInjector

Injects artificial latency delays to test fallback paths.

Fallback

ModelSwapInjector

Swaps model quality dynamically to evaluate alternative runtimes.

Network

NetworkLatencyDropInjector

Simulates network latency drops, timeouts, and disconnections.

Confidence

ConfidenceThresholdInjector

Validates confidence threshold boundaries on predictions.

VRAM

GpuMemoryPressureInjector

Simulates GPU VRAM exhaustion scenarios.

I/O

DataCorruptionInjector

Injects noise, blur, and bit glitches into input payloads.

Version

ModelVersionMismatchInjector

Simulates model schema mismatches and fallback handlers.

8 Model Adapters

Testing

MockAdapter

Pure-Dart mock runtime supporting simulated memory and faults.

Runtime

OnnxAdapter

Backed by `onnxruntime` for cross-platform ONNX models.

Runtime

TFLiteAdapter

Backed by `tflite_flutter` for MobileNet, ResNet, and TFLite.

LLM

FllamaAdapter

Backed by `fllama` (llama.cpp) for Llama, Phi, and Gemma.

Vision

MediaPipeAdapter

Google MediaPipe adapter for computer vision tasks.

iOS

CoreMLAdapter

Apple Core ML adapter for native iOS model runtimes.

ML Kit

GoogleMLKitAdapter

Google ML Kit adapter for on-device Vision/NLP APIs.

Custom

Custom Adapters

Extend `AIModelAdapter` to wrap any custom native engine.

CLI Quick Reference

Execute stress tests, benchmarks, batch jobs, health checks, and history queries from command line.

Basic Stress & Retry
sate_ai --model model.gguf --injectors memoryPressure,malformedInput --retry 3 --flaky-threshold 2
Benchmark Mode & Batch Auto-Detect
sate_ai --model model.gguf --benchmark --benchmark-runs 20
sate_ai --models model1.onnx,model2.tflite,model3.gguf --auto-detect
SQLite Storage & History Query
sate_ai --model model.gguf --db reports.db
sate_ai --db reports.db --db-history all
SVG Status Badges & Custom Templates
sate_ai --model model.gguf --badge badge.svg --badge-type status
sate_ai --model model.gguf --template templates/slack.yaml --output custom_report.json

Reporting, Storage & CI/CD Integration

Export self-contained HTML pages, persist historical records in SQLite, and render status badges.

SQLite History Storage

Pure-Dart SQLite database engine (`ReportDatabase`) for saving and querying test runs across Flutter apps and CLI pipelines.

SVG Status Badges

Generate Shields.io style status, latency, memory, and test ratio SVG badges to embed in project READMEs or CI artifacts.

Custom Templates

Substitute placeholders like `{{ model }}`, `{{ passed_emoji }}`, `{{ memory_mb }}` in custom JSON/YAML templates for Slack/Teams alerts.

SATE AI | PASS stress duration | 120ms peak memory | 145.0MB stress tests | 5/5 passed

VS Code Extension

Run model stress tests directly from your IDE editor window.

SATE AI for Visual Studio Code

Run stress tests with one click from model context menus, compare reports against golden baselines, and monitor real-time test progress directly inside VS Code.

View on VS Code Marketplace

Documentation & Guides

Explore feature guides, API references, and theoretical background.