테스트의 범위와 설계 원칙부터 언어별 실행 도구, 통합·브라우저·계약·부하 테스트까지 모았습니다. Node.js·Java·Python은 실행·테스트 더블·비동기 처리·커버리지를 중심으로 살펴보고 다른 주요 언어의 공식 자료도 함께 연결합니다.
테스트의 범위와 설계
-
The Practical Test Pyramid — Ham Vocke
단위·통합·계약·UI 테스트의 범위와 역할, 테스트 더블과 자동화 구성의 균형을 설명합니다.
-
더미·페이크·스텁·스파이·목을 구분하고 각각 어떤 의존성을 대체하는지 설명합니다.
-
Test Driven Development — Martin Fowler
실패하는 테스트 작성, 동작 구현, 리팩터링으로 이어지는 TDD의 반복을 설명합니다.
-
Unit testing best practices — Microsoft
격리·반복 가능성·가독성과 동작 중심 검증을 다루며 높은 커버리지가 품질을 보장하지 않는 이유를 설명합니다.
Node.js와 JavaScript 및 TypeScript
-
내장 node:test의 테스트 실행, 비동기 테스트·훅·격리·모킹과 커버리지 기능을 설명합니다.
-
JavaScript·TypeScript 테스트 작성과 Vite 설정 연동, 테스트 실행의 시작점을 제공합니다.
-
테스트·단언 작성과 실행, TypeScript 등 프로젝트 환경에 맞춘 설정을 설명합니다.
-
함수·모듈·시간·요청 등 의존성을 대체하고 테스트 사이의 모킹 상태를 정리하는 방법을 다룹니다.
-
V8·Istanbul 기반 측정과 보고서·대상 파일 설정 등 커버리지 수집 방법을 설명합니다.
-
Guiding Principles — Testing Library
사용자가 화면과 상호작용하는 방식을 중심으로 UI 테스트를 작성하는 원칙을 설명합니다.
Java와 Kotlin
-
JUnit Platform·Jupiter의 역할과 테스트 작성·실행·확장 문서로 연결합니다.
-
Java 테스트에서 의존 객체의 동작을 설정하고 호출을 검증하는 모킹 프레임워크의 공식 안내입니다.
-
Spring 애플리케이션을 검증하는 테스트 지원 모듈과 자동 설정을 안내합니다.
-
Java 바이트코드 실행에 기반한 코드 커버리지 수집과 빌드 도구 연동 자료를 제공합니다.
-
Test Java code using Kotlin and JUnit — Kotlin
Java와 Kotlin이 함께 있는 프로젝트에서 JUnit 테스트를 구성하고 Maven·Gradle로 실행하는 방법을 설명합니다.
Python
-
표준 라이브러리의 테스트 케이스·단언·준비와 정리·테스트 탐색 기능을 설명합니다.
-
함수 기반 테스트와 단언, 매개변수화·플러그인·테스트 실행 문서로 연결합니다.
-
테스트 자원의 준비·정리, 재사용 범위와 의존 관계를 fixture로 관리하는 방법을 설명합니다.
-
Mock·patch·AsyncMock 등으로 외부 의존성과 비동기 호출을 대체하는 방법을 설명합니다.
-
pytest에서 asyncio 코루틴을 테스트하고 이벤트 루프와 비동기 fixture를 구성하는 플러그인입니다.
-
입력 생성과 실패 예제 축소를 이용해 코드가 만족해야 할 속성을 검증하는 Python 도구입니다.
-
Python 코드의 실행 구문·분기를 측정하고 미실행 영역을 보고서로 살펴보는 도구입니다.
Go와 Rust
-
testing 패키지와 go test를 이용한 기본 테스트 작성·실행을 설명합니다.
-
Getting started with fuzzing — Go
퍼즈 입력 생성과 실패 입력의 재현을 통해 예외적인 입력을 탐색하는 공식 실습입니다.
-
Writing Automated Tests — The Rust Programming Language
Rust의 테스트 속성·단언과 cargo test의 기본 실행 흐름을 설명합니다.
-
Test Organization — The Rust Programming Language
모듈 내부 단위 테스트와 공개 API를 사용하는 통합 테스트의 파일·디렉터리 구성을 설명합니다.
C#과 .NET
-
테스트 종류와 프레임워크·실행 플랫폼, dotnet test의 역할을 정리합니다.
-
Write tests with MSTest — Microsoft
테스트 식별·단언·데이터 기반 검증과 실행 생명주기를 구성하는 방법을 설명합니다.
-
Unit testing C# with xUnit — Microsoft
애플리케이션과 테스트 프로젝트를 나누고 xUnit 테스트를 실행하는 공식 실습입니다.
-
NUnit의 테스트 작성과 실행 도구·확장 기능을 찾아볼 수 있는 공식 문서입니다.
C와 C++
-
C++의 단언·테스트 케이스·fixture와 독립적으로 반복 가능한 테스트의 작성 방법을 설명합니다.
-
C 코드와 임베디드 환경에서 단위 테스트를 작성하는 프레임워크와 관련 도구를 소개합니다.
Ruby와 PHP 및 Swift
-
Ruby의 예제 기반 명세, 기대값과 테스트 더블을 다루는 테스트 도구 모음의 공식 사이트입니다.
-
Testing Rails Applications — Ruby on Rails
Minitest 기반 모델·요청·통합·시스템 테스트와 fixture·데이터베이스 격리를 다룹니다.
-
PHP의 테스트 케이스·fixture·테스트 더블·코드 커버리지와 실행 설정을 설명합니다.
-
PHP에서 test·it와 기대값 API를 이용해 테스트를 작성하는 방법을 설명합니다.
-
Swift Core Libraries — Swift.org
Swift Testing과 XCTest의 역할 및 관련 공식 문서를 안내합니다.
통합 테스트와 계약 테스트
-
Getting Started — Testcontainers
테스트 중 데이터베이스 등 컨테이너 의존성을 실행하는 접근과 Java·Node.js·Python·Go·.NET 등 언어별 구현으로 연결합니다.
-
소비자와 제공자 사이의 요청·응답 계약을 검증하는 방법과 언어별 도구를 안내합니다.
브라우저 E2E와 부하 테스트
-
Supported languages — Playwright
Node.js의 Playwright Test, Python의 pytest 연동, Java·.NET의 테스트 프레임워크 연동 차이를 설명합니다.
-
브라우저 E2E와 컴포넌트 테스트의 실행 방식 및 개발 중 디버깅 기능을 설명합니다.
-
가상 사용자·시나리오·지표·임계값을 이용해 서비스의 부하와 성능을 검증하는 방법을 안내합니다.