get to prod tasks
This commit is contained in:
76
tasks/ios-production/18-performance-testing.md
Normal file
76
tasks/ios-production/18-performance-testing.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# 18. Performance Testing (XCTestMetric)
|
||||
|
||||
meta:
|
||||
id: ios-production-18
|
||||
feature: ios-production
|
||||
priority: P2
|
||||
depends_on: []
|
||||
tags: [testing, performance, quality]
|
||||
|
||||
objective:
|
||||
- Implement performance testing using XCTestMetric to ensure consistent 60fps and fast response times
|
||||
|
||||
deliverables:
|
||||
- Performance tests for critical flows
|
||||
- XCTMetric measurements
|
||||
- Baseline performance documentation
|
||||
- Performance regression detection in CI
|
||||
|
||||
steps:
|
||||
1. Set up performance tests:
|
||||
- Create XCTestCase with measure blocks
|
||||
- Use XCTClockMetric for time measurements
|
||||
- Use XCTCPUMetric for CPU usage
|
||||
- Use XCTMemoryMetric for memory usage
|
||||
2. Test critical flows:
|
||||
- App launch time (cold and warm)
|
||||
- Dashboard scroll performance (60fps)
|
||||
- Alert list scroll performance
|
||||
- Service screen transitions
|
||||
- API response time (with mocked data)
|
||||
- Image loading performance
|
||||
3. Establish baselines:
|
||||
- Run tests 10 times to establish baseline
|
||||
- Document expected ranges for each metric
|
||||
- Set performance budgets
|
||||
4. Add regression detection:
|
||||
- Configure XCTest to fail on 10% regression
|
||||
- Add to CI pipeline
|
||||
- Alert on performance degradation
|
||||
5. Test on physical devices:
|
||||
- iPhone SE (2nd gen) — minimum supported device
|
||||
- iPhone 12 — mid-range target
|
||||
- iPhone 15 Pro — high-end target
|
||||
6. Document performance:
|
||||
- Create docs/PERFORMANCE.md
|
||||
- List all measured metrics and baselines
|
||||
- Document optimization techniques used
|
||||
|
||||
tests:
|
||||
- Performance: All metrics within budget
|
||||
- Regression: 10% regression triggers failure
|
||||
- Device: Tests pass on physical devices
|
||||
|
||||
acceptance_criteria:
|
||||
- 10+ performance test cases
|
||||
- App launch time measured and baselined
|
||||
- Scroll performance tested (target 60fps)
|
||||
- API response time measured
|
||||
- Memory usage tracked during key flows
|
||||
- Baselines established for iPhone SE, 12, and 15 Pro
|
||||
- 10% regression threshold configured
|
||||
- Performance tests run in CI
|
||||
- Performance budget documented
|
||||
- No performance regressions in release builds
|
||||
|
||||
validation:
|
||||
- Run performance tests → all within budget
|
||||
- Introduce slow animation → test fails
|
||||
- Check CI → performance tests passing
|
||||
- Review docs → baselines documented
|
||||
|
||||
notes:
|
||||
- Performance tests should run on physical devices, not simulators
|
||||
- Simulators don't reflect real-world performance accurately
|
||||
- Use Xcode's Metrics tab to track performance over time
|
||||
- Consider using Firebase Performance Monitoring for real-world data
|
||||
Reference in New Issue
Block a user