# Multi-Level Automated Testing System Overview ## Document Overview This testing system aims to build a complete, efficient, and well-structured quality assurance framework for the development, integration, and release of model services. It draws on the concept of the test pyramid from modern software engineering, progressively expanding testing activities from basic code logic verification to complex end-to-end (E2E) functionality, performance, accuracy, and even long-term stability validation. Through five levels (L1-L5) and common (Common) specifications, the system clarifies the testing objectives, scope, execution frequency, and required resources for different development stages (e.g., each commit, PR merge, daily build, pre-release). This ensures that models meet high standards for functionality, performance, and reliability across various deployment scenarios (online serving and offline inference).
| Level | Scope & Focus | Model Coverage Strategy | Module Strategy | Tags | Time Cost | Test Dir | Doc | Frequency | Hardware |
|---|---|---|---|---|---|---|---|---|---|
| Common | Contribution Guideline & PR checklist | / | / | / | / | / | PR Checklist | / | / |
| CI Failure Description | / | / | / | / | / | CI Failures | / | / | |
| L1 (Unit & Logic) |
Unit tests for components like entrypoints, models | / | / | core_model and cpu |
<15min |
tests/{component}/… mirroring vllm_omni/{component}/(e.g. tests/diffusion/, tests/engine/, tests/entrypoints/)Do not add new top-level tests/ dirs unrelated to a component.
|
L1 & L2 Section 1 L1&L2: Purpose, Test Content, Directory Location, Example |
PR with ready label (also can run locally) | CPU |
| L2 (E2E across models & GPU-required UT) |
Online (basic deployment scenarios): dummy, normal inference function (output format, stream), some instance startup UT |
Key models + online basic scenarios; request success, non-empty output, format match (no Whisper/accuracy) | Key features and modules that require launching instances (prefer random weights) | core_model and hardware_test(H100, L4, etc.) and omni/tts/diffusion |
Model E2E:tests/e2e/online_serving/test_{model}.pytests/e2e/offline_inference/test_{model}.pyFeature integration: tests/e2e/features/<feature>/(e.g. fullduplex/, custom_pipeline/, rlhf_test/)Component / interface Test (GPU): tests/{component}/…, tests/entrypoints/…
|
L1 & L2 L1&L2: Purpose, Test Content, Directory Location, Example |
PR with ready label | GPU | |
| L3 (Important Perf & Integration & Accuracy) |
Online & Offline (multiple deployment scenarios): real model, normal inference function, normal accuracy |
Key models + key online/offline scenarios; real weights, Whisper/similarity, preset voice gender, basic accuracy | Key features and modules that require launching instances (using real weights) | advanced_model and hardware_test(H100, L4, etc.) and omni/tts/diffusion |
<30min |
Model E2E:tests/e2e/online_serving/test_{model}.pytests/e2e/offline_inference/test_{model}.pytests/e2e/accuracy/Feature integration: tests/e2e/features/<feature>/Component / interface Test: tests/{component}/…, tests/entrypoints/…
|
L3 L3: Purpose, Test Content, Directory Location, Example |
PR Merged (Also run L1&L2 Tests) | GPU |
| L4 (Perf & Integration & Accuracy) |
Online: full functional scenarios + performance test + doc test + accuracy test | Key models: function, performance, accuracy, and doc testing | Other features and modules that require launching instances (using real weights) | full_model and hardware_test(H100, L4, etc.) and omni/tts/diffusion |
<3 hour |
Model E2E:tests/e2e/online_serving/test_{model}_expansion.pytests/e2e/offline_inference/test_{model}_expansion.pytests/e2e/accuracy/test_{model}.pyFeature integration: tests/e2e/features/<feature>/Component / interface Test: tests/{component}/…, tests/entrypoints/…Performance: tests/dfx/perf/tests/Doc examples: tests/examples/online_serving/, tests/examples/offline_inference/
|
L4 L4: Purpose, Test Content, Directory Location, Example |
Nightly | GPU |
| L5 (Stability & Reliability & selected Perf) |
Online: long-term stability + reliability; coverage test | Long-term stability and reliability testing for key models Non-critical scenario performance and accuracy testing for key models Other models: function and doc testing |
/ | slow and hardware_test(H100, L4, etc.) and omni/tts/diffusion |
Depends on reality |
Stability:tests/dfx/stability/tests/Reliability: tests/dfx/reliability/test_reliability_{model}.py
|
L5 L5: Purpose, Test Content, Directory Location, Example |
Weekly / Days before Release | GPU |