certification/정보처리산업기사

[SW] V-모델과 테스트 레벨

gaing 2024. 10. 19. 22:39

V-모델(V-Model)

소프트웨어 개발 생명 주기(SDLC) 모델 중 하나로,각 단계별로 개발자 관점에서의 공정 과정상 검증과 사용자 관점에서의 최종 산출물에 대한 확인을 지원하기 위한 테스트 모델
  • V-모델은 폭포수 모델(Waterfall Model)의 발전된 형태로, 단계별 테스트를 강조하는 것이 특징이다.

테스트 레벨(Test Level)

소프트웨어 개발 과정에서 각 단계에 맞게 수행되는 테스트의 수준
  • 함께 편성되고 관리되는 테스트 활동의 그룹이다.
  • 프로젝트에서 책임과 연관되어 있다.
  • 각각의 테스트 레벨은 서로 독립적이다.

V-모델과 테스트 레벨

 

단위 테스트(Unit Test)

소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춘 테스트
  • 사용자의 요구사항을 기반으로 한 기능성 위주의 테스트를 수행한다.
  • 명세 기반 테스트(블랙박스 테스트)와 구조 기반 테스트(화이트박스 테스트)로 나누어지지만, 주로 구조 기반 테스트 위주로 수행한다.
    • 단위 테스트는 소프트웨어의 가장 작은 단위를 개발자 관점에서 검증하는 과정으로, 내부 구조를 세밀하게 테스트하는 것이 중요하기 때문이다.
  • 코드의 세부 동작을 검증하며, 테스트 자동화 도구를 이용하여 신속하게 진행할 수 있다.
  • ex. 특정 함수가 예상한 출력값을 정확히 반환하는지 테스트

 

통합 테스트(Integration Test)

소프트웨어 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 체계적인 테스트

 

  • 여러 단위가 통합되었을 때, 상호작용이 올바르게 이루어지는지 확인한다.
  • 단위 테스트가 끝난 모듈 또는 컴포넌트 단위의 프로그램이 설계 단계에서 제시한 애플리케이션과 동일한 구조와 기능으로 구현된 것인지를 확인하는 테스트이다.
  • ex. 로그인 모듈과 사용자 관리 모듈이 정상적으로 연동되어 작동하는지 테스트

 

시스템 테스트(System Test)

통합된 단위 시스템의 기능이 사용자의 요구사항에 맞게 동작하는지 확인하는 테스트
  • 모든 모듈이 통합된 완전한 시스템을 대상으로 테스트한다.
  • 독립된 테스트 팀이나 품질 관리팀이 주로 수행한다.
  • 기능적 요구사항과 비기능적 요구사항(성능, 보안 등)이 모두 충족되는지를 확인하는 테스트이다.
  • ex. 전자상거래 시스템에서 주문, 결제, 배송 모듈을 포함한 전체 시스템이 정상적으로 작동하는지 테스트

 

인수 테스트(Acceptance Test)

최종 사용자와 업무의 이해관계자 등이 테스트를 수행함으로써 개발된 제품에 대해 운영 여부를 결정하는 테스트
  • 최종 사용자 또는 고객이 소프트웨어를 테스트하며, 비즈니스 요구가 모두 충족되었는지를 평가한다.
  • 소프트웨어의 실제 사용 환경에서 사용자 시나리오를 기반으로 테스트하며, 통과하면 시스템이 최종적으로 배포된다.
  • ex. 사용자가 소프트웨어를 사용하여 모든 기능을 시험한 후, 그 결과가 비즈니스 요구사항을 만족하는지 테스트
종류 설명
알파 테스트
(Alpha Test)
선택된 사용자(회사 내의 다른 사용자 또는 실제 사용자)가 개발자 환경에서 통제된 상태로 개발자와 함께 수행하는 인수 테스트
베타 테스트
(Beta Test)
실제 환경에서 일정 수의 사용자에게 대상 소프트웨어를 사용하게 하고 피드백을 받는 인수 테스트