- 소프트웨어 테스팅이란?
소프트웨어의 품질을 평가하고, 운영 중 소프트웨어 장애의 발생 가능성을 줄이는 하나의 방법이다.
- 테스트 프로세스
테스트 계획, 분석, 설계, 테스트 구현, 테스트 진행 상황 및 결과 보고, 테스트 대상 품질 평가 등 많은 활동을 포함
- 동적 테스팅 : 테스트 대상 컴포넌트나 시스템을 실행하는 테스팅
- 정적 테스팅 : 테스트 대상 컴포넌트나 시스템을 실행하지 않는 테스팅
- 테스팅에 대한 오해
- 테스팅은 단지 소프트웨어를 실행하고 결과를 확인하는 테스트 수행에 국한되는 것이 아니다.
즉, 소프트웨어 테스팅은 다양한 활동을 포함하는 프로세스이며, 테스트 실행(결과 확인 포함)은 그 많은 활동 중 하나이다.
- 테스팅이 요구사항, 사용자 스토리, 그 외 기타 명세의 베리피케이션(검증, verification)에만 국한된 활동은 아니다.
시스템이 주어진 명세를 충족하는지 확인하는 것이 테스팅에 포함되긴 함, 하지만 시스템이 운영 환경에서 사용자 또는 기타 이해관계자의 요구를 만족시키는지를 확인하는 밸리데이션(확인, validation) 또한 테스팅에 포함됨.
- 테스팅의 목적
- 요구사항, 사용자 스토리, 설계, 소스 코드 등과 같은 작업 산출물 평가에 의한 결함 예방
- 명시된 모든 요구사항이 충족됐는지 검증
- 테스트 대상의 완성 여부 확인과 사용자와 기타 이해관계자의 기대치대로 동작하는지의 확인
- 테스트 대상의 품질 수준에 대한 자신감 획득
- 부적절한 소프트웨어 품질의 리스크 레벨 감소로 장애와 결함을 발견
- 이해관계자가 테스트 대상의 품질 수준을 결정하는데 필요한 충분한 정보 제공
- 계약/법률/규제 요구사항이나 표준의 준수, 테스트 대상이 이러한 요구사항이나 표준을 준수하는지 확인
- 컴포넌트 테스팅의 목적 : 1. 내재되어 있는 결함을 최대한 조기에 가능한 많이 식별, 수정하는 것, 2. 코드 커버리지를 높이는 것
- 인수 테스팅의 목적 : 1. 시스템이 기대한대로 동작하는지, 요구사항을 충족하는지 확인, 2. 특정 시점에 시스템을 배포하는 것에 대한 리스크 정보를 이해관계자에게 제공하기 위함
728x90
반응형
댓글