@orieken/saturday-ml-analyzer
v0.0.1
Published
ML-powered analysis for test interaction heatmaps
Readme
Saturday ML Analyzer
A machine-learning powered tool that analyzes test execution heatmaps to identify "Cold Spots"—areas of your application that are accessible but have low or zero test coverage.
Features
- K-Means Clustering: Uses
ml-kmeansto group scattered interaction events into "Hotspots". - Cold Spot Detection: Mathematically calculates which interactable elements are furthest from any known interaction cluster.
- Coverage Scoring: Provides a quantitative "Coverage Score" based on interactions vs. opportunities.
Installation
pnpm add @orieken/saturday-ml-analyzerUsage
CLI
Run the analyzer against a directory containing heatmap JSON data (generated by @orieken/saturday-playwright-heatmap).
node dist/index.js <path-to-heatmap-data>Example Output:
Test: User Login (passed)
Coverage Score: 85.0%
Hotspots: 3 (Username, Password, Submit)
Cold Spots: 2
- a "Forgot Password"
- a "Sign Up"API
You can also use the analyzer programmatically:
import { HeatmapAnalyzer } from '@orieken/saturday-ml-analyzer';
const analyzer = new HeatmapAnalyzer();
const result = analyzer.analyze(testData);
console.log(result.coldSpots);How It Works
Analysis Workflow
graph LR
Input[Heatmap JSON] -->|Read| Loader
Loader -->|Extract| Inter[Interactions (x,y)]
Loader -->|Extract| Elements[Interactables]
Inter -->|K-Means| Clustering[Identify Hotspots]
Clustering & Elements -->|Distance Calc| Comparator
Comparator -->|Output| ColdSpots[Cold Spots]
Comparator -->|Output| Score[Coverage %]Clustering Logic
The analyzer uses a proximity threshold to determine if an element was "tested".
graph TD
Start --> Check{Distance to Nearest Hotspot < 50px?}
Check -->|Yes| Tested[Mark as Covered]
Check -->|No| Cold[Mark as Cold Spot]
Cold --> Alert[Add to Risk Report]