도서 및 강의/소프트웨어 테스트 전문가(CSTS) 가이드

6장 소프트웨어 생명 주기 모델과 테스트 - 6.1 순차적 개발 모델

간쥬 2025. 11. 26. 07:06

소프트웨어 생명 주기

소프트웨어를 개발하는 체계에 관한 추상적 포현으로 일련의 단계로 구성되어 있음

보편적으로 요구사항을 수집 후 문제를 분석, 설계 및 구현하는 단계를 거침

반드시 이와 같은 절차를 따를 필요는 없이 규모나 특성에 맞게 다양한 방식으로 개발 가능

ex) Code-and-Fix 모형: 소규모 프로그램 개발하는 경우 별도의 요구사항 분석 없이 바로 코딩하고 별도의 테스트 없이 디버깅 작업으로 수행

 

6.1 순차적 개발 모델

폭포수 모델

 

모든 소프트웨어 생명 주기 모형 중에서 가장 오래된 전통적인 모형으로 체계적이고 순차적으로 접근

요구사항이 개발자에게 익숙한 경우, 요구사항의 변경이 빈번하지 않은 경우에 적합

개발 중심 모델

 

요구사항 분석

개발하고자 하는 요구사항을 수집하고 분석하여 명세화 하는 단계

산출물 ➡️ 요구사항 명세

 

구조 설계

전체적인 구조 결정하는 단계로 시스템의 요소들 간의 의존성을 파악하여 상호 연결

산출물 ➡️ 시스템의 전체적인 아키텍처를 보여주는 설계 명세

 

상세 설계

각 모듈의 알고리즘 세부 사항을 결정

산출물 ➡️ 모듈 명세를 포함하는 상세 설계 명세

 

코딩

기계가 해독할 수 있는 형태로 변환

산출물 ➡️ 프로그램

 

테스팅

완성된 시스템의 결함을 검출하기 위한 테스트 수행 단계

 

테스트 관점에서 볼 때

개발과정을 거치면서 소프트웨어에 대한 문서와 정보가 많이 산출되어 테스트 작업에 필요한 정보를 쉽게 획득 가능

하지만 기본적으로 코딩 이후 마지막 단계이기 때문에 결함을 발견하여 수정할 때 비용과 시간이 훨씬 많이 소요됨

특히 구조 설계상의 문제라면 개발 완료 시점에는 수정하거나 변경하는게 어려울 수도 있음

 

V모델

테스트를 개발과 동등하게 취급하는 모델

개발에 관련된 단계들과 테스트에 관련된 단계들을 구분

테스트 활동은 개발이 시작됨과 동시에 시작, 예를 들면 요구사항을 수집하는 동안 인수 테스트 계획을 수립

계획을 수립하기 위해 그 전 테스트가 종료되길 기다릴 필요 없음

개발 단계에서 나오는 산물출을 이용해 테스트에 필요한 정보 획득

동적 테스트 외에도 개발 산출물에 대한 정적 테스트도 수행

테스트 수행은 코딩 단계 완료된 후에 진행

 

검증(Verification)

시스템이 명세를 만족하는지 검사하는 프로세스

시스템을 올바르게 만들고 있는지 판별하는 과정

 ➡️ 설계서대로 올바르게 만들었는가?

 

확인(Validation)

시스템이 사용자의 요구사항을 만족하는지 검사하는 프로세스

올바른 시스템을 만들고 있는지 판별하는 과정

 ➡️ 만들어진 시스템이 사용자에게 유용한가?

 


 

폭포수 모델 vs V모델

폭포수 모델 V모델
개발 중심 개발과 테스트를 동등하게 취급
코딩 완료 후 테스트 단계 돌입 개발과 동시에 테스트 계획 및 설계 활동 시작
코딩 완료 후 테스트 코딩 완료 후 테스트