기능 테스팅
정의
- 내부적인 부분을 무시하고 결과값이 요구사항대로 나왔는지, 혹은 그렇지 않은지에 초점.
- 기능 테스트는 품질 보증 프로세스의 한 과정이며, 테스트 대상 컴포넌트의 명세로부터 도출된 테스트 케이스에 기반하여 수행되는 블랙박스 테스트 기법의 일종이다. 프로그램에 입력을 주고, 그에 해당하는 출력을 조사함으로써 테스트를 수행하게 된다
- 기능 테스트(Functional testing)는 품질 보증 프로세스의 한 과정이며, 테스트 대상 컴포넌트의 명세로부터 도출된 테스트 케이스에 기반하여 수행되는 블랙박스 테스트 기법의 일종이다.
- 프로그램에 입력을 주고, 그에 해당하는 출력을 조사함으로써 테스트를 수행하게 된다. 이 때 프로그램의 내부 구조에는 거의 관심을 가지지 않는다.
- 기능 테스트는 대부분의 경우 해당 시스템이 무엇을 하는지를 기술한다.
- 기능 테스트는 시스템 검사와는 차이가 있다.
기능 테스트는 "설계 문서와 사양서에 기술된대로 프로그램이 동작하는지 검증(verification)하는 것"인데 반해, 시스템 검사는 "사용자 요구사항 혹은 시스템 요구사항에 맞게 프로그램이 동작하는지 확인(validation)하는 것"이다.
기능/비기능 테스트 개요
가. 기능 테스트의 정의
- 소프트웨어가 수행하는 기능에 대한 테스트
- 시스템이 수행하는 “What” 에 대한 테스트
나. 비기능 테스트의 정의
- 성능, 부하, 스트레스, 사용성, 유지보수성, 신뢰성, 이동성 테스팅
- 소프트웨어 제품 특성 테스팅, 시스템의 “How” 에 대한 테스트
기능 테스트 vs 비기능 테스트
기능 테스트(Functional) | 비기능 테스트(Non-Functional) |
클라이언트가 제공한 기능명세를 이용하여 수행하며 소프트웨어의 기능 요구사항을 확인한다. | 소프트웨어 시스템의 성능, 안정성, 확장성 등 비기능적 측면을 확인한다. |
비기능 테스트 전에 수행된다. | 기능 테스트 진행 후 수행되어야 한다. |
수동 또는 자동화 도구를 이용한다. | 도구를 이용하는것이 효과적이다. |
제품의 기능을 확인하는 것이다. | 제품이 얼마나 잘 동작하는지는 확인하는 것이다. |
유닛 테스트 스모크 테스트 세너티 테스트 통합 테스트 화이트 박스 테스트 블랙 박스 테스트 사용자 인수 테스트 리그레션 테스트 |
성능 테스트 부하 테스트 볼륨 테스트 스트레스 테스트 보안 테스트 설치 테스트 침투 테스트 호환성 테스트 마이그레이션 테스트 |
테스트 유형
기능 테스팅(Functional testing)
구 분 | 내 용 |
ISO/IEC 9126 | 기능성이라는 품질특성에 적합성, 정확성, 준수성, 상호운영성, 보안성 등의 부특성을 포함 |
특징 | 문서화 되어 있거나, 테스터가 알고 있는 기능과 특징, 특별한 시스템과의 상호 운영성을 고려하여 수행하며 모든 테스트 레벨에서 수행 |
명세기반기법 (Specification-based) |
요구사항 명세유즈케이스등을 이용해 소프트웨어나 시스템의 기능에서 테스트 조건과 테스트 케이스를 도출하고소프트웨어의 외부적인 행동을 고려, 블랙박스 테스팅 |
보안성 테스팅 | 외부로부터의 위협을 감지하는 것과 관련 있는 기능 - 보안정책확인 - 시스템으로 침투하는 보호되지 않는 진입점(트랩도어) 파악 - 가용성, 무결성, 기밀성, 부인방지 등의 보안 관련 평가 |
상호운용성 테스팅 | 하나 또는 여러 개의 명시된 컴포넌트나 시스템이 서로 상호작용하는 소프트웨어 제품의 능력을 평가 |
나. 비기능적 테스트
구 분 | 내 용 |
ISO/IEC 9126 | 신뢰성, 사용성, 효율성, 유지보수성, 이식성의 품질특성과 그에 따른 부특성으로 분리 - 신뢰성의 품질 부특성 : 성숙성, 결함허용성, 회복성, 준수성 - 이식성의 품질 부특성 : 적응성, 설치가능성, 대체성, 공존성, 준수성 |
특징/의미 | - 모든 테스트 레벨에서 수행가능 - 다양한 척도 또는 비율로 정량화 가능한 소프트웨어나 시스템의 특성을 측정하는 의미 |
* ISO/IEC 9126 부특성의 준수성 : 해당품질특성과 관련되는 표준이나 규칙이 있을 경우 이를 따르는지의 여부
구 분 | 설명 |
성능 | -단위시간당처리, 트랜잭션 시간의 성능 검토 |
부하 | -동시에 가상의 작업처리 Test시행을 통하여 user수 만큼 부하의 정도 검토 |
스트레스테스트 | -목표는 응용 프로그램의 성능 저하를 넘어 리소스의 포화 사용 또는 오류 발생으로 인해 응용 프로그램을 더 이상 사용할 수 없을 때까지 프로세스 로드를 늘리는 것 |
테스트 유형에 의한 분류
- 기능 테스트 : 기능 요구사항 측면의 결함 검출 및 충족 여부 확인을 목적으로 함. 모든 테스트 수준에서 진행.
- 비기능 테스트 : 성능, 보안성, 신뢰성 등 품질 요구사항 측면의 결함 검출 및 충족 여부를 확인. 보통 시스템 테스트, 인수테으트 수준에서 진행
기능 적합성 | 완전성, 정확성, 타당성 |
사용성 | 타당성 식별력, 학습성, 운영 용이성, 사용자 오류 보호, 사용자 인터페이스 미학, 접근성 |
성능 효율성 | 시간 행동, 자원 활용성, 수용성 |
호환성 | 공존성, 상호운영성 |
신뢰성 | 성숙성, 가용성, 장애 허용성, 회복 가능성 |
보안성 | 기밀성, 무결성, 부인방지, 책임성, 진본성 |
유지보수성 | 모듈성, 재사용성, 분석성, 변경 용이성, 테스트 용이성 |
이식성 | 적응성, 설치 용이성, 대치 용이성 |
- 이 여덟 개의 주특성별로 세부적인 품질 특성을 부특성의로 정의하고 있음
- 소프트웨어가 충족해야 하는 요소, 기능 요구사항과 더불어 소프트웨어 요구사항의 한 유형
- 각 품질 특성을 충족하는 테스트를 수행(성능 효율성 테스트, 신뢰성 테스트 등)
참고
기능 테스트와 비기능 테스트
기능 테스트(Functional) 비기능 테스트(Non-Functional) 클라이언트가 제공한 기능명세를 이용하여 수행하며 소프트웨어의 기능 요구사항을 확인한다. 소프트웨어 시스템의 성능, 안정성, 확장성 등
kairoka-sqa.tistory.com
기능 테스트 - 위키백과, 우리 모두의 백과사전 (wikipedia.org)
기능 테스트 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전.
ko.wikipedia.org
2. 테스트 분류와 테스팅 방법 (tistory.com)
2. 테스트 분류와 테스팅 방법
테스트 분류에서는 테스트 레벨(컴포넌트, 통합, 시스템, 인수), 테스트 유형(기능, 품질), 테스트 설계 기법을 기준으로 테스트 분류를 설명함 테스팅 방법에는 개발 생명 주기, 프로젝트 단계
snnchallenge.tistory.com