R-TF-012-035: Software Test Report
Document Information
| Field | Value |
|---|---|
| Product / System | Legit.Health Plus |
| Release version | 1.1.0.0 |
| Commit SHA | 5f8549e02f3f362db8930906cf6dfdedf232119a |
| Test management system | TestRail — Project “Medical Device”, Suite “Master” |
| Prepared by | Gerardo Fernández Moreno |
| Date | 2026-01-19 |
| Reviewed/Approved by | Alejandro Carmena |
| Review/Approval date | 2026-01-19 |
Executive Summary
This report summarizes the verification activities performed for Legit.Health Plus version 1.1.0.0. The verification campaign confirmed that all software requirements have been met and the system is ready for clinical production.
- Verification Status: 100% Passed. All test cases in the verification and commissioning suites reached "Passed" status.
- Deviations: Zero (0) deviations identified during commissioning.
- Standards Compliance: Verification was conducted according to ISO 62304 and ISO 82304-1.
Test Environment and Levels
Verification was performed across the following levels as defined in the Software Test Plan (R-TF-012-033):
| Level | Environment | Focus |
|---|---|---|
| Unit Testing | Development | Low-level logic verification of software units. |
| Integration Testing | Development | Interface verification between internal services. |
| System Verification | Staging/QA | Requirements-based functional, clinical, and security verification. |
| Commissioning | Production | Operational readiness and "as-installed" verification. |
Preproduction Verification Environment Specification
For the AI Models Integration Verification (Run R18), the testing was conducted using a decoupled Client-Server architecture. The explicit environment specifications used to generate the test results are as follows:
- System Under Test (Preproduction Cloud Infrastructure)
- Domain:
md-prototype.legit.health - Compute Instance: AWS EC2
g6.8xlarge(NVIDIA L4 Tensor Core GPUs, 32 vCPUs, 130 GiB RAM). - Storage: 2500 GB EBS Volume.
- Data Persistence: Amazon DynamoDB utilizing 4 dedicated tables (
legit_health_plus_api_gateway_users,legit_health_plus_api_gateway_organizations,legit_health_plus_api_gateway_lockouts,legit_health_plus_api_gateway_calls). - Configuration: Environment variables matching the Production baseline.
- Container Runtime: Docker, orchestrating the
api-gatewayand 58 specific expert AI models (e.g.,condition-classifier:1.0.0,erythema-classifier:1.0.0). - Test Dataset: Immutable image dataset snapshot stored at
s3://legit-health-plus/software-tests/v1.1.0.0/integration-verification-dataset/to ensure absolute reproducibility.
- Test Execution Environment (Local Client)
- Hardware: MacBook Pro (Apple Silicon M1).
- Operating System: macOS 26.2
- Runtime: Python 3.10 utilizing the
requestslibrary. - Test Software: Custom integration script (
Legit-Health/medical-device-integration-verification-tester, Commit SHA:a9b3209cafa65c0ac176d8c9e141657733786c5a) executing over HTTPS.
Detailed Results: Development Verification
Regulatory objective: Confirm that the software units and internal integrations perform as specified prior to system-level testing (ISO 62304 §5.5, §5.6).
Test artifacts are organized per component, with each test run identified by timestamp and git commit hash for full traceability. Evidence includes JUnit XML test reports, coverage reports (XML, JSON, HTML), and metadata files recording the test environment.
Software Unit Verification (Unit Testing)
- Result: Passed.
- Evidence: s3://legit-health-plus/software-tests/v1.1.0.0/01_development_verification/unit_tests/
| Component | Status | Tests | Failed | Line Coverage | Duration |
|---|---|---|---|---|---|
| api_gateway | Passed | 732 | 0 | 94.5% | 4.7s |
| control_plane | Passed | 83 | 0 | 98.0% | 1.8s |
| report_builder | Passed | 845 | 0 | 95.7% | 2.1s |
| orchestrator | Passed | 255 | 0 | 97.5% | 1.0s |
| condition_classifier | Passed | 818 | 0 | 90.6% | 11.6s |
| essentials | Passed | 216 | 0 | 86.6% | 2.4s |
| expert_core | Passed | 474 | 0 | 78.7% | 1.3s |
| Total | 3,423 | 0 | 24.9s |
Each component directory contains:
test_results/junit.xml— Test case enumeration and pass/fail statuscoverage/— Line and branch coverage reports (XML, JSON, HTML)metadata.json— Version, commit SHA, timestamp, and environment details
Software Integration Verification (Integration Testing)
- Result: Passed.
- Evidence: s3://legit-health-plus/software-tests/v1.1.0.0/01_development_verification/integration_tests/
| Component | Status | Tests | Failed | Duration |
|---|---|---|---|---|
| api_gateway | Passed | 358 | 0 | 27.4s |
| control_plane | Passed | 83 | 0 | 3.5s |
| report_builder | Passed | 138 | 0 | 1.7s |
| orchestrator | Passed | 106 | 0 | 1.4s |
| condition_classifier | Passed | 211 | 0 | 7.1s |
| expert_core | Passed | 226 | 0 | 4.1s |
| Total | 1,122 | 0 | 45.2s |
Each component directory contains:
test_results/junit.xml— Test case enumeration and pass/fail statusmetadata.json— Version, commit SHA, timestamp, and environment details
Detailed Results: System Verification
This section contains the results of the requirements verification performed in the controlled Staging environment.
| Test Case Id | Test Case Title | Test Id | Test URL | Status |
|---|---|---|---|---|
| C50 | Verify the API service accepts incoming HTTP requests on the designated network port | T105 | View | ✅ |
| C62 | Verify API returns 200 HTTP status codes for successful requests | T106 | View | ✅ |
| C68 | Verify API processes JSON requests and returns JSON responses with correct Content-Type headers | T107 | View | ✅ |
| C77 | Verify successful user authentication and token generation via the POST /auth/login endpoint | T109 | View | ✅ |
| C73 | Verify retrieval and filtering of clinical signs data via /clinical/severity-experts endpoint | T108 | View | ✅ |
| C106 | Verify API endpoints are accessible via URL paths prefixed with the major and minor version identifier | T110 | View | ✅ |
| C110 | Verify the API returns HTTP 413 when the request body exceeds the configured maximum size | T111 | View | ✅ |
| C124 | Verify POST /clinical/severity-assessment returns quantified results for valid image and sign list | T112 | View | ✅ |
| C128 | Verify the diagnosis-support endpoint accepts valid images and returns diagnostic analysis | T113 | View | ✅ |
| C162 | Verify simultaneous availability and processing of requests across distinct API versions | T114 | View | ✅ |
| C330 | Verify API rejects malformed inputs with standardized 422 Unprocessable Entity responses | T115 | View | ✅ |
| C331 | Verify API returns sanitized error responses with appropriate HTTP status codes and no internal details | T116 | View | ✅ |
| C454 | Verify API returns 401 HTTP status codes for wrong login requests | T272 | View | ✅ |
| C455 | Verify API returns 422 HTTP status code when invalid data is submitted | T273 | View | ✅ |
| C456 | Verification of controlled 503 response and graceful degradation during downstream service failure. | T300 | View | ✅ |
| C169 | Verify health check endpoint returns unhealthy when some service is unavailable | T121 | View | ✅ |
| C46 | Verify the public health endpoint returns HTTP 200 and status OK when operational | T118 | View | ✅ |
| C66 | Verify retrieval of mandatory legal information, UDI, and regulatory metadata via API | T119 | View | ✅ |
| C543 | Verify that the eIFU is reachable, accessible and navigable via the link provided on the electronic label | T384 | View | ✅ |
| C159 | Verify availability of OpenAPI specification and interactive documentation endpoints | T120 | View | ✅ |
| C255 | Verify API returns aggregated ICD probability distribution with structured code details in studyAggregate array | T122 | View | ✅ |
| C256 | Verify response includes per-image ICD probabilities and heat maps for the top five categories | T123 | View | ✅ |
| C258 | Verify response includes normalized entropy score between 0 and 1 in findings | T125 | View | ✅ |
| C260 | Verify report response includes highPriorityReferral score within riskMetrics object | T127 | View | ✅ |
| C261 | Verify report response includes malignantConditionProbability score within riskMetrics object | T128 | View | ✅ |
| C262 | Verify report response includes pigmentedLesion score within riskMetrics object | T129 | View | ✅ |
| C263 | Verify report response includes anyConditionProbability score within riskMetrics object | T130 | View | ✅ |
| C264 | Verify report response includes urgentReferral score within riskMetrics object | T131 | View | ✅ |
| C265 | Verify diagnosis workflow returns ranked ICD-11 codes, binary indicators, and explainability maps for valid images | T132 | View | ✅ |
| C266 | Verify epithelial tissue classification returns right presence prediction and confidence score | T133 | View | ✅ |
| C267 | Verify API returns Hurley stage and inflammatory status with associated probabilities for valid image input | T134 | View | ✅ |
| C268 | Verify tissue wound bed necrotic classification returns right presence prediction and confidence score | T135 | View | ✅ |
| C269 | Verify pustule classification returns right intensity and confidence | T136 | View | ✅ |
| C270 | Verify inflammatory nodular lesion detector return correct counts and bounding boxes for drainning tunnels | T137 | View | ✅ |
| C271 | Verify wound borders delimited classification returns right presence prediction and confidence score | T138 | View | ✅ |
| C272 | Verify wound exudation serous classification returns right presence prediction and confidence score | T139 | View | ✅ |
| C274 | Verify wound exudation purulent classification returns right presence prediction and confidence score | T141 | View | ✅ |
| C275 | Verify wound maceration segmentation analysis returns segmentation masks and the right percentage of surface affected | T142 | View | ✅ |
| C276 | Verify erythema classification returns right intensity and confidence | T143 | View | ✅ |
| C277 | Verify crusting classification returns right intensity and confidence | T144 | View | ✅ |
| C278 | Verify thickened wound borders classification returns right presence prediction and confidence score | T145 | View | ✅ |
| C279 | Verify induration classification returns right intensity and confidence | T146 | View | ✅ |
| C280 | Verify hair loss segmentation analysis returns segmentation masks and the right percentage of surface affected | T147 | View | ✅ |
| C281 | Verify wound perilesional erythema classification returns right presence prediction and confidence score | T148 | View | ✅ |
| C282 | Verify wound stage classification returns right score and confidence metrics from a valid wound image | T149 | View |