애플리케이션 테스트 / 애플리케이션 테스트 분류

2023. 2. 16. 13:03정처기 필기/2과목 - 소프트웨어 개발

애플리케이션 테스트

1. 애플리케이션 테스트의 개념

- 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위

- 개발된 소프트웨어가 고객의 요구사항을 만족시키는지 확인 (Validation)

-  소프트웨어가 기능을 정확히 수행하는지 검증(Verification)

 

2. 애플리케이션 테스트의 기본 원리 (완벽 X)

- 테스팅은 결함이 존재한다고 밝히는 것이다. 결함을 줄일 순 있지만 없다고는 증명할 수가 없다.

- 무한 경로, 무한 입력 값으로 인해 완벽한 테스팅은 불가능하다.

- 개발 초기에 테스팅을 시작하는 것이 좋다.

- 20%의 모듈에서 80%의 결함을 발견했다. (파레토 법칙)

- 살충제 패러독스 : 동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못함

- 테스팅은 소프트웨어 성격에 맞게 실시해야 한다.

- 오류-부재의 궤변 -> 요구사항을 충족시켜주지 못한다면, 결함이 없어서 품질이 높다고 할 수 없다.


 애플리케이션 테스트 분류

1. 프로그램 실행 여부에 따른 테스트

- 정적 테스트

: 프로그램을 실행하지 않고 분석하는 테스트 ( 워크 스루, 인스펙션, 코드 검사)

 

- 동적 테스트

: 프로그램을 실행하여 오류를 찾는 테스트 (화이트박스 테스트, 블랙박스 테스트)

 

2. 테스트 기반에 따른 테스트

- 명세 기반 테스트
  : 사용자의 요구사항에 대한 명세를 빠짐없이 테스트 케이스로 만들어 구현하고 있는지 확인하는 테스트

 

- 구조 기반 테스트

  : 소프트웨어 내부의 논리 흐름에 따라 테스트 케이스를 작성하고 확인하는 테스트

 

- 경험 기반 테스트

  : 테스터의 경험을 기반으로 수행하는 테스트

 

3. 시각에 따른 테스트

- 검증(Verification) 테스트

  : 개발자의 시각에서 제품의 생산 과정을 테스트하는 것

 

- 확인(Validation) 테스트

  : 사용자의 시각에서 생산된 제품의 결과를 테스트하는 것 ___ 인수테스트 (알파,베타 테스트)

 

4. 목적에 따른 테스트

회복 테스트 : 시스템에 결함을 주고 올바르게 복구되는지 테스트

안전 테스트 : 바이러스로부터 시스템을 보호할 수 있는지 테스트

강도 테스트 : 소프트웨어가 과부하를 버티는지 테스트

성능 테스트 : 효율성 진단

구조 테스트 : 소프트웨어 내부의 논리적인 경로, 소스코드의 복잡도 등 테스트

회귀 테스트 : 소프트웨어의 변경된 코드에 새로운 경함이 없음을 확인하는 테스트

병행 테스트 : 변경된 소프트웨어와 기존 소프트웨어를 비교하는 테스트

 

5. 테스트 커버리지 유형

구문 커버리지 : 모든 문장을 한 번 이상 실행

결정 커버리지 : 전체 조건식이 최소한 참/거짓 한 번의 값을 가지도록

조건 커버리지 : 개별 조건식이 최소한 참/거짓 한 번의 값을 가지도록

조건/결정 커버리지 : 결정 + 조건

변경/조건 결정 커버리지 : 각 개별 조건식이 다른 개별조건식에 무관하게 전체조건식의 결과에 독립적으로 영향을 준다.

다중 조건 커버리지 : 모든 개발 조건식의 모든 가능한 조합을 100% 보장하는 테스트 커버리지