ML-023: Serving Integration & End-To-End Testing
- Dominant language
- Python
- Stars
- 1
- Forks
- 0
- Avg merge
- 6m
- Merged PRs (30d)
- 4
Description
# ML-023 — Serving Integration & End-to-End Testing
## Goal
Validate the complete model-serving workflow from MLflow Model Registry through the serving engine and REST API.
## Description
The final story of Sprint 3 validates that the components developed throughout the sprint work together as a complete serving workflow.
The integration test should simulate the lifecycle of a model being served:
```text
MLflow Model Registry
↓
Registered Model
↓
Model Alias
↓
Model Loading
↓
Serving Engine
↓
FastAPI
↓
POST /predict
↓
Prediction
```
## Tasks
* [ ] Create an isolated MLflow test environment.
* [ ] Register a test model.
* [ ] Create at least two model versions.
* [ ] Assign a lifecycle alias.
* [ ] Start the serving layer.
* [ ] Load the model through the alias.
* [ ] Verify model readiness.
* [ ] Verify model metadata.
* [ ] Send a valid prediction request.
* [ ] Validate the prediction response.
* [ ] Test invalid prediction requests.
* [ ] Test invalid model aliases.
* [ ] Test model-loading failures.
* [ ] Test inference failures.
* [ ] Test the health endpoint.
* [ ] Test the readiness endpoint.
* [ ] Test the model metadata endpoint.
* [ ] Verify request IDs are generated or propagated.
* [ ] Verify prediction latency is captured.
* [ ] Verify model metadata is included in observability output.
* [ ] Run the complete project test suite.
* [ ] Run MyPy.
* [ ] Run Ruff.
* [ ] Update documentation with the complete serving workflow.
## Acceptance Criteria
* [ ] A registered MLflow model can be loaded by alias.
* [ ] The serving application reports the correct readiness state.
* [ ] The API exposes the loaded model metadata.
* [ ] A valid HTTP prediction request produces a valid prediction.
* [ ] Invalid requests are rejected.
* [ ] Invalid model aliases are handled correctly.
* [ ] Model loading failures are handled correctly.
* [ ] Inference failures are handled correctly.
* [ ] Health and readiness endpoints work correctly.
* [ ] Serving observability is present.
* [ ] Integration tests run against an isolated environment.
* [ ] The complete test suite passes.
* [ ] MyPy passes without errors.
* [ ] Ruff passes without errors.
## Definition of Done
* [ ] End-to-end serving workflow implemented.
* [ ] Integration tests added and passing.
* [ ] Complete test suite passes.
* [ ] MyPy passes.
* [ ] Ruff passes.
* [ ] Documentation updated.
* [ ] Sprint 3 serving workflow verified.
* [ ] Changes committed.
Contributor guide
Research direction
Start by locating the serving layer, its FastAPI health, readiness, metadata, and prediction endpoints, and any existing MLflow or model-loading tests. Set up an isolated MLflow environment and trace the model-alias path through loading and inference. Done means the end-to-end workflow and failure cases are covered, checks pass, observability is verified, and the serving documentation is updated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- fastapi, python
- Domain
- api, machine-learning, observability, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100