Quality Metrics
Test Coverage Metrics
Code Coverage Types
- •Line Coverage: Percentage of executable lines executed
- •Branch Coverage: Percentage of conditional branches taken
- •Function Coverage: Percentage of functions/methods called
- •Statement Coverage: Percentage of statements executed
- •Condition Coverage: Percentage of boolean sub-conditions evaluated
Coverage Targets
code
Critical Business Logic: 90-100% Core Application Code: 80-90% Utility/Helper Code: 70-80% Configuration/Setup Code: 50-70%
Coverage Tools
- •JavaScript: Istanbul, nyc, Jest coverage
- •Python: pytest-cov, coverage.py
- •Java: JaCoCo, Cobertura
- •.NET: dotCover, Coverlet
- •Go: go test -cover
Coverage Best Practices
- •Focus on meaningful coverage, not just percentage
- •Prioritize coverage of critical paths
- •Track coverage trends over time
- •Set coverage gates in CI/CD
- •Review uncovered code regularly
Code Quality Metrics
Cyclomatic Complexity
- •Measures code complexity based on control flow
- •Higher complexity = harder to test and maintain
- •Target: < 10 per function/method
code
Complexity Levels: 1-10: Simple, low risk 11-20: Moderate complexity, medium risk 21-50: High complexity, high risk 50+: Very high complexity, very high risk
Maintainability Index
- •Composite metric combining complexity, volume, and structure
- •Scale: 0-100 (higher is better)
- •Target: > 70
code
Maintainability Levels: 85-100: Highly maintainable 70-84: Moderately maintainable 50-69: Difficult to maintain 0-49: Very difficult to maintain
Code Duplication
- •Percentage of duplicated code
- •Target: < 5%
- •High duplication indicates need for refactoring
Code Smells
- •Long Methods: Methods > 50 lines
- •Large Classes: Classes > 500 lines
- •Deep Nesting: Nesting > 4 levels
- •Long Parameter Lists: > 4 parameters
- •Feature Envy: Methods using other objects more than their own
Technical Debt Ratio
code
Technical Debt Ratio = Cost to Fix Issues / Cost to Develop New Features Target: < 5%
Defect Metrics
Defect Density
- •Defects per thousand lines of code (KLOC)
- •Defects per function point
- •Defects per module/component
code
Defect Density = Total Defects / Size Metric (KLOC, FP) Target: < 1 defect per KLOC
Defect Removal Efficiency (DRE)
- •Percentage of defects found before release
- •Higher is better
code
DRE = (Defects Found Before Release / Total Defects) × 100 Target: > 90%
Defect Leakage
- •Percentage of defects found after release
- •Lower is better
code
Defect Leakage = (Defects Found After Release / Total Defects) × 100 Target: < 10%
Defect Age
- •Time from defect introduction to detection
- •Time from defect detection to resolution
code
Defect Age = Detection Date - Introduction Date Resolution Time = Resolution Date - Detection Date Target: < 7 days for critical defects
Defect Severity Distribution
- •Critical: System failure, data loss
- •High: Major functionality broken
- •Medium: Minor functionality broken
- •Low: Cosmetic issues, typos
Defect Trend Analysis
- •Track defects over time
- •Identify patterns and trends
- •Correlate with code changes
- •Predict future defect rates
Quality Gates and Acceptance Criteria
Quality Gate Examples
code
Code Quality Gate: - Code coverage ≥ 80% - No critical or high severity defects - Cyclomatic complexity ≤ 10 - No security vulnerabilities - All tests passing Performance Gate: - p95 response time < 500ms - Error rate < 0.1% - Throughput ≥ 1000 RPS - CPU utilization < 70% Security Gate: - No high/critical vulnerabilities - OWASP Top 10 compliance - Dependency scan clean - Authentication/authorization tested
Acceptance Criteria
- •Functional Requirements: All features work as specified
- •Non-Functional Requirements: Performance, security, usability met
- •Test Coverage: Minimum coverage thresholds met
- •Defect Standards: No defects above acceptable severity
- •Documentation: All documentation complete and accurate
Test Reporting and Dashboards
Test Execution Reports
- •Total tests run
- •Pass/fail counts and percentages
- •Test execution time
- •Flaky test identification
- •Test failure categorization
Coverage Reports
- •Line, branch, function coverage
- •Coverage by module/component
- •Uncovered code highlighting
- •Coverage trends over time
- •Coverage comparison between branches
Defect Reports
- •Open defects by severity
- •Defect trends and patterns
- •Defect age distribution
- •Defect resolution time
- •Defect density by module
Performance Reports
- •Response time metrics (p50, p95, p99)
- •Throughput metrics
- •Error rates
- •Resource utilization
- •Performance trends over time
Dashboard Elements
- •Overall quality score
- •Test coverage gauge
- •Defect trend chart
- •Performance metrics
- •Build health status
- •Quality gate status
QA KPIs and Metrics Tracking
Process Metrics
- •Test Execution Time: Time to run test suite
- •Test Automation Rate: Percentage of tests automated
- •Test Case Count: Total number of test cases
- •Test Case Execution: Number of tests executed per period
- •Defect Detection Rate: Defects found per testing hour
Product Metrics
- •Defect Escape Rate: Defects found in production
- •Mean Time to Detection: Time to find defects
- •Mean Time to Resolution: Time to fix defects
- •Customer Reported Defects: Defects reported by users
- •Test Coverage: Code, feature, and requirement coverage
Team Metrics
- •Test Case Productivity: Test cases created per person-hour
- •Automation Productivity: Automated tests created per person-hour
- •Defect Detection Efficiency: Defects found per person-hour
- •Test Execution Efficiency: Tests executed per person-hour
Quality Metrics
- •Overall Quality Score: Composite quality metric
- •Test Pass Rate: Percentage of passing tests
- •Defect Density: Defects per size metric
- •Code Quality Score: Based on complexity, duplication, smells
- •Performance Score: Based on response time, throughput, errors
Metrics Dashboard
code
Quality Dashboard: ┌─────────────────────────────────────────┐ │ Overall Quality Score: 87/100 │ ├─────────────────────────────────────────┤ │ Test Coverage: 85% │ │ ├─ Line: 87% │ │ ├─ Branch: 82% │ │ └─ Function: 90% │ ├─────────────────────────────────────────┤ │ Code Quality: 82/100 │ │ ├─ Complexity: 8.2 avg │ │ ├─ Duplication: 3.1% │ │ └─ Maintainability: 78 │ ├─────────────────────────────────────────┤ │ Defects: 12 open │ │ ├─ Critical: 1 │ │ ├─ High: 3 │ │ ├─ Medium: 5 │ │ └─ Low: 3 │ ├─────────────────────────────────────────┤ │ Performance: 92/100 │ │ ├─ p95 Response: 420ms │ │ ├─ Throughput: 1250 RPS │ │ └─ Error Rate: 0.05% │ └─────────────────────────────────────────┘
Metrics Collection and Analysis
Data Collection
- •Automated collection from CI/CD pipelines
- •Integration with test frameworks
- •Real-time monitoring and alerts
- •Historical data storage
- •Data normalization and aggregation
Analysis Techniques
- •Trend analysis over time
- •Comparison between branches/releases
- •Correlation with code changes
- •Root cause analysis of quality issues
- •Predictive analytics for quality forecasting
Reporting Frequency
- •Real-time: Build status, test failures, critical defects
- •Daily: Test execution, defect updates, performance metrics
- •Weekly: Quality trends, coverage reports, team metrics
- •Monthly: Quality scorecards, process improvements, strategic insights
- •Quarterly: Quality reviews, goal setting, process optimization
Continuous Improvement
- •Identify quality trends and patterns
- •Set quality goals and targets
- •Track progress toward goals
- •Implement process improvements based on metrics
- •Celebrate quality achievements