agentsclimarketplace

Integration e2e testing

Skill tundraray/overture/skills/integration-e2e-testing

This skill provides integration and E2E test design principles, ROI calculation, test skeleton specification, and review criteria. Automatically loaded when designing integration tests, E2E tests, reviewing test quality, or when "integration test", "E2E test", "end-to-end", "test skeleton", or "acceptance test" are mentioned.From its SKILL.md

Install
npx -y skills add tundraray/overture --skill integration-e2e-testing

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 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

5.8 KB, as published. Nobody here has run it

Integration and E2E Testing Principles

Test Type Definition and Limits

Test TypePurposeScopeLimit per FeatureImplementation Timing
IntegrationVerify component interactionsPartial system integrationMAX 3Created alongside implementation
E2EVerify critical user journeysFull systemMAX 1-2Executed in final phase only

Behavior-First Principle

Include (High ROI)

  • Business logic correctness (calculations, state transitions, data transformations)
  • Data integrity and persistence behavior
  • User-visible functionality completeness
  • Error handling behavior (what user sees/experiences)

Exclude (Low ROI in CI/CD)

  • External service real connections → Use contract/interface verification
  • Performance metrics → Non-deterministic, defer to load testing
  • Implementation details → Focus on observable behavior
  • UI layout specifics → Focus on information availability

Principle: Test = User-observable behavior verifiable in isolated CI environment

ROI Calculation

ROI Score = (Business Value × User Frequency + Legal Requirement × 10 + Defect Detection)
            / (Creation Cost + Execution Cost + Maintenance Cost)

Cost Table

Test TypeCreateExecuteMaintainTotal
Unit1113
Integration35311
E2E1020838

Test Skeleton Specification

Required Comment Patterns

Each test MUST include the following annotations:

// AC: [Original acceptance criteria text]
// Behavior: [Trigger] → [Process] → [Observable Result]
// @category: core-functionality | integration | edge-case | e2e
// @dependency: none | [component names] | full-system
// @complexity: low | medium | high
// ROI: [score]

Verification Items (Optional)

When verification points need explicit enumeration:

// Verification items:
// - [Item 1]
// - [Item 2]

EARS Format Mapping

EARS KeywordTest TypeGeneration Approach
WhenEvent-drivenTrigger event → verify outcome
WhileState conditionSetup state → verify behavior
If-thenBranch coverageBoth condition paths verified
(none)Basic functionalityDirect invocation → verify result

Test File Naming Convention

  • Integration tests: *.int.test.* or *.integration.test.*
  • E2E tests: *.e2e.test.*

The test runner or framework in the project determines the appropriate file extension.

Review Criteria

Skeleton and Implementation Consistency

CheckFailure Condition
Behavior VerificationNo assertion for "observable result" in skeleton
Verification Item CoverageListed items not all covered by assertions
Mock BoundaryInternal components mocked in integration test

Implementation Quality

CheckFailure Condition
AAA StructureArrange/Act/Assert separation unclear
IndependenceState sharing between tests, order dependency
ReproducibilityDate/random dependency, varying results
ReadabilityTest name doesn't match verification content

Quality Standards

Required

  • Each test verifies one behavior
  • Clear AAA (Arrange-Act-Assert) structure
  • No test interdependencies
  • Deterministic execution

Prohibited

  • Testing implementation details
  • Multiple behaviors per test
  • Shared mutable state
  • Time-dependent assertions without mocking

Property-Based Testing

Property-based testing generates random inputs to verify invariants that should hold for ALL possible values, not just specific test cases.

When to Apply

ScenarioProperty Example
Sorting algorithmssort(arr).length === arr.length AND each element <= next
Serializationdecode(encode(value)) === value for any valid value
Data transformationstransform(transform_inverse(x)) === x
Validation functionsValid inputs always pass, structurally invalid inputs always fail
Mathematical operationsCommutativity, associativity, distributivity
Collection operationsMap preserves length, filter reduces or preserves length

Property Test Structure (Language-Agnostic)

PROPERTY: "Description of the invariant"
FOR ALL: generator description (e.g., "arbitrary arrays of integers, length 0-1000")
ASSERT: invariant expression
SHRINK: how to minimize failing cases

Example:
  PROPERTY: "Sorting preserves all elements"
  FOR ALL: arrays of comparable elements
  ASSERT:
    - sorted.length === original.length
    - every element in original exists in sorted
    - sorted[i] <= sorted[i+1] for all valid i
  SHRINK: reduce array size until minimal failing case found

ROI Assessment for Property Tests

FactorScore Guidance
Input space sizeLarge (>100 meaningful variations) → High ROI
Bug severity if invariant brokenData corruption / security → High ROI
Implementation complexitySimple property → High ROI
Existing coverageNo edge case coverage → High ROI

Minimum ROI threshold: Only create property tests when at least 2 factors score High.

Integration with Test Budget

Property tests count toward the integration test budget. Each property test replaces approximately 5-10 specific input unit tests, making them highly budget-efficient for the right scenarios.

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.