패스잇
개발 문화 · 협업 · 심화

TDD/BDD는 주로 기능 요구사항(Functional Requirements)에 초점을 맞추는 경향이 있습니다. 성능, 보안, 확장성 등 비기능 요구사항(Non-functional Requirements)을 TDD/BDD 프로세스 내에서 효과적으로 테스트하고 검증하기 위한 구체적인 전략이나 접근 방식은 무엇입니까?

힌트 · Acceptance Criteria 확장, 특정 도구 연동, 성능 테스트 자동화, 보안 테스트 케이스 작성 등 비기능 요구사항을 테스트로 정의하는 방법을 설명해야 합니다.

성능 프로파일링보안 취약점 분석스트레스 테스트시나리오 기반 테스트계약 테스트

모범답안

TDD/BDD가 기능 요구사항에 집중하는 경향이 있는 건 사실입니다. 비기능 요구사항을 효과적으로 테스트하려면 몇 가지 전략이 필요합니다.

먼저, 인수 조건(Acceptance Criteria)을 확장해야 합니다. 단순히 기능 동작 여부뿐 아니라 성능 목표, 보안 제약 조건 등을 명시하는 거죠. 예를 들어 "로그인 기능은 1초 이내에 완료되어야 한다"처럼 구체적인 지표를 포함하는 겁니다.

다음으로, 비기능 테스트를 자동화합니다. 성능 테스트는 JMeter나 Gatling 같은 도구를 활용해 부하를 주고 응답 시간을 측정할 수 있습니다. 보안 테스트는 OWASP ZAP 같은 도구를 연동하여 취약점을 자동으로 검사할 수 있습니다.

마지막으로, 시나리오 기반 테스트를 활용합니다. 실제 사용 환경과 유사한 시나리오를 구성하여 스트레스 테스트나 내구성 테스트를 수행하는 거죠. 이를 통해 시스템의 안정성과 확장성을 검증할 수 있습니다. 계약 테스트를 통해 API 변경이 기존 시스템에 미치는 영향을 사전에 파악하는 것도 좋은 방법입니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 테스트 (TDD / BDD) 면접 질문

← 테스트 (TDD / BDD) 면접 질문 전체 보기