자격증/정보처리기사 필기

[정보처리기사 필기] SW 개발 : 애플리케이션 테스트

Yuco 2023. 1. 30. 18:40

 

정보처리기사 필기 2과목 - 소프트웨어 개발 : 애플리케이션 테스트 (= 소프트웨어 테스트)

 

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

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

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

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

 

 

[2] 애플리케이 테스트의 필요성

1. 오류 발견 관점

- 프로그램에 잠재된 오류를 발견하고 이를 수정하여 올바른 프로그램을 개발하는 활동

 

2. 오류 예방 관점

- 프로그램 실행 전에 코드 리뷰, 동료 검토, 인스펙션 등을 통해 오류를 사전에 발견하는 예방 차원의 활동

 

3. 품질 향상 관점

- 사용자의 요구사항 및 기대 수준을 만족하도록 반복적인 테스트를 거쳐 제품의 신뢰도를 향상하는 품질 보증 활동

 

 

[3] 애플리케이션 테스트의 기본 원리 ⭐⭐

 

1. 테스팅은 결함이 존재함을 밝히는 활동

- 테스팅은 소프트웨어의 잠재적인 결함을 줄일 수 있지만, 결함이 발견되지 않아도 결함이 없다고 증명할 수는 없음을 의미

 

2. 완벽한 테스팅은 불가능

- 무한 경로, 무한 입력값, 무한 시간이 소요되어 완벽하게 테스트할 수 없으므로 리스크 분석과 우선순위를 토대로 테스트에 집중할 것을 의미

 

3. 테스팅은 개발 초기에 시작

- 애플리케이션의 개발 단계에 테스트를 계획하고, SDLC의 각 단계에 맞춰 전략적으로 접근할 것을 고려

 

* SDLC(Software Development Life Cycle) : 소프트웨어 개발 타당성 검토로부터 개발, 유지보수, 폐기 까지의 전 과정을 하나의 생명주기로 정의하고 단계적 공정을 체계화 한 것

 

4. 결함 집중 (Defect Clustering) ⭐

- 애플리케이션 결함의 대부분은 소수의 특정한 모듈에 집중되어 존재함

- 파레토 법칙 : 20%의 모듈에서 80%의 결함 발견 

 

5. 살충제 패러독스 (Presricide Paradox)

- 동일한 테스트 케이스로 반복 실행하면 결함을 발견할 수 없으므로 주기적으로 테스트 케이스를 리뷰하고 개선해야 함 

 

6. 테스팅은 정황(Context)에 의존 

- 정황과 비즈니스 도메인에 따라 테스트를 다르게 수행해야 함(소프트웨어의 성격에 맞게 테스트 실시)

 

7. 오류-부재의 궤변(Absence of Errors Fallacy)

- 사용자의 요구사항을 만족하지 못하는 오류를 발견하고 그 오류를 제거하였다 해도, 해당 애플리케이션의 품질이 높다고 말할 수 없음

 

 

[4] 애플리케이션 테스트 프로세스

테스트 계획 ▶ 테스트 분석 및 디자인 ▶ 테스트 케이스 및 시나리오 작성 ▶ 테스트 수행 ▶ 테스트 결과 평가 및 리포팅

 

1. 테스트 계획서

- 테스트 목적과 범위 정의, 대상 시스템 구조 파악, 테스트 수행 절차, 테스트 일정, 조직의 역할 및 책임 정의, 종료 조건 정의 등 테스트 수행을 계획한 문서

 

2. 테스트 케이스 

- 테스트를 위한 설계 산출물로, 응용 소프트웨어가 사용자의 요구사항을 준수하는지 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과로 구성된 테스트 항목의 명세서

 

3. 테스트 시나리오

- 테스트 수행을 위한 여러 개의 테스트 케이스 집합으로 테스트 케이스의 동작 순서를 기술한 문서이며, 테스트를 위한 절차를 명세한 문서

 

4. 테스트 결과서 

- 테스트 결과를 정리한 문서로 테스트 프로세스를 리뷰하고, 테스트 결과를 평가하고 리포팅하는 문서