Thank you for the excellent questions. Here’s the comprehensive breakdown of our test velocity tracking implementation in codebeamer cb-24:
Velocity Calculation Methodology:
We use a weighted velocity model that accounts for test complexity:
- Unit tests: 1 velocity point
- Integration tests: 3 velocity points
- End-to-end tests: 5 velocity points
- Manual exploratory tests: 8 velocity points
This weighting reflects actual execution time differences and provides realistic capacity forecasting.
Multi-Sprint Test Handling:
Tests are counted in the sprint where execution completes, not where they start. This aligns with our “done” definition and prevents double-counting. The dashboard tracks in-progress tests separately to provide visibility into work spanning sprint boundaries.
Velocity Segmentation:
We maintain separate velocity tracks for automated and manual testing:
-- Pseudocode for segmented velocity query:
1. Query test executions grouped by sprint_id and test_type
2. Calculate weighted points per test based on complexity
3. Aggregate automated vs manual velocity separately
4. Store results in custom dashboard tables
5. Generate trend charts for 12-sprint rolling window
This segmentation is critical for portfolio planning since automated test velocity scales differently than manual test velocity as team size changes.
Dashboard Refresh and Data Pipeline:
The dashboard updates via scheduled job every 4 hours during business hours, with manual refresh available. We chose batch updates over real-time for performance reasons - calculating velocity across 15 teams and 5 sprints of historical data is computationally expensive. The 4-hour refresh provides sufficient accuracy for portfolio planning while maintaining system performance.
Outlier Handling and Statistical Smoothing:
We implemented a robust outlier detection mechanism:
- Calculate 12-sprint moving average velocity per team
- Identify sprints where velocity deviates >30% from moving average
- Flag outliers for manual review (holidays, team transitions, tooling issues)
- Use median velocity instead of mean for forecasting to reduce outlier impact
The system also tracks velocity variance as a quality metric - teams with high variance indicate unstable testing processes that need attention.
Test Status and Re-execution Impact:
Failed tests are handled through a re-execution penalty factor. When a test fails and requires re-execution:
- Initial execution counts toward velocity
- Re-execution adds 0.5x velocity points (reflects rework overhead)
- This penalizes velocity for quality issues, encouraging teams to improve test stability
Portfolio Planning Integration:
The velocity dashboard feeds directly into our release planning tools. Portfolio managers can:
- View aggregated velocity trends across all teams
- Forecast testing capacity for upcoming releases
- Identify teams with declining velocity (early warning for capacity issues)
- Allocate test workload based on historical velocity data
Technical Implementation Details:
Built using cb-24’s custom report framework with SQL-based data aggregation. The dashboard includes:
- Velocity trend charts (line graphs per team)
- Capacity heatmap (shows team availability vs planned test load)
- Predictive forecasting (projects completion dates based on velocity trends)
- Drill-down capability (click team to see individual sprint details)
Lessons Learned:
- Start with simple velocity calculation, add complexity incrementally
- Involve teams in defining velocity weights - they know test effort best
- Make velocity data transparent - teams use it to improve their processes
- Don’t use velocity for team comparison - context differs too much
- Combine velocity with quality metrics (defect escape rate) for complete picture
Results After 6 Months:
- Portfolio planning accuracy improved 40% (fewer release date slips)
- Test capacity forecasting within 15% of actual (previously 35% variance)
- Teams proactively address velocity declines before they impact releases
- Automated test coverage increased 25% (teams see velocity benefit)
The implementation required about 80 hours of initial development and 4 hours monthly maintenance. ROI became positive within 3 months through improved release predictability and reduced planning overhead.