본문 바로가기

자격증/CSTS

Part01. 테스트 개요(제6장 소프트웨어 생명 주기 모델과 테스트)

제6장 소프트웨어 생명 주기 모델과 테스트

- 소프트웨어 생명 주기 : 소프트웨어를 개발하는 체계에 관한 추상적 표현. 순차적 또는 병렬적인 일련의 단계로 구성

 

6.1 순차적 개발 모델

[폭포수 모델]

폭포수 모델

- 개발 중심 모델로, 테스트를 하나의 개발단계로만 간주

- 요구사항 분석 : 개발하고자 하는 소프트웨어에 대한 요구사항을 수집하고 문제를 이해 및 분석하여 명세화하는 단계. 주요 산출물로는 요구사항 명세

- 구조 설계 단계 : 소프트웨어의 전체적인 구조를 결정하는 단계. 주요 산출물로는 설계 명세

- 상세 설계 단계 : 각 모듈의 알고리즘 세부 사항, 구체적인 데이터 표현, 루탄과 데이터 간의 인터페이스 결정. 주요 산출물은 상세 설계 명세

- 코딩 : 프로그래밍 언어 등을 사용하여 실제 시계가 해독할 수 있는 형태로 변환하는 단계. 주요 산출물은 프로그램

- 테스팅 : 완성된 시스템의 결함을 검출하기 위체 테스트를 수행하는 단계

 

[V-모델]

V-모델

- 개발이 시작됨과 동시에 테스트 계획 및 설계에 필요한 활동이 시작

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


6.2 진화적 개발 모델

[진화적 개발 모델]

진화적 개발 모델

- 이터레이션과 점진적 개발 원칙에 바탕을 둠

- 시스템의 구성요소 중 핵심 부분을 개발한 후, 각 구성요소와 추가 요구사항을 여러 이터레이션을 통해 개선 발전시켜 최종 완성품 개발

 

 

[나선형 모델]

나선형 모델

- 요구사항이 개발 초기에 완전하게 정의되어 있지 않고 부분적으로 정의된 경우에 반복적으로 요구사항을 정제하고 확장하는 과정을 사용자가 받아들일 수 있는 완전한 시트메이 개발될 때까지 반복


6.3 애자일 개발 모델

[애자일 선언]

  • 사람 및 상호 의사 교환이 프로세스나 도구보다 우선한다.
  • 동작하는 소프트웨어가 포괄적인 문서보다 우선한다.
  • 고객과의 협력이 계약 협상보다 우선한다.
  • 변화에 반응하는 것이 계획을 따르는 것보다 우선한다.

애자일 방법에서의 IDD

-반복적이면서 점진적인 개발 접근 방식(IDD) : 반복적이면서 점진적인 개발 접근 방식

 

TDD 프로세스

- 테스트 주도 개발 (TDD) : 프로그램에 대한 테스트 케이스를 먼저 작성하고, 코드를 나중에 작성

- 리팩토링 : 기능을 변경하지 않고 코드의 내부 구조를 개선하는 작업

- 지속적 통합 : TDD와 더불어 애자일 개발에서 중요한 실천 규칙. 지속적으로 통합을 수행하는 것

  • 통합 지연에 따른 비용 증가를 막을 수 있다.
  • 빠른 결함 발견으로 비용을 감소 할 수 있다.
  • 항상 빌드 가능한 소프트웨어 버전이 있기 때문에 소프트웨어 품질에 대한 확신이 있다.