1. 애플리케이션 테스트의 개요
- 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위, 절차
- 개발된 소프트웨어가 고객의 요구사항을 만족시키는지 확인, 소프트웨어가 기능을 정확히 수행하는지 검증
- 확인 Validation
- 사용자의 입장에서 개발한 소프트웨어가 고객의 요구사항에 맞게 구현되었는지를 확인하는 것
- 검증 Verification
- 개발자의 입장에서 개발한 소프트웨어가 명세서에 맞게 만들어졌는지를 점검하는 것
- 확인 Validation
- 애플리케이션 테스트를 실행하기 전에 개발한 소프트웨어의 유형을 분류하고 특성을 정리해서 중점적으로 테스트할 사항을 정리해야 함
- 항목 예시 : 소프트웨어명, 제공 유형, 기능 유형, 사용 환경, 개발 유형, 중점 사항 등
- 소프트웨어의 분류
- 소프트웨어 : 하드웨어를 동작시켜 사용자가 작업을 편리하게 수행하도록 하는 프로그램과 자료 구조 등을 총칭하는 것
- 상용 소프트웨어 : 보통의 사용자들이 공통적으로 필요로 하는 기능을 제공하는 소프트웨어
- 산업 범용 소프트웨어
- 시스템 소프트웨어
- 하드웨어 전체를 제어하고 운영하는 소프트웨어
- 종류 : 운영체제, 데이터 관리, 스토리지 소프트웨어, 소프트웨어 공학 도구, 가상화 소프트웨어, 시스템 보안 소프트웨어
- 미들웨어
- 운영체제와 해당 운영체제에 의홰 실행되는 응용 프로그램 사이에서 운영 체제가 제공하는 서비스 이외에 추가적인 서비스를 제공하는 소프트웨어
- 종류 : 분산 시스템 소프트웨어, IT 자원 관리, 서비스 플랫폼, 네트워크 보안 소프트웨어
- 응용 소프트웨어
- 특정 업무를 처리하기 위한 소프트웨어
- 종류 : 영상 처리, CG/VR, 콘텐츠 배포, 자연어 처리, 음성 처리, 기업용 소프트웨어
- 시스템 소프트웨어
- 산업 특화 소프트웨어
- 특정 분야에서 요구하는 기능만을 구현한 소프트웨어
- 산업 범용 소프트웨어
- 서비스 제공 소프트웨어 : 소프트웨어를 개발하여 판매하려는 것이 아니라 특정 사용자가 필요로하는 기능만을 구현해서 제공하는 소프트웨어
- 신규 개발 소프트웨어 : 새로운 서비스를 제공하기 위해 개발된 소프트웨어
- 기능 개선 소프트웨어 : 기존 서비스 기능을 개선하기 위해 개발된 소프트웨어 (사용자 편의성, 응답 속도, 화면 UI, 업무 프로세스 등)
- 추가 개발 소프트웨어 : 업무, 산업 환경의 변화, 법이나 제도의 개정 등으로 인해 기존 시스템에 새로운 기능을 추가하기 위해 개발된 소프트웨어
- 시스템 통합 소프트웨어 : 시스템별로 서비스되던 것을 원스톱 서비스로 제공하기 위해 업무 기능이나 데이터 등을 통합하여 개발한 소프트웨어
2. 애플리케이션 테스트의 필요성
- 프로그램 실행 전에 오류를 발견하여 예방할 수 있음
- 프로그램이 사용자의 요구사항이나 기대 수준 등을 만족시키는지 반복적으로 테스트하므로 제품의 신뢰도를 향상시킴
- 애플리케이션의 개발 초기부터 애플리케이션 테스트를 계획하고 시작하면 단순한 오류 발견뿐만 아니라 새로운 오류의 유입도 예방 가능
- 최소한의 시간과 노력으로 많은 결함을 찾을 수 있음
3. 애플리케이션 테스트의 기본 원리
- 소프트웨어의 잠재적인 결함을 줄일 수 있지만 소프트웨어에 결함이 없다고 증명할 수는 없음, 완벽한 소프트웨어 테스팅은 불가능
- 애플리케이션의 결함은 대부분 개발자의 특성이나 애플리케이션의 기능적 특징 때문에 특정 모듈에 집중되어 있음
- 결함 집중 : 대부분의 결함이 소수의 특정 모듈에 집중해서 발생하는 것
- 파레토 법칙 : 애플리케이션의 20%에 해당하는 코드에서 전체 80%의 결함이 발견됨
- 살충제 패러독스 현상 발생 : 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는 현상
- 방지를 위해서 테스트 케이스를 지속적으로 보완 및 개선해야 함
- 소프트웨어 특징, 테스트 환경, 테스트 역량 등 정황에 따라 테스트 결과가 달라질 수 있으므로, 정황에 따라 테스트를 다르게 수행해야 함
- 오류-부재의 궤변 : 결함을 모두 제거해도 사용자의 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높다고 말할 수 없음
- 테스트와 위험은 반비례 : 테스트를 많이 하면 할수록 미래에 발생할 위험을 줄일 수 있음
- 테스트는 작은 부분에서 시작하여 점점 확대하며 진행해야 함
- 테스트는 개발자와 관계없는 별도의 팀에서 수행해야 함
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] 애플리케이션 테스트 관리 - 046. 테스트 기법에 따른 애플리케이션 테스트 (0) | 2025.02.11 |
---|---|
[정보처리기사 필기] 애플리케이션 테스트 관리 - 045. 애플리케이션 테스트의 분류 (0) | 2025.02.11 |
[정보처리기사 필기] 제품 소프트웨어 패키징 - 043. 빌드 자동화 도구 (1) | 2025.02.11 |
[정보처리기사 필기] 제품 소프트웨어 패키징 - 042. 소프트웨어 버전 관리 도구 (1) | 2025.02.10 |
[정보처리기사 필기] 제품 소프트웨어 패키징 - 041. 소프트웨어 버전 등록 (0) | 2025.02.10 |