본문 바로가기
CSTS (일반등급)

CSTS 2장 테스트 분류와 테스팅 방법

by record2840 2025. 5. 22.

테스트 레벨에 의한 분류

1) 컴포넌트 테스트 : 단위 모듈이 테스트 대상
2)
통합 테스트 : 단위 모듈간의 통합에 초점.
                         시스템 내부 구성 모듈과 이들 간의 관계를 정의한 구조 설계 명세서를 바탕으로 테스트 진행
3)
시스템 테스트: 전체 시스템을 대상으로 테스트. 요구사항 명세서에 명시된 방식대로 시스템이 동작 체크
     
모듈들을 통합하여 완전한 시스템이 구성될 때 개발자가 수행하는 테스트 시스템 명세에 맞게 시스템이 구현되었는지 체크
4)
인수 테스트: 고객/사용자의 관점에서 고객이 기대하는 방식으로 소프트웨어가 동작하는지 확인
   
결함 검출보다는 사용자 관점에서 요구사항에 맞게 개발되었는지를 확인하는 테스트

 

개발순서
필요기대 인수 테스트 테스트 순서
요구분석 시스템 테스트
구조설계 통합 테스트
상세설계 컴포넌트 테스트
구현
V 모델

 

테스트 유형에 의한 분류 : 기능 테스트와 비기능 (테스트 ISO 29119 표준)
기능테스트: 기능 요구사항 측면의 결함 검출 및 충족 여부 확인을 목적, 모든 테스트 수준(컴 통 시 인)
비기능테스트: 성능 보안성, 신뢰성 등 품질 요구사항 측면의 검출 및 충족 여부 확인을 목적으로 한다.

 

ISO 25010 품질 모델 (외우기)

주특성 부특성
기능 적합성 완전성, 정확성, 적절성(타당성) 
성능 효율성  시간 행동(Time-behavior), 자원 활용, 수용성(Capacity) 
호환성  공존성, 상호운영성 
사용성 타당성 식별력, 학습성, 운영 용이성, 사용자 오류 보호, 사용자 인터페이스 미학, 접근성
신뢰성 성숙성, 가용성, 장애 허용성(결함 허용성), 복구성(회복 가능성)
보안성 기밀성, 무결성, 부인방지, 책임성, 인증성(진본성)
유지보수성 모듈성, 재사용성, 분석성, 변경 용이성, 테스트 용이성
이식성 적응성, 설치 용이성, 대체 용이성

-  품질 특성은 소프트웨어가 충족해야 하는 요소이며, 기능 요구사항과 더불어 소프트웨어 요구사항의 한 유형이다.

- 굵게 표시된 것은 기출문제  보기로 나옴 

 

테스트 설계 기법에 따른 분류

정적테스트
(소프트웨어 실행 X)
리뷰 관리리뷰
기술리뷰
인스펙션

워크쓰루
감사
정적 분석 코딩 표준
복잡도 측정
자료 흐름 분석
동적테스트
(소프트웨어 실행 O)
명세기반테스트
(
소스코드 O)
동등 분할
분류 트리 기법
경계값 분석
신텍스 테스트
조합 테스트
상태 전이 테스트
인과 그래핑
결정표 테스트
시나리오 테스트
구조 기반 테스트
(
소스코드 X)
문장 테스트
결정 테스트
조건 테스트
결정/조건 테스트
다중 조건 테스트
변형 조건/결정 테스트 (MCDC)
기본 경로 테스트
경험 기반 테스트 오류 추정
탐색적 테스트

 

정적 테스트 : 테스트 대상을 실행하지 않는 방식으로 테스트 수행
 
리뷰 : 소프트웨어의 결함 검출, 프로젝트 점검하기 위한 활동, 전문가 그룹이 수행.
        
) 관리 리뷰, 기술 리뷰, 인스펙션(Inspection), 워크쓰루(Walk-through) 감사(Audit)

 

 리뷰 유형 5가지 (기출, 자주)
① 관리리뷰: 프로젝트 진행 상황에 대한 검토를 바탕으로 일정, 인력, 범위 등에 대한 통제 및 의사 결정을 지원
② 기술 리뷰: 정의된 계획 및 명세를 준수하고 있는지
③ 인스펙션: 문제(Anomaly)를 식별하고 문제에 대한 올바른 해결(Resolution)을 검증
④ 워크쓰루: 문제를 식별하고 더 나아가서 대안 조사, 개선 활동, 학습 기회 제공을 수행한다.
⑤ 감사 : 객관적인 표준과 규제에 대한 준수를 독립적(외부에서)으로 평가

 

정적 분석
산출물(주소 소스 코드)의 구조적 속성을 이용. 자동화된  방식으로 도구에 의해서 수행
정적 테스트 정북 분석 유형 (3가지) (기출, 자주)
  ┌ 코딩 표준 : MISRA-C(C++)의 코딩 표준에 대한 준수 여부 검사
  ├ 복잡도 측정: 사이클로메틱 복잡도(=순환 복잡도), 프로그램의 복잡도 측정
  └ 자료 흐름 분석: 프로그램 자료 흐름에 이상(Anomaly) 존재 여부 분석

 

