Nebo testing qa
Skill lifenewjob/nebo-claude-skills-public/skills/nebo-testing-qa
TESTING-QA. Triggers: TDD, тесты, pytest, coverage, code review QA, BDD, mutation testingFrom its SKILL.md
npx -y skills add lifenewjob/nebo-claude-skills-public --skill nebo-testing-qaAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
6.9 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
TESTING-QA SuperSkill
Заменяет: 8 скилов кластера TESTING-QA (job-analytics, skyvern, fastmonai, opensquad, specflow, tdd-workflows, tdd-mastery, testing-strategies) Триггеры: TDD, тесты, pytest, coverage, code review QA, BDD, mutation testing Версия: 1.0 | 26.03.2026
КОГДА ПРИМЕНЯТЬ
- Написание тестов / TDD цикл
- Git diff QA validation (PR review)
- Architecture plan review (staff review)
- Coverage analysis и пороги
- Property-based / mutation / snapshot / contract testing
- BDD / SpecFlow
- AI-powered test generation
АТОМЫ (уникальные инструкции)
TDD Red-Green-Refactor
- RED: Напиши failing test, определяющий desired behavior — ПЕРЕД любым production code
- GREEN: Напиши МИНИМАЛЬНЫЙ код чтобы тест прошёл — не больше
- REFACTOR: Очисти код, все тесты зелёные
- Цикл = 2-10 минут; если дольше — scope слишком большой
- Outside-in TDD для features/user-stories; Inside-out TDD для компонентов/библиотек
- Chicago School (state-based) vs London School (mockist/interaction-based)
Test Structure
- Arrange-Act-Assert в каждом тесте
- Naming:
test_<unit>_<scenario>_<expected>(Python/Go) илиit("should <behavior> when <condition>")(JS/TS) - Каждый тест independent и self-contained — нет shared mutable state
- Test behavior, NOT implementation — тесты должны пережить рефакторинг
Coverage Rules
- 80% line coverage minimum в CI
- 75% branch coverage minimum
- Exclude: generated code, type definitions, config files
- Конкретные команды:
vitest run --coverage --coverage.thresholds.lines=80 --coverage.thresholds.branches=75pytest --cov=src --cov-fail-under=80 --cov-branchgo test -coverprofile=cover.out -coverpkg=./... ./...
- НИКОГДА тесты только ради coverage numbers — test behavior
Test Pyramid
- 70% unit / 20% integration / 10% E2E
- Unit: одна функция/класс, <100ms, mock все external dependencies
- Integration: module boundaries, <5s, реальная DB/FS допустима
- E2E: full user flow, <30s, full stack
- Mark slow:
@pytest.mark.slow,@pytest.mark.e2e
Mocking Guidelines
- Mock на границах: HTTP clients, databases, file systems, clocks
- НИКОГДА mock unit under test
- Prefer fakes (in-memory implementations) над mocks для repositories
- Assert on behavior, не на mock call counts
- DI > module mocking
Git Diff QA Validation (skyvern)
- QA diff-driven:
git diff→ understand affected behavior → validate - Classify:
frontend/browser,backend API,backend-internal,mixed - Mixed: backend FIRST, потом frontend (broken backend → untrustworthy frontend)
- Backend-internal: compile/type/lint + targeted tests — НЕ browse UI
- Frontend: browser automation с deterministic DOM assertions (
document.querySelector) - Backend API: changed endpoints → happy path + empty/not-found + invalid input + mutation follow-up
- Health gate: error messages, blank pages, auth redirects, JS errors
- Network check:
performance.getEntriesByType('resource').filter(e => e.responseStatus >= 400) - Post QA report как sticky PR comment с
<!-- skyvern-qa-report -->marker
Contract Testing (Pact)
.given(state).uponReceiving(description).withRequest().willRespondWith().executeTest()- Consumer expectations match provider capabilities без обоих запущенных сервисов
- Contract violations = build fails — без исключений
SpecFlow BDD Contracts
- YAML в
docs/contracts/:contract_meta(id, version, covers_reqs) +rules(non_negotiable: forbidden_patterns + required_patterns) +compliance_checklist - REQ ID format:
[DOMAIN]-[NUMBER](ARCH-001, AUTH-001, FEAT-001, SEC-001) - Architecture contracts ПЕРЕД feature contracts
- Contract tests ПЕРЕД build; journey tests ПОСЛЕ build
- Override: user must explicitly say
override_contract: [CONTRACT_ID]
Journey Testing (BDD E2E)
- Journey = Definition of Done: feature complete когда journeys pass
test.describe('Journey: [J-REQ-ID]')с Playwright step-by-step- Plain English requirements → REQ IDs → contract YAML → contract tests → journey tests
Property-Based Testing
- fast-check (JS/TS), Hypothesis (Python), QuickCheck (Haskell)
- Assert invariants: output length preservation, sort order, idempotency
fc.assert(fc.property(arbitraries, predicate))- Для algorithmic code specifically
Mutation Testing
- Validate test suite quality: kill mutants = good tests
- If mutants survive → tests insufficient
- Integrate в CI pipeline
Snapshot Testing
toMatchSnapshot()для component render output- Inline snapshots (
toMatchInlineSnapshot()) для small outputs - Review snapshot diffs carefully в code review — НИКОГДА blindly update
Staff Review (Architecture Plans)
- Check: failure modes, race conditions, data integrity, rollback, security, performance cliffs
- YAGNI: interfaces с single implementation = violation
- Completeness: success criteria, testing strategy, observability, docs, deployment
- Severity: Critical (blocks approval), Medium (should address), Minor (nice to have)
- Verdict: GO, GO WITH CONDITIONS, REVISE
- Prefer reversible decisions when uncertain
Integration Testing с Containers
- Testcontainers (
@testcontainers/postgresql) для real DB beforeAll: start container + migrate;afterAll: close + stop- Timeout: 60s для container startup
ЗАПРЕЩЕНО
- Test implementation details вместо behavior
- Тесты которые проходят при удалении кода (tautological)
- Shared mutable state между тестами
- Игнорировать flaky tests (fix root cause!)
- Test private methods directly
- Giant test setup скрывающий intent
- Tests depending on execution order
- Mock всё в integration tests (use real dependencies)
- Test trivial getters/setters при пропуске edge cases
БЫСТРЫЙ СТАРТ
- TDD: RED (failing test) → GREEN (minimal code) → REFACTOR; цикл 2-10 мин
- Coverage: 80% lines / 75% branches; pyramid 70/20/10; mock только на границах
- Diff QA: classify (frontend/backend/mixed) → backend first → deterministic assertions → sticky PR comment
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 3 of the 12 instructions most tdd skills give in ~1.7k tokens
Counted across 439 of the 443 authors here whose files we hold, read 2026-08-07
- Write minimal code to pass the testhere, and in 304 of 439, across 222 files
- Write a failing test firstin 174 of 439, across 111 files
- Refactor code only after tests passin 172 of 439, across 102 files
- Watch the test fail before writing codehere, and in 145 of 439, across 97 files
- Test one behavior per testin 108 of 439, across 46 files
- Refactor code while keeping tests greenhere, and in 100 of 439, across 88 files
- Delete code written before testsin 99 of 439, across 55 files
- Run tests after each refactor stepin 88 of 439, across 57 files
- Confirm the test fails for the right reasonin 66 of 439, across 62 files
- Use real code instead of mocks unless unavoidablein 60 of 439, across 17 files
- Reproduce bugs with a test before fixingin 53 of 439, across 36 files
- Write tests before implementationin 51 of 439, across 43 files
Said here and by no other author read
- keep the test cycle between two and ten minutes
- keep seventy five percent branch coverage minimum
- validate git diff affected behavior before qa review
- review backend changes before frontend changes
- write architecture contracts before feature contracts
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.