brunch

You can make anything
by writing

C.S.Lewis

by 이지원 Oct 01. 2022

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

소프트웨어 테스팅

소프트웨어 테스팅이란 무엇일까요? 우선 소프트웨어가 최종 사용자에게 전달되기 위한 과정인 소프트웨어 개발 수명 주기(Software Development Life Cycle, SDLC)에 대해 알아보겠습니다.

소프트웨어 개발 수명 주기(SDLC)는 소프트웨어 개발에 필요한 활동을 뜻합니다. 예를 들어, 특정 시장 공략을 위해 준비된 아이디어가 있습니다. 아이디어에는 제품이 출시되었을 때 어떠한 모습을 갖춰야 할지에 대한 소프트웨어 요구사항이 담겨있습니다. 요구사항에는 기능적인 측면뿐 아니라 디자인 요소도 포함되어 있습니다. 카카오톡과 같은 모바일 앱을 개발하기 위해선 상대방 사진과 상태 메시지를 볼 수 있는 프로필 기능이 있어야 합니다. 대화가 가능한 채팅 기능도 필요합니다. 그것들이 기술적으로 어떻게 동작하며 메시지 수신/발신에 따른 알림 색상은 무엇으로 할지에 대한 요구사항이 필요합니다.



이러한 요구사항을 바탕으로 제품(또는 기능)을 고객에게 선보이기 위한 활동(기획, 개발, 디자인, 테스트)이 바로 SDLC입니다. SDLC에는 순차 모델과 반복 및 증분 모델이 있는데요. 순차 모델 중 폭포수 모델부터 알아보겠습니다.

예를 들어, 요구사항을 기획합니다. 기획이 끝나면 디자인합니다. 디자인이 끝나면 개발을 시작합니다. 개발이 끝나면 테스트 후 버그를 수정합니다. 이렇듯 폭포수 모델은 이전 단계를 완료할 때까지 어떠한 단계도 시작하지 않는 것이 큰 특징입니다.



위 예시처럼 폭포수 모델은 선형 순차 흐름으로 소프트웨어를 개발합니다. 이론상으로는 이전 단계가 만약 디자인이라면, 디자인 완료 전까지 개발을 시작하지 않습니다.

V 모델은 폭포수 모델의 확장 형태인데요. 개발 주기의 모든 단계에 대응하는 단위, 통합, 시스템, 인수 테스트 단계가 있는 것이 큰 특징입니다. 개발 단계별 대응하는 테스트 단계는 병렬로 계획할 수 있습니다.



여기까지 순차 모델인 폭포수 모델과 V 모델을 알아보았습니다. 이와 다른 개념인 반복 및 증분 모델에 대해 알아보겠습니다.

증분 모델은 소프트웨어를 점진적으로 개발하는 것을 의미합니다. 예를 들어, 요구사항 수집, 디자인, 설계하여 개발 후 테스트합니다. 소프트웨어 일부를 완성시킵니다. 이렇듯 점진적으로 완료해가며 최종 사용자에게 선보입니다.



반복적이고 점진적인 모델인 스크럼에는 스프린트가 있습니다. 요구사항을 수집하고 이를 정해진 기간 안에 마무리하는 활동인데요. 순차 모델에 비해 변화에 요구되는 비용이 적습니다. 또한 개발 과정에서 고객 피드백을 얻기 쉽습니다. 매 반복마다 상대적으로 작은 변경이 이뤄지기 때문에 순차 모델보다 테스트 및 디버그가 쉬울 수 있습니다. 하지만 진행 과정이 순차 모델에 비해 명확하지 않고 시스템의 완성도가 어느 정도인지 측정하기 어려운 단점이 있습니다.



이번 장에서는 소프트웨어 개발 수명 주기에 대해 알아보았습니다. 다음 장에서는 정적 테스팅과 동적 테스팅에 대해 알아보겠습니다.

매거진의 이전글 10화 블랙박스 테스트,이제 아무나 할 수 없습니다
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari