Cut iOS test runs from
60 min to 15 min
Intelligent test selection for XCUITest. The free CLI finds problems. Pro selects only the tests affected by your code changes.
Free analysis CLI available on GitHub. Pro includes test selection & CI integration.
The Problem
Your CI is wasting time and money
Full test suite
Every PR runs all 500 tests. Developers wait an hour for feedback. CI costs pile up.
Orphaned tests
Tests that exist but aren't in any test plan. They never run. You don't know they're broken.
No visibility
Which tests cover which code? Nobody knows. So you run everything, every time.
Free & Open Source
Analyze your test suite
The free CLI finds problems in seconds. Available now on GitHub.
Find orphaned tests
Tests that exist but aren't in any test plan. They never run in CI.
Naming violations
Files that don't follow your conventions. Inconsistency spreads.
Bloated files
Test files with 30+ tests that are impossible to maintain.
Unused accessibility IDs
Identifiers defined in code but never used in tests.
Pro
Intelligent test selection
When you change LoginViewController.swift, you don't need to run all 500 tests. Pro figures out which tests actually matter.
Maps changed files to tests by name and path patterns. LoginViewController.swift โ LoginTests.swift
Maps changes via screen navigation graph. If you changed SettingsScreen, finds tests that navigate through it.
Maps changes via accessibility IDs. If you changed where loginButton is defined, finds tests that tap it.
LoginViewController.swiftLoginViewModel.swift
LoginTests (12 tests)AuthTests (4 tests)Skipped 484 unrelated tests
Pro
CI integration & more
Bitrise integration
Drop-in Bitrise step. Select tests based on your PR diff and generate an xctestplan automatically.
GitHub Actions & more
Works with any CI that can run Python. GitHub Actions, CircleCI, Jenkins, Azure DevOps.
Validation & accuracy
Measure selection accuracy with precision, recall, and false negative metrics. Prove it works.
Safety nets
Critical file detection triggers full test runs. Configurable confidence thresholds. Never miss a bug.
Example Output
See what it finds
Here's a real analysis from a sample iOS project. All of this runs in under a second.
431 tests aren't in any test plan โ they never run in CI.
SearchTests (80 tests) ยท LoginTests (39 tests) ยท LoginValidationTests (34 tests) ยท +27 more files
16 files don't follow the [Feature]Tests.swift convention.
CheckoutFlows.swift ยท LoginFlow_Test1.swift ยท button_tests.swift ยท +13 more
3 files have 30+ tests and are hard to maintain.
SearchTests.swift (80 tests) ยท LoginTests.swift (39 tests) ยท LoginValidationTests.swift (34 tests)
61 IDs are defined in code but never used in tests.
LoginView.BiometricButton ยท DashboardView.CartButton ยท SearchView.SearchField ยท +58 more
Try Free
Analyze your test suite now
The free CLI finds orphaned tests, naming issues, and bloated files in under a second. No account required.
View on GitHub โ$ xcuitest-goblin analyze ./MyApp
Results:
- 58 test files
- 505 test methods
- 431 orphaned tests
- 16 naming violations
Output: ./analysis/
Time: 0.15s
Pricing
Simple, predictable pricing
Free to analyze. Pay when you're ready to cut CI time.
- โ Analyze command
- โ Find orphaned tests
- โ Naming violation detection
- โ Bloated file detection
- โ HTML reports
- โ Test selection
- โ CI integration
- โ Everything in Free
- โ Intelligent test selection
- โ Bitrise integration
- โ GitHub Actions & other CIs
- โ Validation & accuracy metrics
- โ xctestplan generation
- โ Email support
Founding team discount available
- โ Everything in Pro
- โ Multiple repos
- โ Custom integrations
- โ Dedicated support
- โ SLA guarantee
- โ On-premise option
- โ Invoice billing
Ready to cut your CI time?
Get Pro access and start running only the tests that matter.