"매 quality 의 inspect 보다 build-in". 매 modern QC 의 shift-left — 매 unit test, type checking, static analysis, contract test, e2e — 매 layer 의 different bug class catch. 2026 의 LLM-augmented test generation + property-based testing 의 mainstream.
매 핵심
매 Test pyramid (2026 update)
Unit (60-70%): pure function, fast, isolated.
Integration (15-25%): module + DB/queue, real dependencies via testcontainers.
E2E (5-10%): full user journey, Playwright/Cypress.
// Consumer side
constprovider=newPact({consumer:'Web',provider:'OrdersAPI'});awaitprovider.addInteraction({state:'order 123 exists',uponReceiving:'a request for order 123',withRequest:{method:'GET',path:'/orders/123'},willRespondWith:{status: 200,body:{id:'123',total: 99.0},},});// Generates pact.json — provider verifies against it in CI
Mutation testing (Stryker)
// stryker.conf.js
exportdefault{testRunner:'vitest',mutate:['src/**/*.ts'],thresholds:{high:80,low:60,break:50},};// Mutates code (a + b → a - b) and checks if tests catch it
// Surviving mutants = weak tests
LLM-assisted test generation (2026 pattern)
// CI step: claude-code generates edge cases
// $ claude test-gen src/parser.ts --output tests/parser.gen.test.ts
// Then human review before merge — never blind-trust
언제: generate edge cases, suggest mutation-resistant assertions, identify untested branches.
언제 X: never let LLM write the assertion AND implementation — confirmation bias.