피드로 돌아가기
Dev.toDevOps
원문 읽기
Gherkin 추상화와 Domain Layer 분리를 통한 BDD 유지보수 비용 최적화
3 Things Nobody Tells You About BDD Before Your Cucumber Suite Becomes a Maintenance Nightmare
AI 요약
Context
구현 세부 사항이 포함된 Gherkin 작성으로 인해 Feature 파일이 테스트 스크립트로 전락한 상황 분석. Step Definition 간의 상호 의존성으로 인해 복잡한 Dependency Graph가 형성되며 유지보수 난이도가 급증한 구조적 한계 직면.
Technical Solution
- Gherkin의 역할 정의를 'Implementation' 중심에서 'Behavior' 중심으로 전환하여 시나리오당 라인 수 최소화
- Feature 파일 내 인라인 파라미터를 제거하고 비즈니스 로직을 Step Definition 하위로 캡슐화
- Step Definition 간의 직접 호출 구조를 제거하여 상태 전이로 인한 사이드 이펙트 차단
- Page Object 및 Service Client를 포함한 독립적인 Domain Layer를 구축하여 테스트 로직과 실행 프레임워크 분리
- Step Definition을 Domain Layer를 호출하는 얇은 Wrapper 형태로 재설계하여 Stateless 구조 구현
- 새로운 팀원이 30초 이내에 파악 가능한 수준으로 시나리오 가독성 중심의 최적화 수행
실천 포인트
- Feature 파일 내 UI 인터랙션 단계(Click, Fill 등)가 포함되어 있는지 검토 - Step Definition 내부에서 다른 Step Definition을 import 하여 호출하는 구조 제거 - 모든 구체적인 테스트 데이터와 실행 로직이 Domain Object 또는 Test Data Factory로 이전되었는지 확인 - 기술 문서(README) 없이 Feature 파일만으로 시스템 동작 파악이 가능한지 검증