본문 바로가기

카테고리 없음

테스트의 종류

테스트의 종류

소프트웨어 프로젝트의 테스트는 각 프로세스의 단계별로 여러가지 테스트가 존재합니다.

유닛 테스트 (Unit Test)

가장 기본적인 테스트로 단위 테스트라고도 합니다. 기능 테스트이면서 테스트의 범위는 메소드 하나에 하나 이상의 유닛테스트를 추천합니다.
유닛 테스트 프레임워크로 대표되는 것이 JUnit 이고 이에 따른 패밀리들이 많이 있습니다.

UI 테스트

HttpUnit
Selenium

DB 테스트

DBUnit

WhiteBox 테스트

Cactus; 원격에 있는 소스의 구동을 들여다 볼 수 있는 테스트, 디버깅과 유사한 점이 있다.

BlackBox 테스트

테스트 시료와 그에 대한 결과값만 노출이 되는 테스트.




통합 테스트 (Integrated Test)

전체 소프트웨어에 대한 유닛테스트들의 집합으로 정의합니다. 지속적인 통합(Continuous Integration)에서 체크하게 되며 소스 저장소에 커밋된 소스들과 테스트 케이스들을 전체적으로 테스트해서 결과를 보관합니다. 대표적인 제품으로는 Cruise Control과 Hudson 등이 있습니다.

인수 테스트 (Acceptance Test)

최종 사용자가 정한 테스트값으로 행해지는 테스트입니다. 엑셀로 만든 테스트 체크리스트를 사용하는 것이 일반적이고, 자동화된 것으로는 Framework for Integrated Test(FIT)http://fit.c2.com/ 가 있습니다. wiki 창시자인 Ward Cunningham이 만든 것이죠.
간단하게 설명하면 워드문서로 테스트 조건을 테이블로 만들어 html파일로 저장한 뒤에 소프트웨어와 html을 연결해 테스트하는 방법입니다.

성능 테스트 (Performance Test)

기능 테스트와는 달리 소프트웨어와 시스템의 가용성을 측정하는 테스트입니다. 부하를 줘서 얼마나 서비스 수용이 가능한지 측정하는 것입니다. 대표적인 제품으로는 Load Runner, JMeter, MS Stress Tool 등이 있습니다.

회귀 테스트 (Regression Test)

새로운 기능 추가로 인한 기존 기능의 어그러짐을 확인하는 테스트입니다. 유닛테스트케이스가 많을수록 회귀 테스트의 신뢰도가 증가합니다. 통합테스트와 연관되기도 하며, 이렇게 모여진 유닛테스트케이스의 묶음을 말에 씌우는 마구와 같다고 해서 테스트 하네스(Harness)라고 합니다.

보안 테스트 (Security Test)

SQL Injection 등의 애플리케이션 취약점을 찾아내는 테스트로 일반적으로 보안 검사 툴을 이용합니다. 달리 말하면 해킹툴을 돌려서 확인합니다.