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

2장 테스트 분류와 테스팅 방법 - 2.3 테스팅 방법

간쥬 2025. 11. 25. 14:45
  1. 개요
  2. 리그레션 테스트
  3. 소프트웨어 생명 주기 모델과 테스트
  4. 위험 기반 테스트
  5. 모델 기반 테스트

2.3.1 개요

현실적인 상황을 고려하여 실제 적용할 수 있는 대표적인 테스트 수행 방법

 

2.3.2 리그레션 테스트

유지보후 단계에서는 다양한 이유로 소프트웨어 변경이 발생

소프트웨어가 변경되었을 때 리그레션 테스트 진행

➡️ 변경이 의도하지 않게 결함을 만들지 않았는지

➡️ 시스템의 기존 요구사항을 만족하는지

각 레벨 테스트 순서대로 리크레션 테스트 수행

 

대표적인 방법 

➡️ Retest-all 전략, 선택적 리그레션 테스트 전략, 테스트 최소화 전략, 테스트 우선 순위화 전략

 

2.3.3 소프트웨어 생명 주기 모델과 테스트

소프트웨어 생명 주기: 소프트웨어 개발 체계의 추상적 표현으로 순차적 또는 병렬적인 일련의 단계

테스트는 이러한 소프트웨어 생명 주기 모델의 특성을 고려하여 수행

 

폭포수 모델

구현이 완료된 후 테스트 시작

요구사항 명세부터 소스 코드까지 모든 자료 존재

검출된 결함을 해결하는 데 많은 비용과 시간이 소용될 수 있음

 

V모델

개발 시작과 함께 테스트도 시작

각 개발 단계에서 발생하는 결함을 검출할 수 있는 테스트 레벨이 존재

동적 테스트와 더불어 개발 산출물에 대한 정적 테스트도 수행

 

진화적 개발 모델

이터레이션과 점진적인 방식으로 개발 진행

핵심 부분 먼저 개발하고 각 구성 요소는 여러 이터레이션을 통해 개선하여 완성

각 이터레이션마다 테스트 수행

각 이터레이션은 순차적 모델처럼 진행되며 각 개발 단계에서 테스트 관련 프로세스 수행

 

애자일 개발 방법론

반복적이면서 점짐적인 개발 방식

일반적으로 테스트 주도 개발(Test-Driven Development, TDD)

➡️ 테스트 케이스를 먼저 작성하고 나중에 코드 작성

지속적 통합: 어느 한 시점에 통합하는 것이 아니라 계속해서 통합을 수행

 

2.3.4 위험 기반 테스트

테스트는 주어진 비용과 일정 내에서 수행되어야 함

테스트 범위를 결정할 때도 비용과 일정, 피처 등을 고려해 테스트 범위를 전체 시스템의 일부로 한정시킬 수 있음

이 경우, 테스트 미수행에 따른 위험 발생 가능성 있음

 

2.3.5 모델 기반 테스트

명세 기반 테스트는 테스트 대상에 대한 기대 동작을 표현하는 일종의 모델을 이용

➡️ 자연어로 표현된 형식, 시각적인 표현 방식, 표 형태 등

➡️ 수작업으로 테스트 입력 및 출력을 결정

모델 기반 테스트는 테스트 절차를 수행할 수 있는 정보가 자동으로 추출될 수 있을 정도로 정형화되고 상세한 모델을 바탕으로 함

테스트 계획에서 테스트 종료까지 대부분의 활동을 자동화 할 수 있음

모델 자체에 존재할 수 있는 다양한 유형의 문제점을 이른 시점에 식별하는 방법

장애가 발생했을 때 많은 비용이 유발되는 자동차, 의료 등 안전 필수 소프트웨어 대상으로 수행됨

테스트의 근간이 되는 모델, 정혀화되고 상세한 테스트 모델을 구축하는 비용이 추가되는 단점이 있음

의사결정표, UML 상태 다이어그램, UML 액티비이 다이어그램