V model and W model on Software Testing

Dahun Yoo·2021년 10월 24일
0

QA or Test

목록 보기
21/38
post-thumbnail

V 모델과 W 모델에 대해 설명해봅니다.

그 이전에, Waterfall에 대해.

SDLC에서의 전통적인 흐름은, 폭포수 개발방식이라고 할 수 있을 것 입니다.

폭포수 모델(waterfall model)은 순차적인 소프트웨어 개발 프로세스(소프트웨어를 만들기 위한 프로세스)로, 개발의 흐름이 마치 폭포수처럼 지속적으로 아래로 향하는 것처럼 보이는 데서 이름이 붙여졌다.
이 폭포수 모델의 흐름은 소프트웨어 요구사항 분석 단계에서 시작하여, 소프트웨어 설계, 소프트웨어 구현, 소프트웨어 시험, 소프트웨어 통합 단계 등을 거쳐, 소프트웨어 유지보수 단계에까지 이른다.

https://ko.wikipedia.org/wiki/%ED%8F%AD%ED%8F%AC%EC%88%98_%EB%AA%A8%EB%8D%B8

위에서부터 아래로 가는 흐름으로 표현하여 폭포수라고 하는데요, 폭포수 모델의 큰 특징은, 이전단계가 완료되지 않으면 다음 단계를 진행하지 않는다 라고 할 수 있습니다. 즉 이전 단계에서의 산출물이 아직 작성중이거나, 작성되지 않았다면, 이전 단계에서의 산출물을 기반으로 다음 단계가 진행되기 때문에 제대로 이루어질 수 없다는 것입니다.
이것은 거꾸로 올라갈 수 없는 폭포와 같은 형태입니다.

V Model

V모델은 폭포수 모델에 기반하고 있습니다. 좀 더 자세히 설명하자면, 폭포수 모델의 상세내용을 V자 형태로 접은 모양으로 표현한 것이라 할 수 있습니다.

V 모델(V-model)은 소프트웨어 개발 프로세스로 폭포수 모델의 확장된 형태 중 하나로 볼 수 있다. 아래 방향으로 선형적으로 내려가면서 진행되는 폭포수 모델과 달리, 이 프로세스는 오른쪽 그림과 같이 코딩 단계에서 위쪽으로 꺾여서 알파벳 V자 모양으로 진행된다. V 모델은 개발 생명주기의 각 단계와 그에 상응하는 소프트웨어 시험 각 단계의 관계를 보여준다.

V 모델은 소프트웨어 개발의 각 단계마다 상세한 문서화를 통해 작업을 진행하는 잘 짜인 방법을 사용한다. 또한 테스트 설계와 같은 테스트 활동을 코딩 이후가 아닌 프로젝트 시작 시에 함께 시작하여, 전체적으로 많은 양의 프로젝트 비용과 시간을 감소시킨다.
https://ko.wikipedia.org/wiki/V_%EB%AA%A8%EB%8D%B8

테스트 준비작업을, 코딩 이후의 프로덕트를 기반으로 진행하는 것이 아니라, 프로젝트의 초기 단계부터 테스트 계획, 테스트 설계, 테스트 케이스 작성등을 진행합니다.

Verification & Validation

V모델은 V&V라고도 합니다. 왼쪽을 Verification, 오른쪽을 Validation단계라고 할 수 있습니다.

Verification, 검증

명세기반으로 기능을 제대로 구현되가고 있는지, 개발단계를 검증해나갑니다.

  • Requirement Analysis, 요구사항 분석 : 사용자의 Needs를 파악하고 청취하며 요구사항을 분석합니다. 이 단계에서의 내용은 최종적으로 프로덕트가 사용자에게 제공해야할 기능을 포함합니다.
  • System Design, 시스템 설계 : 요구사항 문서를 면밀히 검토하여 개발할 시스템에 대해 분석하고 이해하는 과정을 진행합니다. 이 과정에서 구현이 불가능한 요구사항이 있다면, 사용자에게 앙ㄹ리는 작업도 합니다.
  • Architecture Design, 구조 설계 : 시스템의 구조를 설계합니다. 간략한 기능을 정의하고 모듈간의 Interface관계, 의존성등을 파악하고, ERD 등을 작성하는 단계입니다.
  • Module Design, 모듈 설계 : 각각의 모듈, 함수 수준에 대해 필요한 내용을 작성합니다.

모든 설계를 마치면, 코딩작업에 들어갑니다.
각각의 단계에서 인수 테스트, 시스템 테스트, 통합 테스트, 단위 테스트에 대해 테스트 설계를 진행합니다.

Validation, 유효화

각각의 상위 공정에서 설계한 내용에 맞게 제대로 구현되었는지 확인하는 작업입니다.

  • Unit Test, 단위 테스트 : 이 단계에서는 개발자가 직접 자신이 작성한 코드에 대해 테스트를 진행합니다. Coding convention를 포함하여 모듈단위로 테스트를 진행합니다.
  • Integration Test, 통합 테스트 : 각각의 모듈들을 통합하여, 컴포넌트간의 인터페이스와 상호작용을 테스트 합니다. API Test 등이 해당됩니다.
  • System Test, 시스템 테스트 : 실제 구현된 시스템과 시스템 설계를 비교하는 작업입니다.
  • Acceptance Test, 인수 테스트 : 사용자에게 프로덕트를 전달하기 전, 혹은 사용자가 직접 요구사항에 맞게 구현되었는지 테스트합니다.

V model의 장점

  • 간단하고 명확한 프로세스이기 떄문에 이해하기 쉽고 진행하기도 편합니다.
  • Test행위는 요구사항 정의부터 시작해야하기에, 전체적인 개발사이클이 빨라집니다.
  • 결함을 좀 더 빠른 단계에서 검출할 수 있습니다.

테스트 담당자들은 좀 더 상위 공정에서 테스트 대상의 분석 및 설계, 구현을 진행해야합니다.


W Model


https://shiftasia.com/column/difference-between-v-model-and-w-model-in-software-testing/

W Model은 V Model의 확장개념으로, 단순히 상위 Verification 단계에서 Test준비를 진행하는 것이 아닌, 상위 단계에서부터 Test를 진행합니다.

각각의 단계에서의 산출물들을 대상으로 테스트를 진행합니다.
상위 공정에서 생성되는 문서 산출물에 대해 단순한 오탈자를 포함하여 해당 문서에 대해 Review를 진행하며 Feedback을 진행합니다. Feedback의 형태는 단순한 질문부터 지적까지 다양할 수 있습니다.
상위 공정에서의 Test활동을 통하여 설계/코딩 단계에서 잘못된 요구사항 정의나 작업자의 오인식으로 인하여 결함이 생기는 작업을 방지 합니다.

위 설명만 보면 매우 좋은 것 같습니다만, 이럴 경우 테스트 담당자의 작업량이 증가하여 전체적인 테스트활동에 코스트가 많이 소모될 수 있습니다.

ref

profile
QA Engineer

0개의 댓글