관리 메뉴

DevBlackCat

정보처리기사: 소프트웨어 테스트 , 테스트 커버리지 (2) 완전 정복!! 본문

정보처리기사/소프트웨어 개발

정보처리기사: 소프트웨어 테스트 , 테스트 커버리지 (2) 완전 정복!!

DevBlackCat 2024. 11. 4. 21:12
728x90

소프트웨어 테스트 기법(2)

 

시각에 따른 분류

  • 검증(Verification) : 개발 과정을 테스트
  • 확인(Validation): 완성된 결과가 정상 작동하는지 테스트

 

목적에 따른 분류

  • 회복 (Recovery) : 시스템에 고의로 실패를 유도하고 시스템이 정상적으로 복귀하는지 테스트
  • 안전 (Security) : 불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록 소스코드 내의 보안적인 결함을 미리 점검하는 테스트
  • 강도 (Stress) : 시스템에 과다 정보를 부과하여 과부하시에도 시스템이 정상적으로 작동되는지를 검증하는 테스트
  • 성능 (Performance) 시스템의 응답하는 시간, 처리량, 반응속도 등을 테스트
  • 회귀 (Regression) 변경 또는 수정된 코드에 대하여 새로운 결함 발견 여부를 평가하는 테스트
  • 병행 (Parallel) 변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트
  • 구조 (Structure) 시스템의 내부 논리 경로, 소스코드의 복잡도를 평가하는 테스트
  • A/B 테스트: 기존 서비스와 새 서비스를 비교하여 어느 것이 더 효과적인지 확인하는 테스트.
  • 스모크 테스트 (Smoke): 본격적인 테스트를 하기 전에 환경이 제대로 작동하는지 간단히 확인하는 테스트.

 

테스트 종류 

①  명세 기반 테스트

  • 주어진 명세를 빠짐없이 테스트 케이스로 구현하는지 확인

② 구조 기반 테스트

  • 내부 논리 흐름에 따라 테스트 케이스를 작성하고 확인
  • 문장 검증, 선택 검증,경로검증,조건 검증등

③ 경험 기반 테스트

  •  경험이 많은 테스터의 직관으로 테스트

 

 

'

테스트 커버리지

테스트의 범위를 측정하는 기준

테스트를 얼마나 수행했는지 특정

 

 

①  명세 기반 테스트

  • 주어진 명세를 빠짐없이 테스트 케이스로 구현하는지 확인

② 구조 기반 테스트

  • 내부 논리 흐름에 따라 테스트 케이스를 작성하고 확인
  • 문장 검증, 선택 검증,경로검증,조건 검증등

③ 경험 기반 테스트

  •  경험이 많은 테스터의 직관으로 테스트

테스트 커버리지 유형

1. 기능 기반 커버리지 (Feature-Based Coverage)

주요 기능들이 제대로 테스트되었는지 확인하는 방식입니다. 모든 기능이 기대한 대로 작동하는지 테스트합니다.

2. 라인 커버리지 (Line Coverage)

코드의 각 라인이 최소 한 번 실행되었는지 확인하는 방식입니다. 실행되지 않은 코드가 없는지 체크하여 코드의 사각지대를 줄입니다.

 

3. 코드 커버리지 (Code Coverage)

코드 커버리지는 다양한 코드 경로와 조건이 테스트되었는지 확인하여 코드의 완전성을 평가하는 방식입니다.

  • 구문 커버리지 (Statement Coverage): 모든 코드 구문이 최소 한 번 실행되었는지 확인합니다.
  • 조건 커버리지 (Condition Coverage): 조건문의 각 조건이 True와 False를 모두 가지는지 확인합니다.
  • 결정 커버리지 (Decision Coverage): 분기점에서 모든 가능한 결과가 테스트되었는지 확인합니다.
  • 조건/결정 커버리지 (Condition/Decision Coverage): 각 조건과 결정이 모두 포함된 테스트입니다.
  • 변경 조건/결정 커버리지 (Modified Condition/Decision Coverage): 각 조건이 적어도 한 번씩 True와 False가 되는지 확인하여 안전한 테스트를 제공합니다.
  • 다중 조건 커버리지 (Multiple Condition Coverage): 모든 조건 조합을 테스트하여 코드의 모든 가능성을 보장합니다.
728x90