행동 주도 개발 (Behavior-Driven Development, BDD)이란?BDD는 애자일 개발 방법론의 하나로, 개발자, 테스터, 비기술 담당자들이 협력해서 사용자 중심의 소프트웨어를 만들기 위한 방법BDD에서는 사용자의 행동을 중심으로 요구사항을 정의하고, 이해하기 쉬운 자연어 형식(예: Gherkin 문법 - Given, When, Then)으로 시나리오를 작성 예시: 은행 계좌 인출 기능Feature: 은행 계좌 인출 Scenario: 계좌에 충분한 잔액이 있을 때 인출 성공 Given 계좌 잔액이 100,000원이다 When 30,000원을 인출하면 Then 인출이 성공해야 한다 And 계좌 잔액은 70,000원이 되어야 한다 Scenario: 계좌에 잔액이 부족..
https://microsoft.github.io/code-with-engineering-playbook/automated-testing/e2e-testing/ E2E Testing - Engineering Fundamentals PlaybookE2E Testing End-to-end (E2E) testing is a Software testing methodology to test a functional and data application flow consisting of several sub-systems working together from start to end. At times, these systems are developed in different technologies by dmicro..
✅ 스냅샷 테스트란?스냅샷 테스트는 **특정 시점의 출력 결과(스냅샷)**를 저장해두고, 이후 테스트 실행 시 출력 결과가 바뀌지 않았는지 비교하여 변경 여부를 감지하는 테스트 방식입니다.쉽게 말해:📸 "지금 화면(또는 출력 결과)을 사진처럼 저장해두고, 나중에 다시 찍은 사진과 비교해서 변했는지 확인하는 것"입니다. ✅ Best Practices (권장 사항)스냅샷을 코드처럼 다뤄라스냅샷 파일도 커밋하고 코드 리뷰 대상에 포함시켜야 합니다.결정적인(deterministic) 테스트를 작성하라항상 같은 입력에 대해 같은 결과가 나오도록 Date, Math.random 등을 조작하세요.테스트 이름을 구체적으로 지어라예: should render Alan Turing ✅ 자주 묻는 질문CI 환경에서 자동..
ARIA(Accessible Rich Internet Applications)는 접근성을 높이기 위해 웹 요소에 의미(semantics)를 부여할 수 있게 해주는 기술입니다.ARIA는 크게 세 가지로 나뉩니다:Roles (역할): UI 요소의 종류를 정의States (상태) & Properties (속성): 그 역할에 부가적인 정보나 동작을 부여🔧 사용 방법 요약웹 요소가 이미 적절한 의미를 가진 HTML 태그일 경우에는 추가적인 ARIA 역할을 부여하지 않아도 됩니다.필요한 경우에만, 적절한 ARIA 역할과 상태/속성을 생명 주기 동안 요소에 부여해야 합니다.ARIA 속성은 DOM 구조를 변경하지 않으며, 단지 브라우저의 접근성 API에 추가 정보만 제공합니다.🧩 주요 역할(Role) 종류✅ 위젯 ..
https://testing-library.com/docs/queries/about/#priority About Queries | Testing LibraryOverviewtesting-library.com testing-library에서 요소를 찾는 방식의 우선순위🔵 1. 접근 가능한 쿼리 (Accessible Queries)→ 시각 사용자 + 보조기기 사용자 모두를 고려한 방식가장 권장되는 방법들입니다:메서드설명getByRole역할(예: button, heading) 기반 쿼리. name 옵션을 함께 써서 필터링 가능. 가장 권장됨.getByLabelText라벨을 기반으로 폼 요소 찾기 (예: Name)getByPlaceholderText폼 필드에 placeholder가 있을 때 사용 (라벨보다 우..
https://testing-library.com/docs/guiding-principles/ Guiding Principles | Testing Library[The more your tests resemble the way your software is used, the moretesting-library.comtesting-library의 원칙에 보면 렌더링 도구는 DOM 노드와만 상호작용해야 한다라는 원칙이 있다. 이게 무슨말인지 알아보자. 🧩 컴포넌트 인스턴스 vs. DOM 노드✅ DOM 노드 중심의 테스트 (권장 방식)사용자가 실제로 브라우저에서 보는 텍스트, 버튼, 입력창 등과 상호작용하는 방식Testing Library는 주로 이런 식으로 테스트합니다:render()const userna..
https://techblog.woowahan.com/17404/ 코드와 함께 살펴보는 프론트엔드 단위 테스트 – Part 1. 이론 편 | 우아한형제들 기술블로그"테스트 코드 작성은 파일을 만들어서 한 글자 쓰기 전까지 엄청 귀찮다." from 언젠가 내가 데일리 스크럼에서 한 말 개발자들에게 테스트 코드 작성은 해야 하지만 손이 잘 가지 않는 숙제 같은techblog.woowahan.com FIRST 원칙, DAMP하게 작성, given/when/then사용 목적에 맞게 작성- 라이브러리를 검증하지 말고, 사용자라고 생각하고 사용자 관점에서 검증하라.- 설명은 간결하게. 명세 위주로. 그 자체로 명세역할을 수행하도록. (숫자에 대한 설명 : 3,4 로 시작하는 X. 2000년이후의 주민번호 뒷자리 ..
Spring Cloud를 사용하여 간단한 마이크로서비스 아키텍처를 생성하는 방법을 보여드릴 것입니다. 이 아키텍처는 서비스 디스커버리를 위해 Eureka를, 클라이언트 측 로드 밸런싱을 위해 Ribbon을, 그리고 외부 요청에 대한 단일 진입점 역할을 하는 API 게이트웨이로 Zuul을 포함합니다.이 첫 번째 파트에서는 다음 내용을 다룰 것입니다.Eureka 서버 설정 및 실행간단한 마이크로서비스 생성 및 Eureka 서버에 등록Zuul API 게이트웨이 설정 및 Eureka를 통해 마이크로서비스로 요청 라우팅1. Eureka 서버Eureka는 Netflix에서 개발한 서비스 디스커버리 서버입니다. 마이크로서비스 인스턴스는 Eureka 서버에 스스로를 등록하고, 다른 서비스는 Eureka 서버를 통해 등..