'소프트웨어 공학'에 해당되는 글 1건

  1. 2021.02.16 소프트웨어 개발 모델(V-모델)
소프트웨어 개발 모델 특성
V-모델(순차적 개발 모델) 1. 요구사항 정의 및 분석
2. 시스템 설계
3. 구현
4. 테스팅

등 일련의 단계(과정)을 통해서 소프트웨어 시스템을 개발하는 폭포수 개발 모델(Waterfall model)에 근간을 두고 있다.
테스트는 한번에 진행되는 것이 아니고, 각각의 개발 단계별 테스트 레벨로 진행된다.

위와 같은 쳬계로 개발 단계의 요구사항 분석, 논리 설계, 물리 설계, 프로그램 코딩 등의 4단계의 개발 활동으로 이루어진다.
이어 V-모델에서 제시하는 테스트 레벨은 컴포넌트(단위) 테스팅, 통합 테스팅, 시스템 테스팅, 인수 테스팅으로 분류된다.

소프트웨어 개발 기간 중에 개발 산출물(Work products - 비지니스 시나리오 또는 유즈케이스, 요구 사항 명세, 설계 문서나 코드)로 테스트 레벨에서 테스트 베이시스(Basis)가 된다.

 

V-모델에서 테스팅 개념

개념 의미
테스트 레벨의 의미 앞서 설명한 V-모델에서 제시한 각각의 테스트 레벨은

1. 독립적이여한다.
2. 다른 테스트 계획과 전략으로 진행해야 한다.
3. 수행하는 주체(조직)이 달라야 한다.
4. 적용하는 테스트 기법의 종류와 형태가 상당 부분이 달라야 한다.
5. 별로의 보고를 진행해야 한다.
6. 서로 종송성을 지니기 때문에 하나의 테스트 레벨에서 다른 테스트 레벨로 전달되기 위한 종료 및 시작 조건을 갖춰야 한다.
개발 초기 단계에서 테스팅을 수행한다는 의미 1. 개발 산출물을 리뷰(Review) 형태로 검토하면서 결함을 발견하는 정적 테스팅을 의미한다.(정적 테스팅 기간동안 테스터는 테스팅 관점에서 테스트 케이스를 만들면서 결함을 발견하여 리뷰에 기여 할 수 있다.)
2. 이때 발견한 결함은 동적 테스팅에서 발견할 수 있는 결함과는 다른 종류의 결함들이다.
정적 테스팅의 설계 기법은 결정 테이블 테스팅, 상태전이 테스팅, 유즈케이스 테스팅 등을 활용할 수 있다.
3. 개발 초기의 테스팅으로 개발 후반부에서 발생 가능한 테스팅 비용을 줄일 수 있다. 또한 개발 초기에 발견된 결함은 수정 비용이 비교적 저렴한다.
결함 예방 차원에서의 테스팅이 의미하는 바 위와 같이 "개발 초기 단계에서 테스팅"으로 개발 산출물을 리뷰하거나 조기에 테스트를 설계함으로써 소프트웨어의 결함을 사전에 예방하는 효과를 얻게 된다.
V&V(Verification and Validation)의 의미 베리피케이션과 밸리데이션은 소프트웨어 개발 수명주기의 모든 단계엥서 수행될 수 있다.
Verification은 개발 단계의 산출물이  그 단계의 초기에 설정된 조건을 만족하는지 여부를 검증하는 프로세스를 의미한다.(리뷰를 통해서 검증하거나, 테스트 레벨의 목적에 맞는 동적 테스닝을 통해서도 검증할 수 있다.)
Validation은 개발 중에 또는 개발단계 막바지에 명시된 또는 명시되지 않았지만 사용자의 관점에서의 요구사항이 만족하는지를 평가하는 프로세스를 의미한다.
Posted by 테리
: