'
본문 바로가기
study/Insight

[QA Basics] 비기능 테스트

by meowdule 2025. 9. 9.

 

1. 비기능 테스트 개요

 

비기능 테스트(Non-functional Testing)는
소프트웨어가 올바르게 “동작”하는지가 아니라, “얼마나 잘 동작하는지”를 검증하는 과정입니다.

 

즉, 기능 테스트가 “무엇을 한다”를 확인한다면,
비기능 테스트는 “품질 속성(성능, 보안, 호환성, 안정성 등)”을 검증하는 데 초점을 둡니다.


📌 기능 테스트 vs 비기능 테스트

구분 기능 테스트 비기능 테스트
목적 요구된 기능이 올바르게 작동하는지 확인 성능, 보안, 안정성 등 품질 속성을 확인
관점 “할 수 있는가?” “얼마나 잘 하는가?”
예시 로그인 기능이 동작하는가? 로그인 시 1초 이내 응답하는가? 보안은 안전한가?


📌 비기능 테스트가 중요한 이유

  1. 사용자 경험 보장
    •   기능은 정상이라도 느리거나 불안정하면 품질이 낮음
  2. 서비스 신뢰성 확보
    •   성능, 보안, 안정성은 서비스 지속 가능성과 직결
  3. 리스크 관리
    •   대규모 트래픽, 보안 공격, 다양한 환경에서 문제가 없는지 확인

 

비기능 테스트는 “기능의 유무”가 아니라, “품질의 수준”을 검증하는 필수 활동이다.

 

 

 

 

 

 

2. 성능 테스트 (Performance Testing)

 

성능 테스트는 시스템이 주어진 조건에서 얼마나 빠르고 안정적으로 동작하는지를 확인하는 과정입니다.
단순히 속도만 보는 것이 아니라, 처리량, 응답 시간, 안정성까지 종합적으로 평가합니다.


📌 주요 유형

  1. 부하 테스트 (Load Test)
    •   예상되는 정상 사용량에서 성능 측정
    •   목표: 시스템이 일상적인 트래픽을 감당할 수 있는지 확인
    •   예: 동시 사용자 1,000명 접속 시 평균 응답 시간 2초 이내
  2. 스트레스 테스트 (Stress Test)
    •   시스템 한계치를 넘는 과부하 상황에서 동작 검증
    •   목표: 언제 성능이 급격히 저하되는지, 장애 발생 후 어떻게 반응하는지 확인
    •   예: 동시 사용자 5,000명 접속 시 서버 응답 불가 → 장애 대응 시나리오 점검
  3. 내구성 테스트 (Endurance/Soak Test)
    •   장시간 지속 부하에서 안정성 확인
    •   목표: 메모리 누수, 성능 저하, 리소스 고갈 여부 검증
    •   예: 24시간 연속 접속 유지 시 CPU/메모리 사용량 모니터링


📌 도구 예시

  • JMeter: 오픈소스 성능 테스트 툴
  • LoadRunner: 상용 도구, 대규모 시뮬레이션 지원
  • k6: 개발자 친화적인 성능 테스트 프레임워크

 

성능 테스트는 “빠른가?”를 넘어서,
“얼마나 많은 부하를 안정적으로 견디는가”를 검증하는 과정이다.

 

 

 

 

 

3. 보안 테스트 (Security Testing)

 

보안 테스트는 소프트웨어가 악의적 공격이나 오용으로부터 안전한지를 검증하는 과정입니다.
단순한 기능 동작을 넘어서, 데이터 보호와 접근 제어가 올바르게 이루어지는지 확인합니다.


📌 보안 테스트의 주요 목표

  1. 기밀성(Confidentiality) – 민감 정보가 보호되는가?
  2. 무결성(Integrity) – 데이터가 위·변조되지 않는가?
  3. 가용성(Availability) – 서비스가 지속적으로 접근 가능한가?
  4. 인증/인가(Authentication & Authorization) – 올바른 사용자만 접근 가능한가?


📌 주요 검증 항목

  • 로그인/세션 관리
  • 권한 분리(사용자 권한에 맞는 접근 제어)
  • 데이터 암호화(전송/저장)
  • 입력값 검증(SQL Injection, XSS 방어 등)
  • 취약한 API/엔드포인트 노출 여부


📌 OWASP Top 10 (예시)

OWASP(Open Web Application Security Project)에서 발표하는 웹 보안 취약점 상위 10가지:

 

OWASP Top Ten | OWASP Foundation

The OWASP Top 10 is the reference standard for the most critical web application security risks. Adopting the OWASP Top 10 is perhaps the most effective first step towards changing your software development culture focused on producing secure code.

owasp.org

 


📌 도구 예시

  • OWASP ZAP, Burp Suite → 웹 취약점 스캐닝
  • SonarQube → 코드 정적 분석
  • Kali Linux 툴킷 → 모의 해킹 환경

 

 

 

 

 

 

 

4. 호환성 테스트 (Compatibility Testing)

 

호환성 테스트는 소프트웨어가 다양한 환경에서 일관되게 동작하는지를 검증하는 과정입니다.
사용자가 어떤 기기·브라우저·네트워크를 사용하더라도 문제가 없어야 품질이 보장됩니다.


📌 주요 검증 영역

  1. 브라우저 호환성
    •   Chrome, Edge, Safari, Firefox 등 주요 브라우저에서 정상 동작 여부 확인
    •   예: CSS 깨짐, JavaScript 오류
  2. 운영체제(OS) 호환성
    •   Windows, macOS, Linux, iOS, Android 등 다양한 OS 환경 지원 여부
  3. 디바이스 호환성
    •   PC, 태블릿, 스마트폰 해상도/화면 비율 차이 검증
    •   반응형 UI 및 레이아웃 정상 동작 확인
  4. 네트워크 환경 호환성
    •   3G/5G/Wi-Fi 환경 차이에서 성능 및 안정성 점검
    •   네트워크 단절/지연 상황에서 복구 가능 여부 확인
  5. 하드웨어/플랫폼 호환성
    •   프린터, IoT 기기, 외부 장치 연동 검증
    •   클라우드·가상화 환경 호환성


📌 도구 예시

  • BrowserStack, Sauce Labs → 다양한 브라우저·디바이스 테스트
  • Postman/Newman → API 호환성 검증
  • 가상머신/에뮬레이터 → 다양한 환경 시뮬레이션

 

호환성 테스트는 “사용자 환경의 다양성”을 고려해,
어떤 플랫폼·디바이스·네트워크에서도 일관된 품질을 보장하는 활동이다.

 

 

 

 

 

5. 회귀 테스트 (Regression Testing)

 

회귀 테스트는 코드 변경 후 기존 기능이 여전히 정상 동작하는지 확인하는 과정입니다.
새로운 기능 추가나 버그 수정이 기존 기능에 영향을 주지 않았는지를 검증합니다.


📌 회귀 테스트가 필요한 이유

  1. 변경에 따른 부작용 방지
    •   버그 수정이 다른 기능을 깨뜨릴 수 있음
  2. 지속적인 품질 확보
    •   반복 배포·업데이트 환경(Agile/DevOps)에서 필수
  3. 릴리스 안정성 보장
    •   신규 기능 + 기존 기능이 함께 잘 동작해야 배포 가능


📌 수행 방식

  • 수동 회귀 테스트
    • QA가 핵심 기능 위주로 직접 재검증
    • 초기에는 유용하지만, 규모가 커질수록 비효율적
  • 자동화 회귀 테스트
    • 스크립트로 주요 플로우를 반복 실행
    • 예: 로그인, 결제, 검색 같은 핵심 시나리오 자동화


📌 회귀 테스트와 자동화의 관계

  • 회귀 테스트는 자동화 도입의 최우선 대상
  • 변경이 잦고 반복 검증이 필요한 영역 → ROI 가장 높음
  • CI/CD 파이프라인과 결합 시, 코드 변경 직후 바로 검증 가능

 

회귀 테스트는 “변경 후에도 기존 기능이 안전한가?”를 확인하는 과정이며,
자동화 테스트와 가장 잘 맞는 영역이다.

 

 



 

 

6. 안정성 & 접근성 테스트

 

비기능 테스트의 또 다른 중요한 축은 안정성(Reliability)접근성(Accessibility)입니다.
소프트웨어는 오랫동안 안정적으로 동작해야 하고, 누구나 사용할 수 있어야 품질이 완전합니다.


📌 안정성 테스트 (Reliability Testing)

  • 목표: 장애나 예외 상황에서 시스템이 얼마나 안정적으로 복구되는지 검증
  • 주요 포인트
    • 오류 발생 시 복구 가능 여부 (Failover, Recovery)
    • 장시간 사용 시 리소스 누수 없는지 확인
    • 다운타임 최소화 (MTBF, MTTR 지표 활용)
  • 예시: 서버 프로세스가 중단됐다가 자동 재시작 되는지, 네트워크 단절 후 정상 복구되는지


📌 접근성 테스트 (Accessibility Testing)

  • 목표: 장애인·고령자 등 다양한 사용자가 서비스에 접근 가능한지 확인
  • 검증 기준: WCAG(Web Content Accessibility Guidelines) 준수 여부
  • 주요 포인트
    • 스크린 리더 지원 (대체 텍스트, 시멘틱 태그)
    • 색각 이상 사용자 고려한 색상 대비
    • 키보드 전용 사용자도 조작 가능
  • 도구 예시: Axe, Lighthouse, NVDA(Screen Reader)

 

 

안정성 테스트 → “서비스가 얼마나 오래, 안정적으로 동작하는가?”
접근성 테스트 → “누구나 차별 없이 사용할 수 있는가?”

두 가지 모두 서비스 신뢰성과 사용자 경험을 완성하는 필수 비기능 테스트이다.

 

 

 

 

 

마무리
다음 게시글에서는 QA와 협업에 대해 알아보겠습니다.

 

'study > Insight' 카테고리의 다른 글

[QA Basics] QA 지표와 품질 측정  (0) 2025.09.11
[QA Basics] QA와 협업  (0) 2025.09.10
[QA Basics] 테스트 자동화  (0) 2025.09.08
[QA Basics] 테스트 설계 기법  (2) 2025.09.07
[QA Basics] 테스트 프로세스  (0) 2025.09.06