Skip to content
Back to skills

Smoke Test Analyzer

ASecurity

Analyze existing automated tests (iOS + Android) to select which should run in Daily Smoke CI. Scans unit and UI tests across both platforms, scores each for smoke suitability, classifies into tiers (PR Smoke / Daily / Release / Manual), and generates CI configurations (.xctestplan for iOS, Gradle filters for Android). Use whenever the user mentions 'smoke test', 'daily test', 'CI test selection', 'which tests should run daily', 'optimize CI', 'test plan config', 'flaky test analysis', or wan...

  • 7 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
testinggoswiftbashtestinggit

Works with

  • mcp

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned September 2, 2026

npx -y skills add kao273183/qa-claude-skill --skill smoke-test-analyzer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Smoke Test Analyzer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Smoke Test Analyzer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kao273183-smoke-test-analyzer/badge)](https://www.skillsdirectory.com/skills/kao273183-smoke-test-analyzer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: smoke-test-analyzer
description: "Analyze existing automated tests (iOS + Android) to select which should run in Daily Smoke CI. Scans unit and UI tests across both platforms, scores each for smoke suitability, classifies into tiers (PR Smoke / Daily / Release / Manual), and generates CI configurations (.xctestplan for iOS, Gradle filters for Android). Use whenever the user mentions 'smoke test', 'daily test', 'CI test selection', 'which tests should run daily', 'optimize CI', 'test plan config', 'flaky test analysis', or wants to curate which automated tests belong in the daily smoke suite. Also trigger when discussing CI pipeline optimization or test execution time budgets."
disable-model-invocation: false
allowed-tools: Read, Grep, Glob, Write, Edit, Bash, mcp__google__createSpreadsheet, mcp__google__writeSpreadsheet, mcp__google__moveFile
argument-hint: "[optional: platform (ios/android/both) or specific test directory]"
---

# smoke-test-analyzer

> ⚙️ **Read [`modules/config-loader.md`](./modules/config-loader.md) first**.
> If `mode = markdown-only`, output reports to local `.md` instead of Google Sheet.

> 💡 **第一次聽到 T0/T1/T2/T3 分層?** 先看 [`concept-zh.md`](./concept-zh.md) 中文入門導讀(5 分鐘搞懂「為什麼不該每次 PR 都跑全部測試」)。

Analyze existing automated tests to curate the optimal Daily Smoke subset for CI. Supports iOS and Android.

## Why This Matters

Running all tests on every CI trigger is wasteful. A well-tiered test suite catches 90% of regressions in 10% of the time by running the right tests at the right frequency.

## Test Tiers

| Tier | When | Time Budget | What Belongs Here |
|------|------|-------------|-------------------|
| **T0: PR Smoke** | Every PR | < 3 min | Critical path, zero flakiness tolerance |
| **T1: Daily Smoke** | Daily cron | < 10 min | Core business logic + key UI flows |
| **T2: Release** | Pre-release | < 60 min | Full regression, edge cases, slow tests |
| **T3: Manual** | On-demand | Unlimited | Exploratory, visual, accessibility |

> Time budgets adjustable via `config.smoke.time_budgets`.

## Platform Detection

Auto-detect based on project files:
- **iOS**: `*.xcodeproj`, `{ProjectName}Tests/`, `{ProjectName}UITests/`, `*.xctestplan`
- **Android**: `build.gradle(.kts)`, `src/test/`, `src/androidTest/`

If both detected, analyze both and produce a cross-platform summary.

> 可從 `config.platforms.{ios,android}.test_dirs` 自訂掃描目錄。

## 4-Phase Execution

### Phase 1: Scan & Inventory

Collect all test files and count methods per file.

**iOS**: Scan `{ProjectName}Tests/`, `{ProjectName}UITests/`, internal Swift package `Tests/` dirs. Count `@Test` and `func test*`. Read existing `*.xctestplan` to understand current CI membership.

**Android**: Scan `app/src/test/`, `app/src/androidTest/`. Count `@Test`. Check Gradle test tasks and CI workflows for current configuration.

Output an inventory table:

| Platform | File | Methods | Type (Unit/UI) | Current CI Plan |
|----------|------|---------|-----------------|-----------------|

### Phase 2: Smoke Suitability Scoring

Score each **test file** on 5 weighted criteria (1-5 scale). See [`references/scoring-heuristics.md`](./references/scoring-heuristics.md) for detailed signals and examples.

| Criteria | Weight | High Score (5) | Low Score (1) |
|----------|--------|----------------|---------------|
| Criticality | 30% | Login, Home, Payment | Cosmetic, edge case |
| Speed | 25% | Pure logic, < 1s | I/O dependent, > 10s |
| Stability | 25% | Deterministic | sleep(), timing-dependent |
| Independence | 10% | No shared state | Singletons, ordering |
| Coverage Value | 10% | High-traffic path | Rarely-used feature |

**Tier assignment by score:**
- >= 4.0 → T0 | 3.0-3.9 → T1 | 2.0-2.9 → T2 | < 2.0 → T3

### Phase 3: Classification & Recommendation

Present scored results grouped by tier, per platform. Include:
- T0/T1/T2/T3 tables with file, methods, score, rationale
- Cross-platform summary (tier counts + method counts per platform)
- Flaky risk report (flagged tests with issue + fix suggestion)

Ask user to review and adjust before generating configs.

### Phase 4: Generate CI Configuration

Based on user-confirmed tiers, generate platform-specific configs.

- **iOS**: see [`references/ios-config.md`](./references/ios-config.md) for `.xctestplan` format and CI workflow snippets
- **Android**: see [`references/android-config.md`](./references/android-config.md) for Gradle filter / `@Tag` / Suite options

Output per platform:
1. CI test configuration file (`.xctestplan` or Gradle config)
2. CI workflow snippet (GitHub Actions yaml)
3. Flaky test fix recommendations

If both platforms, also generate a **Google Sheet** (4 tabs: Summary / iOS Detail / Android Detail / Flaky Report). Upload target: `{{GDRIVE_QA_FOLDER_ID}}/CI Smoke Plan/`.

> Markdown-only mode: write `.claude/testing/ci-smoke/report.md` and per-platform `*.md` reports instead of Sheet.

## Quality Checks

- Every T0 test must be deterministic (no sleep, no timing dependency)
- T0+T1 total < 10 min per platform (依 `config.smoke.time_budgets`)
- No T0 test depends on network or external service
- Existing CI coverage not regressed (T2 tests still run somewhere)
- Same core business flows covered on both platforms

## When to Re-run

- New test files added (monthly or per-feature)
- Flaky tests identified in CI logs
- CI execution time exceeds budget
- After `test-automation` generates new scripts

## Config Dependencies

| Key | Purpose | If missing |
|-----|---------|-----------|
| `platforms.{ios,android}.test_dirs` | Test scan directories | Use defaults |
| `smoke.time_budgets` | T0/T1/T2 minute budgets | Default 3/10/60 |
| `smoke.scoring_weights` | Override 5-criterion weights | Use defaults |
| `google.qa_tc_folder_id` | Sheet upload target | Markdown only |
| `mode = markdown-only` | Whole skill mode | No Sheet output |

Files in this skill

  • SKILL.md5.8 KB
  • concept-zh.md7.1 KB
  • modules/config-loader.md2.6 KB
  • modules/markdown-fallback.md2.3 KB
  • references/android-config.md2.3 KB
  • references/ios-config.md2.4 KB
  • references/scoring-heuristics.md3.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.