동적 테스트
테스트 대상을 실행하여 결함을 검출. 적절한 입력값 즉, 테스트 케이스를 결정해야 한다.
모든 상황을 테스트하기 위한 소프트웨어 TC를 준비하기란 현실적으로 불가능
존재할 수 있는 결함을 누락하지 않으면서도 테스트 비용을 절감하려면 가능한 적은 수의 테스트 케이스를 사용하도록 설계하는 것이 중요하다.

 

오류 추정 (주관식)
개발자가 범할 수 있는 실수를 추정하고 이에 따른 결함이 검출되도록 TC를 설계
경험과 직관을 바탕으로 개발자가 범할 수 있는 실수를 나열하고, 해당 실수에 따른 결함을 노출하는 테스트수행
직관적이고 상황에 따라 적합한 방식으로 수행
) 필수 입력, 입력 항목의 길이, 입력항목의 형식, 입력값의 명시적 제약사항, 입력값의 묵시적 제약사항

 

탐색적 테스트 (기출)
문서화 없이 해당 테스트를 바로 수행한다. 테스트 대상에 대한 이해, TC 설계, 테스트 실행을 병행한다.
테스터의 지식, 경험이 중요
자동화 도구를 통하여 테스트 로그 및 테스트 결과 등이 자동으로 생성될 수 있다.
탐색적 테스트는 애자일 방법을 사용하는 웹 응용 시스템의 테스트에 적합한 방법
(
개발주기가 짧아 세부적인 테스트 명세서를 개발 관리할 시간이 없기 때문)

 

탐색적 테스트 수행 시 가이드가 없다면!
1)
초기 시스템에 대한 이해 부족으로 결함 검출을 위해 찔러보기 시간 낭비
2)
여러 명 참여 시 중복해서 반복적 테스트 위험
3)
테스트 범위가 문서화되어 있지 않아 테스트의 적합성 즉 커버리지에 대한 판단을 할 수 없다.

테스트 차터
테스트해야 하는 세부 피처를 명확하게 식별하고 의사소통하기 위함 (탐색적 테스트에서 사용)
차터에는 테스트하고자 하는 세부 피처를 비롯하여 검출된 결함과 관련하여 추후 해결이 필요한 이슈를 기록


테스팅 방법

리그레션 테스트 (기) 
소프트웨어에 가해진 변경이 의도하지 않게 결함을 만들지는 않았는지, 시스템이 기존의 요구사항을 충족하는지 검증
) Retest-all 전략, 선택적 리그레션 테스트 전략, 테스트 최소화 전략, 테스트 우선 순위화 전략
레벨테스트에서 각 레벨마다 리그레션 테스트를 수행

 

소프트웨어 생명주기 모델과 테스트
테스트는 소프트웨어 생명 주기 모델의 특성을 고려하여 수행되어야 한다.


1)
폭포수 모델:
구현완료 후 테스트 시작
à (장점)필요한 모든 자료가 존재 (단점)검출된 결함 해결에 많은 비용과 시간 소요


2) V
모델
개발과 함께 테스트도 시작. 각 개발 단계에서 발생하는 결함을 검출할 수 있는 테스트 레벨이 존재
동적 테스트와 더불어 개발 산출물에 대한 정적 테스트도 수행
요구사항 명세서, 구조 설계 명세서, 상세 설계 명세서, 소스 코드에 대한 리뷰, 정적 분석을 수행하여 결함을 검출


3)
진화적 개발 모델
이터레이션과 점진적인 방식으로 개발을 진행
구성 요소 중 핵심 부분을 개발 후 각 구성 요소와 추가 요구 사항을 여러 이터레이션을 통해 개선, 발전시켜 최종 완성품을 개발.

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


4)
애자일 개발 방법론
진화모델처럼 반복 + 점진적인 개발 접근 방식을 따른다.
테스트 주도 개발을 적용(TC 먼저 작성, TC 통과하는 pgm은 나중에 작성하는 방식)
지속적 통합(CI, Continuous Ingegraton) – 계속해서 통합을 수행

 

테스팅 방법론적 관점

위험 기반 테스트
테스트 범위를 결정 시에 비용과 일정을 고려한다.
테스트 대상과 범위를 결정할 때는 테스트 미수행에 따른 위험을 고려해야 한다.
테스트 위험이 높은 것은 반드시 테스트 대상에 포함해야 한다.

 

모델 기반 테스트
테스트 대상의 동작에 대한 정형적 명세 바탕으로 테스트  케이스 및 테스트 절차를 자동으로 생성하는 방식
모든 명세 기반 테스트는 대상에 대한 기대 동작을 표현하는 일종의 모델을 이용한다.
) 상태 전이도, 의사결정표, UML상태 다이어그램, UML액티비티다이어그램
(
장점)모델 기반 테스트 수행은 테스트 계획에서 테스트 종료까지 대부분의 활동을 자동화할 수 있다.
문제를 이른 시점에 발견하여 개발 단계 산출물의 검출이 가능  
장애가발생했을 때 많은 비용이 유발되는 자동차, 의료 등 안전 필수 소프트웨어를 대상으로 수행
(
단점) 정형적이고 상세한 테스트 모델을 구축하는 비용이 추가된다

 

반응형