[SW테스팅] 소프트웨어 개발 수명주기와 테스팅

ACAI BERRY DEVELOVER·2023년 8월 20일
0
post-thumbnail

2.1 소프트웨어 개발 수명주기 모델

소프트웨어 개발 수명주기 모델은 소프트웨어 개발 프로젝트의 각 단계에서 이루어지는 활동 유형과 이런 활동이 서로 어떻게 논리적 또 순차적으로 연결되는지 보여준다.
여러가지 소프트웨어 개발 수명주기 모델이 있으며, 각각 다른 테스팅 접근법을 요구한다.

학습 목표 : 소프트웨어 개발 수명주기에서의 소프트웨어 개발 활동과 테스트 활동의 관계를 설명할 수 있다.

2.1.1 소프트웨어 개발과 소프트웨어 테스팅

테스터에게는 일반적으로 많이 사용되는 소프트웨어 개발 수명주기 모델을 잘 이해하는 것은 테스트 활동을 위해 필수적이다.

모든 소프트웨어 개발 수명주기 모델에 적용하기 좋은 테스팅의 특성은 다음과 같다.

  • 모든 개발 활동은 그에 상응하는 테스트 활동이 있다.
  • 각 테스트 레벨은 그 레벨에 맞는 구체적인 목적을 갖는다.
  • 주어진 테스트 레벨에 맞는 테스트 분석과 설계는 상응하는 개발 활동이 이루어지고 있는 동안 시작해야 한다.
  • 테스터가 요구사항과 설계의 정의와 개선을 위한 대화에 참여하고, 작업 산출물 (ex: 요구사항, 설계, 사용자 스토리 등)의 초안이 나오는 즉시 리뷰에 참여한다.

어떤 소프트웨어 개발 수명주기 모델을 선택하더라도 테스팅을 초기에 시작하면 시간과 비용을 절약할 수 있다는 테스트 원리에 따라, 테스트 활동은 수명주기 초반에 시작해야 한다.

실러버스에서는 대표적으로 소프트웨어 개발 수명주기 모델을 2개로 분류한다.

  • 순차적(sequential) 개발 모델
  • 반복적 점진적(iterative and incremental) 개발 모델

📖 순차적 개발 수명주기 모델

순차적 개발 모델은 소프트웨어 개발 프로세스를 1차원적 선형(linear)의 순차적 활동으로 설명한다. 순차적 개발 모델의 예시는 다음이 있다.

  • 폭포수 모델
  • V-모델

폭포수 모델 : 개발 활동(ex:요구사항 분석, 설계, 코딩, 테스팅)이 순차적으로 이루어진다. 이 모델에서의 테스트 활동은 모든 개발활동을 완료한 후에 이루어진다.

v-모델: 테스팅을 초기에 시작하면 좋다는 원리를 토대로 테스트 프로세스를 전반적인 개발 프로세스에 통합한다. 또한, V-모델은 대응하는 각 개발 단계에 테스트 레벨을 부여함으로써 조기 테스팅을 좀 더 적극적으로 구현하고 있다.

순차적 개발 모델은 완성된 기능 세트를 포함한 소프트웨어를 배포할 수 있지만, 일반적으로 이해관계자와 사용자에게 배포하기까지 몇 개월 또는 몇 년이 걸린다.

📖 점진적 반복적 개발 수명주기 모델

점진적 개발은 요구사항 정의, 시스템 설계, 구축, 테스팅을 조각으로 나눠서 진행한다. 따라서 소프트웨어 기능은 점진적으로 늘어나게 된다. 이런 기능 증분의 크기는 다양하게 설정할 수 있다.

반복적 개발은 기능 집합을 종종 고정된 기간의 일련의 주기 안에서 같이 명시, 설계, 구축, 테스트할 때 발생한다. 반복주기에는 전체 프로젝트 범위에 대한 변경이나 기존 반복주기 동안 개발한 기능에 대한 수정이 포함될 수 있다.
각 반복주기에서는 전체 기능 세트 중 일부의 기능을 하는 소프트웨어를 만들어내고 소프트웨어 기능은 반복주기 횟수가 늘어남에 따라 점차 늘어나게 되고 완성된 소프트웨어가 배포되거나 개발이 중단될 때까지 진행된다.

대표적인 예로는

  • 레셔널 통합 프로세스
  • 스크럼
  • 칸반
  • 나선형
    나선형개발모델

이런 모델을 활용해 컴포넌트, 시스템을 개발 시 전반적인 개발 과정에서 테스트 레벨을 중첩 혹은 반복적용하는 경우가 많아진다.

이상적으로는 각 기능의 배포 시점이 가까워짐에 따라 여러 테스트 레벨에서 테스트되는 것이다. 지속적인 전달 혹은 배포를 활용하는 팀도 있는데, 두 가지 모두 릴리스 파이프라인에 속한 여러 테스트 레벨에 대해 상당한 자동화 구현을 요구한다.

이러한 방법을 활용하는 개발 방법론 다수는 자기조직적인 팀 개념도 수용하고 있는데, 이 개념으로 인해 테스팅 작업을 편성하는 방법과 테스터와 개발자 간의 관계에도 변화가 일어날 수 있다.

소프트웨어 증분은 시스템이 커짐에 따라 리그레션 테스팅의 중요성도 증가하게 된다.

순차적 모델과 다르게 반복적 점진적 모델은 사용 가능한 소프트웨어를 몇 주, 또는 며칠 만에 전달할 수 있다. 다만, 전체 요구사항을 충족하는 제품은 몇 개월 또는 몇년에 걸쳐 전달하게 된다.

profile
쓸때 대충 쓰지 말고! 공부하면서 써!

0개의 댓글