본문 바로가기

IT관련 정보

애플리케이션 테스트에 대해 알아보자

오늘은 애플리케이션의 테스트 기법에 대해 알아보자

정처기에서 많이 나오니 알아둘 필요가 있다.

 

테스트 시각에 따른 분류

 

검증(Verification) : 소프트웨어 개발 과정을 테스트, 개발자 혹은 시험자의 시각

 

확인(Validation) : 소프트웨어 결과를 테스트, 사용자 시각

 

테스트 목적에 따른 분류

 

회복 테스트(Recovery) : 시스템에 고의로 실패를 유도하고, 시스템의 정상적 복귀 여부를 테스트

 

안전 테스트(Security) : 소스 내 보안적인 결함을 미리 점검하는 테스트

 

성능 테스트(Performance) : 응답 시간, 반응 속도, 처리량 등을 측정하는 테스트

 

구조 테스트(Structure) : 시스템의 내부 논리 경로, 소스 코드의 복잡도를 테스트

 

회귀 테스트(Regression) : 오류제거와 수정에 의해 새로 유입된 오류가 없는 지 확인하는 일종의 반복 테스트 기법

 

병행 테스트(Parallel) : 변경된 시스템과 기존 시스템에 동일한 데이터 입력 후 결과 비교

 

 

성능 테스트 상세 유형

 

부하(Load) 테스트 : 시스템에 부하를 계속 증가시키면서 시스템의 임계점을 찾음

 

스트레스(Stress) 테스트 : 임계점 이상의 부하를 가해 비정상적인 상황에서의 처리를 테스트

 

스파이크(Spike) 테스트 : 짧은 시간에 사용자가 몰릴 때 시스템의 반응 측정 테스트

 

내구성(Endurance) 테스트 : 오랜 시간 동안 시스템에 높은 부하를 가해 테스트

 

테스트 종류에 따른 분류

 

1. 명세 기반 테스트 (Specification-based Testing)

명세 기반 테스트는 요구사항 명세서나 설계 문서를 기반으로 테스트 케이스를 작성하는 기법이다. 명시된 기능이 올바르게 동작하는지를 검증한다.

특징:

테스트 케이스는 요구사항에 기반하여 작성된다.

명시된 입력값과 기대 결과를 사용하여 검증한다.

: 유스케이스, 요구사항 명세서 등을 기반으로 하는 테스트

2. 구조 기반 테스트 (Structure-based Testing)

개요: 구조 기반 테스트는 코드의 내부 구조나 로직을 기반으로 테스트 케이스를 작성하는 기법이다. 코드의 경로, 분기, 루프 등을 테스트한다.

특징:

코드의 흐름을 기반으로 테스트 케이스를 작성한다.

코드 커버리지를 통해 테스트의 완성도를 측정할 수 있다.

: 문장 및 분기 커버리지, 경로 커버리지 등을 사용하는 테스트.

3. 경험 기반 테스트 (Experience-based Testing)

개요: 경험 기반 테스트는 테스터의 경험, 직관, 지각 등을 기반으로 테스트를 수행하는기법이다. 과거의 경험을 활용하여 테스트 케이스를 작성하고 실행한다

특징:

테스터의 경험이 중요한 역할을 한다.

실제 사용자 시나리오나 예상되는 문제를 중심으로 테스트를 수행한다.

: 예상치 못한 상황을 시뮬레이션하고 검증하는 테스트한다.