Files
ai-training/_docs/02_tasks/done/AZ-154_test_augmentation_nonfunc.md
T
Oleksandr Bezdieniezhnykh cbf370c765 Refactor task management structure and update documentation
- Changed the directory structure for task specifications to include a dedicated `todo/` folder within `_docs/02_tasks/` for tasks ready for implementation.
- Updated references in various skills and documentation to reflect the new task lifecycle, including changes in the `implementer` and `decompose` skills.
- Enhanced the README and flow documentation to clarify the new task organization and its implications for the implementation process.

These updates improve task management clarity and streamline the implementation workflow.
2026-03-28 01:17:45 +02:00

2.3 KiB
Raw Blame History

Augmentation Performance, Resilience & Resource Tests

Task: AZ-154_test_augmentation_nonfunc Name: Augmentation Non-Functional Tests Description: Implement performance, resilience, and resource limit tests for augmentation — throughput, parallel speedup, error handling, output bounds Complexity: 2 points Dependencies: AZ-152_test_infrastructure Component: Blackbox Tests Jira: AZ-154 Epic: AZ-151

Problem

Augmentation must perform within time thresholds, handle corrupted/missing inputs gracefully, and respect output count bounds.

Outcome

  • 6 passing pytest tests across performance and resilience categories
  • Performance tests in tests/performance/test_augmentation_perf.py
  • Resilience and resource limit tests in tests/test_augmentation.py with markers

Scope

Included

  • PT-AUG-01: Augmentation throughput (10 images ≤ 60s)
  • PT-AUG-02: Parallel augmentation speedup (≥ 1.5× faster)
  • RT-AUG-01: Handles corrupted image gracefully
  • RT-AUG-02: Handles missing label file
  • RT-AUG-03: Transform failure produces fewer variants (no crash)
  • RL-AUG-01: Output count bounded to exactly 8

Excluded

  • Blackbox functional tests (separate task 02)

Acceptance Criteria

AC-1: Throughput Given 10 images from fixture dataset When augment_annotations() runs Then completes within 60 seconds

AC-2: Parallel speedup Given 10 images from fixture dataset When run with ThreadPoolExecutor vs sequential Then parallel is ≥ 1.5× faster

AC-3: Corrupted image Given 1 valid + 1 corrupted image (truncated JPEG) When augment_annotations() runs Then valid image produces 8 outputs, corrupted skipped, no crash

AC-4: Missing label Given 1 image with no matching label file When augment_annotation() runs on it Then exception caught per-thread, pipeline continues

AC-5: Transform failure Given 1 image + label with extremely narrow bbox When augment_inner() runs Then 1-8 ImageLabel objects returned, no crash

AC-6: Output count bounded Given 1 image When augment_inner() runs Then exactly 8 outputs returned (never more)

Constraints

  • Performance tests require pytest markers: @pytest.mark.performance
  • Resilience tests marked: @pytest.mark.resilience
  • Resource limit tests marked: @pytest.mark.resource_limit
  • Performance thresholds are generous (CPU-bound, no GPU requirement)