Trawling

최신기사

AI, 개발 도구, 오픈소스, 보안과 인프라의 변화와 이용 조건을 설명하는 최신 기사와 해설입니다.

커버리지는 코드 지표를 넘어 커리어 지표가 됐습니다

발행

AI 에이전트가 코드를 빠르게 만드는 환경에서는 테스트 커버리지보다 결과를 검증할 수 있는 증거 기록이 엔지니어의 역량을 보여준다고 주장합니다. 테스트 수뿐 아니라 실제 실행 보고서와 실패 목록을 공개해야 신뢰를 얻을 수 있다고 설명합니다.

버그 찾기

발행

정규식 엔진의 버그를 찾는 과정을 사례로, 무작위 입력 생성과 구현 간 결과 비교를 결합한 퍼징 방법을 설명합니다. 큰 입력보다 작고 까다로운 사례를 만들고, 테스트 오라클을 마련하는 일이 중요하다고 강조합니다.

데이터는 공개됐지만 에이전트 경로는 아니었습니다 — 기여자의 목업이 문서가 된 과정

발행

Sanity 데이터셋은 인증 없이 조회할 수 있지만, 에이전트가 쓰는 Context MCP 경로에는 조직 토큰이 필요했습니다. 접근할 수 없는 실행 경로를 대신해 기여자가 만든 목업 스키마가 도구 설명에 들어가면서 실제 데이터와 다른 문서가 될 뻔한 과정을 짚고, 실제 스키마에서 생성한 계약 픽스처를 대안으로 제안합니다.

SPA 자동화 테스트를 만들며 배운 점

발행

React 기반 오디오 플레이어 Réécoute의 전체 사용자 흐름을 Playwright와 실제 브라우저로 검사한 경험을 공유합니다. 테스트 데이터 격리, 외부 서비스 모의 객체, 병렬 실행, hydration으로 생기는 불안정성, CI에서 실패를 진단하는 방법을 설명합니다.

코드를 읽지 못해도 버그를 잡는 방법

발행

비개발자인 Alisio 창업자는 코드를 검토하는 대신 실제 사용 상황을 구체적으로 적고, 직접 동작을 확인해 버그를 찾습니다. 댓글에서는 과거 테스트를 회귀 체크리스트로 관리하고 변경 뒤 모두 다시 실행하라는 제안이 나옵니다.

모두 통과시키던 게이트를 아무도 통과시키지 못하는 게이트로 바꿨는데, 테스트는 차이를 찾지 못했습니다

발행

사람의 승인을 요구하는 실행 게이트를 만들면서 테스트가 우회와 고장을 모두 놓친 과정을 분석합니다. `isatty()`와 `/dev/tty`가 서로 다른 조건을 확인한다는 점, 테스트가 실제 터미널 경계를 검증해야 한다는 점을 재현 코드와 변이 테스트로 보여줍니다.

Parley: 일반 IRC 클라이언트로 쓰는 분산형 채팅

발행

Parley에서 같은 별명을 쓰는 사용자가 여러 인스턴스에 있을 때, 멘션 알림이 엉뚱한 계정에도 전송되던 문제를 수정했습니다. 발신자가 본 별명 표기와 인스턴스 도메인을 기준으로 수신자를 판별하며, 두 인스턴스를 연결한 통합 테스트와 레이스 검사도 통과했습니다.

구현은 판단이 보이지 않게 바뀌는 곳입니다

발행

댓글 응답 추적 도구의 세 가지 버전은 18명, 34명, 2명이라는 서로 다른 수를 냈지만 각자 다른 기준에 따라 정확히 셌습니다. 테스트와 측정값이 맞더라도 범위, 비교 대상, 데이터 수집 위치 같은 판단이 구현에 묻히면 독자는 다른 질문의 답을 받습니다.

Fakecloud: 통합 테스트용 로컬 AWS 에뮬레이터

발행

Fakecloud는 일반 AWS SDK와 CLI를 localhost에 연결해 여러 AWS 서비스를 로컬에서 시험하는 에뮬레이터입니다. 제작자는 46개 서비스의 완전한 API 적합성을 주장하지만, Hacker News에서는 DynamoDB 테스트에서 다수의 실패가 보고돼 실제 호환성을 확인해야 한다는 지적이 나왔습니다.

설명할 수 없는 실패가 일상이 되는 문제

발행

글은 AI 모델 Jev의 확률 점수와 빠른 도입을 예로 들어, 평가 데이터와 검증 없이 AI를 제품에 넣으면 실패 원인을 추적하기 어려워진다고 지적합니다. 저자는 LLM 개발로 실패가 늘어나는 것보다 “그냥 안 된다”는 말로 조사를 끝내는 태도가 보편화되는 일을 우려합니다.

템플릿 라이브러리의 70%가 공략하려던 시장에 오히려 해를 끼치고 있었습니다

발행

이력서 작성 서비스 운영자가 실제 렌더러 기준으로 템플릿을 세어 보니, 영어권 사용자가 고를 만한 레이아웃은 사실상 두 종류뿐이었습니다. 미국식 템플릿에서도 사진이 PDF에 남는 버그를 발견해 스타일을 단일 기준으로 수정하고, 사용자에게 전달되는 결과물을 검증해야 한다는 교훈을 공유합니다.

에이전트 평가에서 몇 주를 잃게 한 실수 7가지와 간단한 수정법

발행

에이전트 평가 점수가 낮거나 그럴듯하게 나와도 모델 탓으로 단정하면 안 됩니다. 테스트가 실제로 실행됐는지, 보상 함수와 분모가 적절한지, 실패 데이터와 실행기가 정확한지 점검해야 하며, 이 글은 평가 오류 7가지와 각 수정 사례를 소개합니다.

NestJS 테스트 모듈의 Provider 교체와 사용법 요약

발행

NestJS의 테스트 모듈은 단순한 mock 저장소가 아니라 실제 애플리케이션과 같은 의존성 주입(DI) 컨테이너를 구성합니다. 글은 provider 교체 방법과 get()·resolve()의 차이, 요청 범위 provider의 컨텍스트 공유, 가드와 파이프를 바꾸는 E2E 테스트 방법을 설명합니다.

결정론적 코어, 비결정론적 셸

발행

Functional Core/Imperative Shell 구조를 결정론적 코어와 비결정론적 셸로 확장해 설명합니다. 외부 세계와 맞닿은 코드를 셸에 모으고 비즈니스 로직을 결정론적으로 분리하면, 순수 함수형 프로그래밍을 쓰지 않아도 테스트 범위와 신뢰도를 높일 수 있다고 제안합니다.

중복처럼 보였던 테스트가 아홉 번째 버그를 잡았습니다

발행

유한한 오답 구현 목록에서 고유한 실패를 만들지 못한 테스트라도, 목록에 새로운 구현을 추가하면 유일한 검출 수단이 될 수 있습니다. 글은 mutation testing 점수와 테스트 제거 기준이 후보 카탈로그와 테스트 하네스에 의존한다는 점을 Python 실험으로 보여줍니다.